SORACOM Blog

ソラコムの最新情報をお届けします

小ロット調達可能な表面実装向け3Gモデムの
販売を開始しました!

開発も好き、ブログも大好きなソラコム 松下(max)です。

SORACOMのサービス開始から2年が経ち、SORACOMを活用してIoTで成功されているお客様も続々と現れている中、その様子を見てこれからIoTに取り組もうとされているお客様がとても多いことを現場で実感しています。

IoTの可能性にいち早く取り組まれたお客様からは「検証は終わったのだけど本番に向けたデバイス開発でモデムを小ロットで調達できないか?」という具体的なご相談をいただいております。

本日から販売開始となった「小ロット調達可能な表面実装向け3Gモデム UC20-G LCCパッケージ」で、本番に向けたデバイス開発をバックアップいたします!

小ロット調達可能な3Gモデム「UC20-G LCCパッケージ」

UC20-G LCC 外観

LCCとはLeaded Chip Carrierの略で、基板に直接ハンダ付けする、もしく基板に取り付けた専用ソケットへ差し込むことのできる形状の製品です。

ソラコムでは「1個から調達可能なグローバル対応3G通信モジュール」としてUC20-G の Mini PCIe版を販売していますが、調達のしやすさやATコマンドで簡単に制御できるという理由から好評をいただいております。 その中で「いよいよ製品化するのだが、基板実装用のUC20-Gが欲しい!」とのご要望が多くなってきており、それにお応えする形でご用意したのが UC20-G LCCパッケージ版 です。

UC20-G LCCとSIMスロットと組み合わせてデバイス製作することはもちろん可能ですが、より適した実装方法としてはチップSIMと共に基板へ実装することで、従来のSIMスロット型との組み合わせでは難しかった極端な温湿度条件や耐振動といった環境性能が高い工業向けデバイスを作ることも可能となります!

UC20-G Mini PCIe版 との使い分け

既に発売済みのUC20-G Mini PCIe版との使い分けは、下記の図の通りです。

ポイントは赤い点線で描いたような製品の成長か可能なところにあります。 初期段階は評価用ボードを使用して開発しますが、同じモデムを利用できるため、ソフトウェア資産を活用することが可能です。

また、デバイス開発において課題となる「データ収集サーバの接続先や認証情報」といった設定は、デバイスに保存せずに SORACOM BeamSORACOM Funnel を活用すれば、設定情報を SORACOM へ保存しておくことができるため、デバイス開発が簡単になるだけでなく、製品の形態変更時におけるソフトウェアの移植性向上になるのもポイントです!

おわりに

IoTは最初の決め事よりも「検証と成長の繰り返し」「小ロット生産」の二つがとても大切です。 今日紹介した「UC20-G LCCパッケージ」をご活用いただき、素早い検証&製品化のお手伝いをしてまいります!

ソラコム 松下

Sigfox開発を促進する
Sigfox Shield for Arduinoの販売を開始しました!

SORACOM Air for Sigfox好きなソラコム 松下(max)です。

Sigfoxが1回線からご利用できるという手軽さから、すでに多くのお客様に使っていただいています SORACOM Air for Sigfox に、Arduino UNO R3向けの開発シールド「Sigfox Shield for Arduino - UnaShield V2S」が追加されたのでご紹介します!

Sigfox Shield for Arduino - UnaShield V2S 製品外観

(製品ページへ)

Sigfox Shield for Arduino - UnaShield V2S の特徴

  • Arduino UNO R3 のシールド(拡張ボード)としてお使いいただけます
  • 日本国内のSigfox通信(RCZ3)に対応したモジュールを搭載
    • 技適対応のアンテナ標準添付
  • シールド上には通信モジュールだけでなく、押しボタンスイッチ、LED2つ、加速度センサー、温湿度&気圧センサーを搭載し、シールドだけで開発やセンシングが可能
  • Grove コネクターを2つ搭載、I2CとアナログのGrove センサーモジュールを後付け可能※1
    • 残りの空いているピンはArduinoの標準ポートとして利用することも可能です
  • ライブラリやサンプルが公開されており、リファレンスも充実

※1 供給電圧は5Vと3.3Vのどちらか一方をシールド上のジャンパで指定します

Sigfox Shield for Arduinoが使用しているピン等のハードウェアの情報は UnaShield V2S (20170325) を参照ください。

Sigfoxの通信可能地域

