#Sigfox デバイスの管理を SORACOM に移した理由
Sigfox との出会いは、インターンシップや新人向け研修で IoT を扱い始めた時、屋内で Wifi でデバイスからルーターにデータを飛ばしてるだけじゃ、なんとなくインターネットに接続してる感覚が持てず、直接デバイスからデータ飛ばそうと思ったのが始まりでした。
でも、LTE は高いなぁ、とか思ってたら LPWA の一つである Sigfox を知ることになり、データサイズとかに制限はあれど、年間通信費 1440 円というコストパフォーマンスに食いついたのが始まりでした。
その後、SORACOM さんの「Grove IoT スターターキット for SORACOM (Wio LTE JP Version)」を使って遊んでたり、LTE-M Button とかも購入したりして、このあたり一括で管理したいと思い、別途購入していた Sigfox Shield for Arduino を Sigfox Backend から SORACOM コンソールへ管理を移行させてみたので、その手順と結果を共有します。
#Sigfox デバイスの移行手順
##Sigfox backend で事前に確認しておくこと
SORACOM コンソールで Sigfox デバイスを管理できるように移すためには、以下の 3 つの情報が必要です。
- Sigfox デバイス ID
- PAC (Porting Authorization Code)
- Product certification ID (*プロトタイプとして登録する場合は不要)
これらの情報は、Sigfox デバイスを Sigfox backend に登録した各デバイスの情報のページ (https://backend.sigfox.com/device/<番号>/info) で確認できます。
特に、PAC は登録すると元々の QR コードで読み取った値から変更されているので、必ず移行の前は Sigfox backend の上記のサイトで確認しておく必要があります。
##SORACOM コンソールの操作
- SORACOM コンソールの左のメニューから、"Sigfox デバイス管理" を表示。
- [+ デバイス登録] をクリックしたら、ダイアログの中にある、Sigfox デバイス ID、PAC を入力して、登録。
- 登録直後は、登録状態が "登録保留" となりますが、しばらくすると、"登録完了" の表記に変わります。
- 念のため元々登録してた Sigfox backend でデバイスの確認をすると、「This device is going to be transferred soon」という表記がついています。
##Sigfox グループへの登録
SORACOM Console では、Sigfox デバイスの Callback 設定を Sigfox グループに対して行うため、Sigfox グループを作成して登録します。ついでにデバイスの名前も付けておきましょう。
- デバイスの名前は、登録後の "名前" の列にマウスカーソルを載せると鉛筆アイコンが出るので、クリックして直接入力できます。*もし、入力しても反映されなかったら、一度違うメニューに移ってからもう一度 Sigfox デバイス管理画面に戻ってきてください。
- SORACOM コンソールの左メニューから、"Sigfox グループ" を選択して、新しい Sigfox グループを追加。
- Sigfox デバイス管理画面に戻り、Sigfox デバイスを選択して、"操作" ボタンのプルダウン メニューから "所属グループ変更" を選択し、ダイアログ画面の "新しい所属グループ" で、手順 1. で作成した Sigfox グループを選択。
##送信データの確認
Sigfox backend で設定していた Callback 機能は、SORACOM コンソールで作成した Sigfox グループを編集することで、可能になりますので、これはまた別途書きます。
今回はデータがちゃんと受信されて SORACOM Console 側でデータを扱えているかどうかを確認します。
- Sigfox デバイスの電源を入れてデータの送受信を始めます。
- Arduino のシリアルモニタで、Sigfox デバイスがデータを送信したことを確認します。
- "Sigfox デバイス管理" を見ると、RSSI と 最終受信日時が更新されていて、データがきちんと受け渡されたことを確認できます。
###データフォーマットの確認
具体的にどんなデータのやりとりができているのかを手っ取り早く確認するために SORACOM Harvest を使ってみます。まずは SORACOM Console の左メニュー "Sigfox グループ" を開き、該当のグループを選択します。
- もし、元々 Custom Payload Config 設定をしている場合は、先に "SORACOM Air for Sigfox 設定" で、バイナリパーサー設定を ON にして、フォーマット部分に Sigfox backend の Custom Payload Config で記載してた Payload をそのままコピペします。
- 次に、データを SORACOM プラットフォーム上で収集、蓄積させるために、SORACOM Harvest 設定を ON にしておきます。
- 左メニューから "Sigfox デバイス管理" を表示し、対象の Sigfox デバイスを選択した状態で、[操作▼] ボタンのプルダウンから "データを確認" を選択。
- すると、グラフの表示と共に、下の方に具体的な利用できるデータが表示されます。
- Arduino 側のシリアルコンソールでの出力と比べることで、受け取ったデータ (この例では "data":"132513df03") 表示され、またうまくバイナリパーサーが使われて、各温度・湿度・モジュールの温度・気圧のデータがそれぞれ変換されて処理されていることがわかります。
#注意点など
- Sigfox Shield for Arduino (UnaShield V2S RCZ3) は、購入価格の中に 1 年間の通信費 1440 円込みですが、SORACOM Console に移動させると、その時点で、Sigfox デバイス登録料金と年間通信料金が発生してしまいます。(つまり、1 年間使い切る直前に移行しないと、もったいない。)
- Sigfox backend の Callback で設定してた Custom Payload Config はそのまま使えますが、WebAPI などで Url Pattern で記載していたところは、SORACOM Beam などに置き換えが必要になります。
次回は、Callback の設定などについて記載する際に、Sigfox Backend での設定と比較しながら、書いてみようと思います。