IoT
LPWA
SigFox

Sigfox Sens'it SDKで簡単IoT組み込み開発(3)

ここでは、Sens'it SDKでカスタマイズした送信データ(ペイロード)をSigfoxクラウド上で確認する方法を説明します。
事前に、Sigfox Sens'it SDKで簡単IoT組み込み開発(1)Sigfox Sens'it SDKで簡単IoT組み込み開発(2)を読んでおいてください。
あと、ソラコムさんからSens'itを購入されたかたは、Soracom Platform上でペイロードは確認できると思います。スイッチサイエンスさんから購入された方は、別途、Sigfoxクラウドへのアクセス権設定が必要ですがので、sigfox-partner★kccs.co.jp (★->@)まで、購入されたSens'itの背面写真(IDが記載されているところ)を添付の上、タイトル「Sigfoxクラウドアクセス権設定希望」としてメールしてください。

Sigfoxクラウドへのログイン

Sigfoxクラウドへのアカウントの発効後、下記URLからSigfoxクラウドへのログインが可能です。
https://backend.sigfox.com

Sens'it送信データ(ペイロード)の確認

Sigfoxクラウドログイン後、下記ページが表示されます。
image.png
上部メニュー「Device」をクリックすると、登録されたDevice一覧が表示されるので、idのところをクリックしてください。
image.png
その後、左メニューの「MESSAGES」をクリックすると、下記画面のようにメッセージ一覧が表示されます。
image.png
ここで、Data/Decodingの列がペイロードとなります。

PayloadをParseする

先のメッセージ一覧では、16進表記のデータ羅列になっているので、送信した温度・湿度・照度を実際の値として見ることができません。(16進を脳内変換できる人は除く)
そこで、Sigfox Payload configuration (Payload display)機能を使ってみましょう。
1. Sigfoxクラウド上部メニューの「DEVICE TYPE」をクリック
2. デバイスタイプの一覧がでてくるので、該当するデバイスタイプの「Name」のところをクリック
3. 画面右上にあるimage.pngボタンをクリックすると下記画面が表示されます。
screencapture-backend-sigfox-devicetype-5a176d7a9e93a16d01abe786-edit-1517790898494.png
ここで、一番下の「Payload parsing」の選択をCustom grammarとし、下記一文をCustom configurationに入力して、OKボタンを押してください。
temparature::float:32:little-endian humidity::uint:16:little-endian lightch0::uint:16:little-endian lightch1::uint:16:little-endian
上記の通り、デバイスのMESSAGES確認画面に戻ると、下図のように温度・湿度・照度っぽい値が表示されていることが確認できると思います。
image.png

Custom grammar

Sigfoxクラウドにはバイナリデータをパースする機能がついています。ソラコムさんのバイナリパーサーと同じような機能です。
今回、送信したデータをもとに説明します。今回は、温度をfloat(32bits)として、その他の値をunit(16bits)として送信しています。
図1.png
例えば、温度データをパースする場合、上述のとおり
temparature::float:32:little-endian
と記載します。
この記述ルールは
[変数名]:[バイト列のインデックス]:[変数の型]:[型に依存した設定内容]
となります。
温度の場合、
変数名:temparatureに
バイト列のインデックス:温度データは0バイト目にあるので、省略化
変数の型:float
変数に依存した設定内容:floatの32bitで格納されているため「32」
となります。最後に、今回リトルエンディアンとして格納したため、最後にlittle-endianと記載します。省略するとbig-endianになります。

次回は、Sigfox Callback機能を使って、Sens'itのデータをWebサーバにPOSTする方法を記載します。