Sigfoxの通信可能地域は Sigfox社のcoverageページを見るのが一番です。 前回紹介したときよりも、通信可能な地域が増えている!!

Sigfox Coverage in Japan

Sigfox Shield for Arduino の始め方

ご購入は SORACOM Webコンソールの「発注」から、ご注文が可能です。 Sigfox Shield for Arduinoがお手元に届いたら、SORACOM Webコンソールの「発注」のご注文履歴から「受け取り確認」をクリックするだけで、その瞬間からお使いいただくことができます!

ここまでの画面イメージは、同じSigfoxデバイスである Sens'it の受け取り画面を参考にしてみてください。

Sigfox Shield for Arduino を用いた開発

早速開発をしてみましょう。とはいえ、Arduino側の開発はとてもシンプルで済みます。

  1. ライブラリをインストールした後 SIGFOX.h をinclude
  2. UnaShieldV2S オブジェクトを初期化
  3. transceiver.begin を行い
  4. transceiver.sendMessagetransceiver.sendString で送信

これだけでSigfoxネットワークへデータを送信することができます。 SORACOM Harvestでデータを可視化するサンプルを作ってみましたが、約20行と極めて簡単です。

これだけシンプルにできるのは、ライブラリのおかげでもありますが、 SORACOM Air for Sigfox が SORACOMの各サービス「データ転送サービスSORACOM Beam」 「クラウド・アダプタサービスSORACOM Funnel」 「データ蓄積・可視化サービスSORACOM Harvest」 と連携するため、デバイス側の開発をシンプルに保つことができるんですね。

おわりに

今回ご紹介した「Sigfox Shield for Arduino」で色々なセンサーを接続できるようになるので、より詳細な開発ができるようになりました。

逆に手軽に開発したい、Sigfoxネットワークを体験したいという方には、7種類のセンサ・バッテリを内蔵したSens'it や 2チャンネルの接点をSigfox通信できるドライコンタクトコンバーター もご検討ください!

ソラコム 松下

Acroquest Technology 社様の Torrentio が Funnel に対応

これまで SORACOM Funnel (以下 Funnel )は、主要なクラウドサービスベンダー(いわゆる目がクラウド)の各サービスのみならず、SORACOM Partner Spaces の認定ソリューションパートナー様のサービスにデータを直接送信出来る Partner Adaptor に対応しておりました。

本日、新たに Acroquest Technology 社様の Torrentio に Funnel が対応した事で、デバイスからのデータ送信が容易となり、より手軽にリアルタイムストリームデータ処理を行って頂けるようになりました。

Torrentio とは

ストリームデータ処理を行うサービスをプログラミングレスで構築し、センサーデータや動態データをリアルタイムで解析する、IoT向けのデータ分析プラットフォームです。

IoTアプリケーションプラットフォームの「Torrentio」は 、 ・RESTや MQTT、 Amazon Kinesis等、 IoTに最適なインタフェースとの多彩な接続性 ・複雑な設定が不要な機械学習エンジンによる、異常検知や予兆保全 ・サービスのスタートアップや、サービスの拡張・変更に素早く対応 といったことを実現し、テレマティクス分野、電力・エネルギー分野、生産・オートメーション分野、セキュリティなど、あらゆる分野で、IoTサービスの展開をしたいと考える事業担当者、開発担当者の皆様のニーズを満たします。

  • 構成イメージ 構成イメージ

  • カスタマイズ可能なモニタリングダッシュボードで可視化 可視化

  • 複雑な設定やモデル構築などの作業は不要で、自動で正常時の動作パターンを分析することで、「いつもと違う」異常状態を簡単に検知できます 異常検知

利用するには

Torrentio側では、Funnel Endpoint を追加します。

SORACOM 側では、SORACOM Funnel の設定画面で Acroquest Technology Torrentio を選択し、テナントIDとエンドポイントIDを入力、認証情報(APIキー)を登録するだけで、設定は完了です。

設定画面

実際にデバイスからデータを送信するには、JSON形式のデータを HTTP エントリポイントに対して POST や TCPソケット/UDPパケット でデータを送信するだけとなります。

参考リンク

グローバルカバレッジの請求書払いに対応しました。

ソラコム グロースエンジニアの江木です。 本日、グローバルカバレッジでも請求書払いに対応したことをご案内します!

これまで、SORACOM Airでは、NTT ドコモのネットワークを利用した日本向け Air SIMと、グローバルの120を超える国と地域で利用できるグローバル向け Air SIMを提供してきました。

グローバル向け Air SIMは、日本向けAir SIMとは異なる料金体系を用意しています。 1ヶ月0.4USD(約44円)から使用できるプラン01 - Low Data Volumeや、使用開始前の Air SIM は 1 年間は 0USDなど、基本料金を抑えて利用することができます。

今回、多くのお客様から要望をいただいていたグローバルカバレッジも請求書払いに対応しました。ご利用にあたっては、ご申請が必要です。こちらからご申請をお願いいたします。

注意点もありますので、あわせてご確認ください。

  • これまでの日本カバレッジと同様に日本の法人のお客様を対象としております。
  • グローバルカバレッジの料金は、USDとなっています。請求書払いの場合、グローバルカバレッジのご利用分は月中平均 TTS(※) での円転となります。
  • 「日本カバレッジ」「グローバルカバレッジ」の両方のカバレッジを選択すると、 1 つの請求書にまとめて送付いたします。
  • 請求書切り替え手数料(初回のみ 500円)、請求書発行手数料(1通あたり500円/月)、請求書の送付方法で「郵送」の場合は、さらに請求書郵送手数料:200円/通が発生します。

さらに詳細は、請求書発行プロセスのご案内もご確認ください。

ソラコム江木

LoRaWAN評価用ボード
STM32L0 LoRa Discovery Kit の販売を開始しました!

好きなSORACOMサービスは SORACOM Air for LoRaWAN な松下(max)です。

2017年2月に商用サービスを開始した SORACOM Air for LoRaWAN は、お使いいただけるLoRaデバイスは「LoRa Arduino 開発シールド」「LoRa GPS トラッカー LT-100」と2種類ありましたが、本日より「STM32L0 LoRa Discovery Kit」が仲間に加わることになりました!

STM32L0 LoRa Discovery Kit

STM32L0 LoRa Discovery Kitの特長

  • LoRaモジュールを搭載し、アンテナも標準添付。もちろん技適OKです
  • マイコン搭載 (Cortex©-M0+ベースの超低消費電力STM32L0シリーズMCU)
    • サポートされる開発環境は Getting Start で紹介している Keil MDK-ARM だけでなく、Arm Mbed online※1といった開発環境もサポートしています
    • Arduino UNO R3互換コネクタも搭載しています
  • 単4乾電池ホルダーを搭載、電池だけのスタンドアロン運用が可能です※2

※注意1:Mbed onlineで開発できるLoRaWANの環境は主にEUやUS向けの仕様です。日本向け仕様(AS923/ARIB)の開発はMDK-ARMをお使いください (2017年9月末現在) ※注意2: 乾電池運用する際にはボード上のハンダを取り外す必要があります(本ブログで紹介しています)

STM32L0 LoRa Discovery Kitを使い始めるには?

ご購入はSORACOM Webコンソールから行うことができます。

また、STM32L0 LoRa Discovery Kitが手元に届いてから、SORACOM Webコンソールでの登録や開発環境の整備は Getting Start にまとまっています。 若干手順が多めですが、一度構築してしまえばコンパイル→転送&実行できますので構築をお勧めいたします。

このブログで注目するのは「乾電池運用」です。IoTでいつも課題になるのが電源ですが、このSTM32L0 LoRa Discovery Kitは乾電池で動作させることができるのです!

乾電池運用が可能です

STM32L0 Discovery Kitは、単4乾電池 3本を電源として利用することができます。製品の裏面に電池ホルダーがついており、下図のように取り付けることができます。

乾電池を載せた様子

残念なことに出荷直後の状態では乾電池動作ができないのです。そこで、ここでは乾電池運用をするための作業をご紹介します。

※本作業によるいかなる不具合、生ずる不利益について弊社では一切の責任を負いませんので、ご注意ください! ※乾電池は別途ご用意ください

SB37をOFFにする

電池ホルダーの近くに SB37 という半田ブリッジがあります。 出荷時ではON (=半田によるショート) がされていますが、これをOFF (=半田を取り除く) ことで、電池運用が可能となります。

出荷時の状態

取り除く際には、半田ごてが必要です。半田のリムーバーがあると、より良いです。

作業の様子

※SB37をOFFにすることによる影響は、現在のところ確認されていません。 (UserManualのP14には “ SB37 must be removed to release the RESET pin managed by ST-LINK. In that case the ST-LINK is no more powered.” と書かれているのですが、ST-LINK UtilityやMDK-ARM、Mbedからのプログラム書き込みは可能であることを確認しています。)

おわりに

STM32L0 LoRa Discovery Kitの詳細なデータシートなどはB-L072Z-LRWAN1のページに掲載されています。

STM32L0 LoRa Discovery Kitは、このボード一つでマイコン&センサーI/F&LoRaWAN通信ができ、しかも乾電池で動くというIoT時代にぴったりのデバイスですので、お試しください!

ソラコム 松下

VPGに「固定グローバルIPアドレスオプション」が追加されました

SORACOM Canal や Direct/Door を使う際のコンポーネント VPG(Virtual Private Gateway) に、ソース IP アドレスを固定するための「固定グローバルIPアドレスオプション」が追加されました。これにより、IoT バックエンドシステムへのアクセス制御を IP アドレスで簡単に行えるようになります。

背景

通常設定の SORACOM Air for Cellular をお使いの場合、アクセス先のサーバから見えるソース IP アドレスは、3G/LTE セッションを確立する毎に変化する可能性があります。 また IoT プラットフォーム SORACOM はクラウド上で動作するスケーラブルなシステムであるため、そのソース IP アドレスが取りうる IP アドレスレンジは常に変化いたします。 そのため、企業内システムなどでアクセス元の IP アドレスをファイアウォールで絞って運用されたいようなケースの場合、ソース IP アドレスを指定する事が困難な状況でございました。

また、これまでもグローバル IP アドレスを固定的に利用できる SIM カードは市場に存在いたしましたが、SIM の枚数が増えた場合にファイアウォール等に設定するべきアドレスが増え、都度ルールを追加する必要があり、またはルール数の上限を気にする必要がありました。

新機能

本日発表いたします「VPG 固定グローバルIPアドレスオプション」をご利用いただきますと、特定の VPG に紐づけられている SORACOM Air for Cellular の SIM を利用した通信は、必ず2つの IP アドレスのうちいずれかをソース IP アドレスとした通信となります。また、その IP アドレスは他のユーザの SIM に利用される事はありませんので、安心して企業内システム等へのアクセス制御にご利用頂けます。

構成図

「VPG 固定グローバルIPアドレスオプション」をご利用頂いた場合には、SIM の枚数が増えてもそのアクセス元 IP アドレスはあらかじめ払い出されたアドレスとなりますので、システム管理上の手間は最小限となります。

また SORACOM Beam(以下 Beam ) をお使いである場合には、Beam 通信のアクセス元 IP アドレスもこの IP アドレスからとなりますので、よりセキュアに Beam をご活用頂く事が出来ます。

社内コンプライアンス等が事由で、IoTバックエンドシステムへのアクセスを IP アドレスで制限する必要がある場合には、是非本オプションのご活用をご検討下さい。

価格

本オプションをご利用の際には、VPG のご利用料金とは別に、1時間あたり15円の追加料金が必要となります。

ご利用方法

あらかじめ VPG (Type C)を起動の上、フォームからお申し込み下さい。

注意事項

  • VPG 固定グローバルIPアドレスへの切り替えには設定のため数営業日のお時間を頂戴しております。あらかじめご了承ください。
  • インターネットGWなしのVPGには適用できません。
  • LoRa および Sigfox の Beam 送信元 IP アドレスには適用できません。

MWC America 2017 出展レポート

先週アメリカサンフランシスコで開催された、MWC America 2017 にSORACOMも出展してきました。スペイン・バロセロナで開催されていた世界最大のモバイルに関するカンファレンスが、今年初めてアメリカで開催されることになりました。 会場となったのは、多くのIT企業が様々なイベントを開催するMoscone center。

SORACOM ブースは、4YFN(4 years from now) というスタートアップブースの一角に展示ブースを設置し、目の前にはSORACOM Theaterという名のステージも用意されてました!ステージとってもかっこいい! mwca2017

Seeed studioのWio TrackerのIoTスターターキットの提供受付を開始

MWC Americaに合わせ、9月13日に、Seeed StudioさんのWio Tracker とSORACOM のSIMが入ったすぐに始められるIoTスターターキットの提供を開始を発表しました。 GPSに加え、Groveのセンサーであればとても手軽に繋がるSeeedさんの Wio Tracker は SIMスロットも搭載されており、手元に届いたらすぐに簡単にIoTシステムを自前できます。

Seeedさんブースでは、ゴミ箱の蓋の内側に超音波センサーを取り付け中の容量がどのくらい溜まっているか、ゴミ箱の蓋は開いてるか否かを判断しモニターに表示します。 mwca2017

Sigfox コネクティビティのサポートを発表

さらに、この日は IoT に特化した通信と言われている LPWA 通信の Sigfox コネクティビティのサポートをUSでも開始することを発表しました。

ちょうどこの発表に合わせ、 Sigfoxを利用したハンズオンも実施。参加者は Rasbpery Pi と超音波センサーを利用したハンズオンとSigfoxハンズオンの両方をお試しいただきました。ラッキーなことにフランスからSigfox社のメンバーが来ていたこともあり、直接Sigfoxに関する紹介を聞くことができる貴重な時間となりました。 mwca2017 ベイエリアでは、定期的にIoTハンズオンを開催。とてもカジュアルな雰囲気で、参加者同士の交流も多くとても楽しい時間でした。リピーターの方も何名か参加し、Raspberry Piを使って作ったシステムを持ち込み紹介する方もいらっしゃいましたー! mwca2017 お近くの方、ぜひ足を運んでみてください^^シリコンバレーIoT meetup のページはこちら

MWC America では、CTO安川と、アメリカメンバーのCJが登壇をさせていただきました。Seeed StudioのErin氏、Google のAntony氏、ソラコム安川が登壇したパネルでは、1台から手軽に購入が可能なデバイスが普及し、クラウドサービスが誰でも利用が可能になり、1枚から始められるコネクティビティの容易さが広まるこの現状を説明し、はじめてみることの重要性をお伝えしました。 mwca2017

他のブースはあまり見て回る時間はありませんでしたが、こちらのブースが印象的だったので、ご紹介。 mwca2017 pycomというロンドンの会社ですが、ブースがなんとストリートアート!!このブースは一体なんなのかと気になり、立ち寄ってみると、デバイス屋さんでした。それも1つのデバイスに、wifi, BLE, LTE, LoRa, Sigfoxと5種類のコネクティビティを搭載しているモジュールを提供しているようで、話し込んでしまいました。EUでもソラコムハンズオンがドイツ・フランスで開催されてます。世界中の人が場所は違えど、同じようにハンズオンに参加し、興味を持って活動してくださる方々もつなげていきたいなーなんて野望を抱きながら帰路につきました。

mwca2017 日本からグローバルへ、今後も世界の様々なヒトとモノをつなげ共鳴する社会を目指していきます。

ソラコム熊崎

バイナリパーサー機能に「定義済みフォーマット」が追加されました

テック・エバとして全国を駆け回ってます、松下です。

先日開始したSigfoxデバイスの出荷ですが、その中でも6種のセンサーを搭載したSens'itが大変好評をいただいております!

一方でSens'itが出力するデータはバイナリパーサー機能を駆使する必要があるため、「データを手軽に展開できないか?」というご要望も多くいただいております

そこで今回、バイナリパーサー機能に新たなフォーマット 定義済みフォーマット が追加されました!

「定義済みフォーマット」

Sens'itをご利用いただいている方は、まずバイナリパーサー機能のフォーマットに @sensit とのみ入れて保存してみてください

@sensit

すると、次のデータから下記のようなJSONが出力されるようになります! (下記は整形済み)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
    "device": "XXXXXX",
    "time": "1504856794",
    "station": "XXXX",
    "lat": "36.0",
    "lng": "140.0",
    "rssi": "-126.00",
    "data": "816c1e71",
    "seqNumber": "1406",
    "mode": 1,
    "modeText": "Temperature + Humidity",
    "timeframe": 0,
    "timeframeText": "10 mins",
    "type": 0,
    "typeText": "Regular, no alert",
    "battery": 4.1,
    "tempCLowPrecision": 23,
    "tempFLowPrecision": 73.4,
    "tempC": 26.75,
    "tempF": 80.15,
    "reedSwitchState": 0,
    "humidity": 56.5,
    "binaryParserEnabled": true
}

従来は data というキーに入っている値 816c1e71 をバイナリパーサー機能で解く必要がありました 注目いただきたいのは humiditytempC という値が出るようになっています。他のモードで送信すれば、モードに合わせたJSONが出力されます このJSONはSORACOM Harvestはもちろん、SORACOM FunnelやSORACOM Beamでの送信時のデータペイロードになりますので、今まで以上にクラウド活用が容易となるわけです

解説

バイナリパーサー機能は、バイト/ビットをデータ仕様に従ってフォーマット文字列を組み立てることで利用ができます

今回使えるようになりました @ から始まるフォーマットは SORACOM で実装&提供するフォーマットであり、ご利用者がフォーマット文字列を組み立てる必要はありません

対応デバイスと定義済みフォーマット文字列

全2種です(2017年10月現在)

binaryParserEnabled について

よく見るとJSONデータの中に binaryParserEnabled: true というキー/値が入っています 今回のアップデートで一緒に入った機能で、出力されたJSONがバイナリパーサーによる解析済みなのか否かを判定することができます

  • バイナリパーサー機能によって解析済み: "binaryParserEnabled": true
  • バイナリパーサー機能を利用していない: "binaryParserEnabled": false もしくは このキー/値自体が存在しない

定義済みフォーマットの充実に向けて

現在は解析がかなり難しいデバイスに絞って定義済みフォーマットを実装&提供しています また、SigfoxのみならずLoRaWANデバイスでも利用できる機能であるため、今後より多くのデバイスのフォーマットに対応させたいと思っておりますので、是非とも皆さんのお声をいただけると助かります!

ソラコム 松下

Sigfoxデバイス2種の出荷が始まりました!

夏休みの宿題はため込む派の松下です。

7/5のSORACOM Discoveryで発表になりましたSigfoxのサポートですが、Sigfox対応デバイス2種の出荷がいよいよ始まります!

実際に利用可能なデバイスや通信可能な範囲、そして使い方をご紹介します。

Sigfoxの通信可能地域

まずはご自宅や利用したい地域でSigfoxの電波が届くか確認してみましょう!

Sigfoxの電波が届く範囲(カバレッジ)を調べるには、Sigfox社のcoverageページを見るのが一番です。 「Japan」を選択すると日本国内の状況が確認できます。

2017/8/30現在の日本の状況

水色になっている地域がSigfoxの電波が届く地域です。東京・大阪・愛知だけでなく、福岡や札幌でも利用可能になっているようですね。 この図は随時更新されているようですので、Sigfoxを検討する際には是非チェックしてください。

※範囲は基地局の配置から推測したものであり、実測や実績に基づいたものでは無いのでご注意ください。また範囲内であっても建物内では圏外となる可能性もあります。

Sigfoxデバイスのご紹介

今回SORACOMでご購入&ご利用できるSigfoxデバイスは2種類ご用意しています。

Sigfoxデバイス

Sigfoxの購入からセットアップまで

ご購入の方法はSORACOM Air for Sigfox の利用方法を、そしてデバイスが到着した後の登録作業はSigfox デバイス Sens’it をセットアップするに詳しく書かれていますので、ご覧ください。 ※セットアップのページはSens'itのものですが、ドライコンタクトコンバーターも同様にSigfoxデバイスの受取確認を行ってください。

デバイスの使い方:Sens'it

Sens'itは温湿度、照度、ドア開閉検知、振動検知、磁気、ボタンの6つのセンサーデータをSigfoxで送信できる、充電式バッテリー内蔵の汎用デバイスです。

Sens'it

Sens'it のデータを SORACOM Harvest に送信して表示する手順はSigfox デバイス Sens’it をセットアップするに記載されていますので、ここでは SORACOM Funnel を通じてクラウドへデータを送ってみます。

2017/9/8 UPDATE!! 定義済みフォーマットがリリースされ、Sens'itのデータを簡単に展開できるようになりました!

SORACOM Funnel から出力されるJSONデータは下記の通りで payloads.data にSens'itからのデータが格納されていますが、ビット単位で読み込んで展開する必要がある形式です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    "operatorId": "OPXXXXXXXXXXX",
    "timestamp": 1504082329266,
    "destination": {
        "resourceUrl": "https://YOUR-AWS-IoT-ENDPOINT.amazonaws.com/YOUR_TOPIC/",
        "service": "aws-iot",
        "provider": "aws"
    },
    "credentialsId": "aws-cred",
    "payloads": {
        "seqNumber": "999",
        "lat": "99.9",
        "station": "XXXX",
        "time": "1504082323",
        "device": "XXXXXX",
        "rssi": "-115.00",
        "lng": "999.9",
        "data": "81651969"
    },
    "sourceProtocol": "sigfox",
    "deviceId": "XXXXXX"
}

幸いなことに sigfox/npm-sensit という Node.js ライブラリが提供されていますので、これを利用することで payloads.data の中身を展開することができます。

今回は AWS Lambda 上で展開し、再度AWS IoTにpublishしなおす Node.js コードをご紹介します。

全体構成

全体構成は以下の通りです。ポイントは AWS Lambda から直接Amazon S3に投げるのではなくAWS IoTを経由することで、将来他のサービスへデータの複製をすることを容易にするという点にあります。

手順は下記のとおりです。保存先から作成していきます。

  1. Amazon S3でバケットを作成
  2. AWS IoTで Amazon S3バケットへ保存するルールとアクションを作成 (同時にAmazon S3バケットへ保存できるIAMロールも作成)
  3. AWS Lambdaで関数を作成
  4. AWS IoTで AWS Lambda関数を実行するルールとアクションを作成 (同時にAWS Lambda関数を実行できるIAMロールを作成)
  5. SORACOM FunnelでAWS IoTへ転送する設定を作成

以上となります。各手順はマニュアル等参考にしてください。ここでは4のAWS Lambda関数の中身をご紹介します。

下記のコードと、2つの環境変数 AWSIOT_ENDPOINTAWSIOT_TOPIC_PREFIX をそれぞれ設定すれば完了です。

Amazon S3に保存される最終的なJSONは下記のとおりです。 temperaturehumidity が表示されています!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
    "operatorId": "OPXXXXXXXXXXX",
    "timestamp": 1504082329266,
    "destination": {
        "resourceUrl": "https://YOUR-AWS-IoT-ENDPOINT.amazonaws.com/YOUR_TOPIC/",
        "service": "aws-iot",
        "provider": "aws"
    },
    "credentialsId": "aws-cred",
    "payloads": {
        "seqNumber": "999",
        "lat": "99.9",
        "station": "XXXX",
        "time": "1504082323",
        "device": "XXXXXX",
        "rssi": "-115.00",
        "lng": "999.9",
        "data": "81651969",
        "sensit": {
            "frame": 2170886505,
            "frameStr": "81651969",
            "binary": "10000001011001010001100101101001",
            "bytes": [129, 101, 25, 105],
            "mode": "Temperature",
            "frameType": "Classic",
            "battery": 2.835,
            "temperatureLP": 12,
            "humidity": 52.5,
            "temperature": 26.125
        }
    },
    "sourceProtocol": "sigfox",
    "deviceId": "XXXXXX"
}

AWS IoTのルールを調整することで、Amazon Elasticsearch Service 等で可視化も可能でしょう。是非とも試してみてください! ※配布元の注意書きにもありますが、すべてのセンサーデータをサポートしてるわけではありませんのでご留意ください。

データ送信のタイミング

Sens'itですが、センサーデータ送信のタイミングが3つあります。1つめはモード切替直後の送信、2つめは定期的な送信 3つめはイベントトリガーによる送信です。 これは payloads.sensit.frameType で見分けることができます。モード切替直後の送信時は New Mode 、 定期的な送信時は Classic 、 イベントトリガーの送信時は Alert となります。 イベントトリガーですが、ドア開閉、加速度での数値変動、マグネットスイッチのON/OFFの変化が対象です。 それとは別に、ボタンを押した場合は Button となります。

デバイスの使い方:ドライコンタクトコンバーター

オプテックス社のドライコンタクトコンバーター(以下DCC)は、センサーからの接点出力を受け取り、その値をSigfoxで送信することができるデバイスです。

オプテックス ドライコンタクトコンバーター

この製品は接点出力を2チャンネル持っており、それぞれのチャンネルのON/OFFをトリガーにデータ送信をするモードの他、15分間のON(もしくはOFF)の回数を内部に保管し集計して送信するといったカウントモードが搭載されています。 またバッテリーを内蔵しており、保護等級IP65という耐塵&耐水性能もあるため、屋外でも利用可能です。

ところで、接点信号とはON/OFFの2値でセンサーとの入出力を行うシンプルなプロトコル(?)です。構造が単純ですので、私たちの生活のあらゆる場面で活躍しています。例えば照明のON/OFFや自動ドアの開閉などですが、気軽に入手できる接点出力可能なセンサーには、以下のようなものがあります。

  • ボタンスイッチ
  • トグルスイッチ
  • マグネットスイッチ(磁気を利用して回路を動かす)
  • 人感センサー(距離ではなく、一定範囲内の有無)
  • 照度センサー(一定光量以上もしくは以下の検出)

今回はマグネットスイッチをDCCのチャンネル1に接続してみました。

マグネットスイッチとDCCを接続してみたところ

左下の長方形の物体に磁石が入っており、距離に応じた磁気の強さによって内部回路のON/OFFが切り替わり、それを接点信号として出力します。応用例としては、ドアの開閉検知や物体の近接・遠隔の検知などに利用できます。

バイナリパーサー機能を利用してSORACOM Harvestでデータ表示

DCCから出力されるデータはバイナリ形式です。そこで今回は7/5に公開された新機能「バイナリパーサー機能」を利用し、JSON化したうえで SORACOM Harvest で可視化をしてみます。

DCCからの出力フォーマットはマニュアル※に記載されており、その内容に沿ってバイナリパーサーのフォーマットを組み立てます。 組み立てた結果は下記のとおりです。 ※マニュアルはご購入者に個別配布となっております(2017年9月現在)

1
event:0:char:2 count_ch1:2:uint:16 count_ch2:4:uint:16 battery_status:6:uint:8

SORACOM Air for Sigfox の「バイナリパーサー設定」をONにした上で、上記文字列をフォーマット欄に入力して保存します。 また、同時にSORACOM Harvestの設定もONにします。

SORACOM Air for Sigfoxの設定

この状態でマグネットスイッチを近づけたり離したりしてみましょう。すると下図のようにSORACOM Harvest上にデータ表示されます。

SORACOM Harvestでのグラフ

JSONデータは以下のようになります

アラームモードの結果JSON (N.O.でマグネットスイッチを近づけた時)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
    "device": "XXXXXX",
    "time": "1504166627",
    "station": "XXXX",
    "lat": "99.9",
    "lng": "999.9",
    "rssi": "-123.00",
    "data": "314c000000001e00",
    "seqNumber": "2031",
    "event": "1L",
    "count_ch1": 0,
    "count_ch2": 0,
    "battery_status": 30
}

event1L と記録されていることがわかります。

カウントモードの結果JSON (内部で回数を記録、15分毎に出力)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
    "device": "XXXXXX",
    "time": "1504166423",
    "station": "XXXX",
    "lat": "99.9",
    "lng": "999.9",
    "rssi": "-137.00",
    "data": "4354000300021e00",
    "seqNumber": "2030",
    "event": "CT",
    "count_ch1": 3,
    "count_ch2": 2,
    "battery_status": 30
}

チャンネル1のカウント count_ch13、チャンネル2のカウント count_ch22 と記録されていることがわかります。

もちろんこのJSONをSens'it同様に SORACOM FunnelSORACOM Beam を活用して、他のクラウドサービス連携も可能です。

開発者がSigfoxを手軽に利用する仕組みとして、SORACOM Air for Sigfoxは最適ですので、ぜひとも一度試してみてください!

ソラコム 松下

LoRa GPS トラッカー LT-100 の出荷が始まりました!

LoRa GPS トラッカー LT-100の出荷が始まりました! 最終的なテストも終え、先週より順次発送しております。

LT-100

セットアップ方法もあわせて公開しておりますので、ご確認ください。

LoRa GPS トラッカー LT-100 をセットアップする

とはいっても、ハードウェアのセットアップ方法は非常に簡単で、充電して電源をいれるのみです。あとは、 LoRaWAN デバイス設定ガイドに沿ってユーザコンソールから送信先などの設定を行ってください。

当デバイスは、1回の充電で、1日24回の通信だとほぼ1カ月間稼働します。 また、送信間隔は、初期設定では、60 秒間隔に設定されています。

これまで、LoRaデバイスについては、LoRa Arduino 開発シールド AL-050をご提供しておりましたが、すぐに使用できる製品が増え、とてもうれしく思っています! LoRa GPS トラッカー LT-100の詳細、購入方法は、こちらをご確認ください。

今後も扱うLoRaデバイスを増やしていく予定です。ご期待下さい!

ソラコム江木

参考