前回の記事でSigfoxはデバイス、Sigfox回線、Sigfoxクラウドの3つに分けられると書きました。デバイスメーカーとSigfoxクラウド提供事業者が同じ場合、デバイスから送信されたデータをすぐにSigfoxクラウドでグラフィカルに確認する事ができます。今回はSens’itデバイスをSigfoxクラウドであるsensit.ioではなく、SORACOMに変更するので、デバイスから送られるバイナリデータを解析する必要があります。本記事ではSens’it Ver3のバイナリデータの解析までを行います。
SORACOMでもHarvestという機能を使うとデータの収集・表示が出来るらしいのですが、 今回はSORACOMからさらにAzureにデータを送信し、データの処理や表示はAzure側で行います。 ここではSORACOMからAzureにデータを送信する手順を記載します。 Sigfoxグループの設定は以上です。 <
グループの割り当ては以上になります。設定に問題がなければ、Sens’itデバイスからAzureにデータが送信されます。
0byte目の定義を見てみると、最初の5bitがバッテリーレベル、後の3bitが予約済みとなっています。他も同じようにみていくと次のようになります。 センサーの設定を他のものに変えた場合も、上記の要領で内容の確認を行う事が出来ます。次回はSORACOMのバイナリパーサーでデータをJSONに変換する手順をまとめたいと思います。
手順は省略しますが、Sens’itから受け取ったデータはEvent HubからBlobへファイル出力しています。
{“operatorId”:”OP0062671599″,”timestamp”:1541496549226,”destination”:{“resourceUrl”:”https://XXXXXXXXXXXX.servicebus.windows.net/XXXXX/messages”,”service”:”eventhubs”,”provider”:”azure”},”credentialsId”:”XXXXXXXXXX”,”payloads”:{“seqNumber”:”78″,”lat”:”43.0″,”station”:”5158″,”snr”:”8.29″,”time”:”1541496546″,”device”:”XXXXXXA”,”rssi”:”-137.00″,”lng”:”141.0″,”data”:”de1a0001″},”sourceProtocol”:”sigfox”,”deviceId”:”XXXXXX”,”EventProcessedUtcTime”:”2018-11-06T09:29:10.9904081Z”,”PartitionId”:0,”EventEnqueuedUtcTime”:”2018-11-06T09:29:10.8350000Z”}
“data”の”de1a0001″の部分がSens’itデバイスから送信されてきたデータの中身になります。
上記のデータ定義を基に先ほどの取得したデータ”de1a0001″の内容を確認します。データは”de,1a,00,01”の4byteで構成されています。これを2進数に直すと”11011110″ “00011010” “00000000” “00000001”となります。左から0byte,1byte,2byte,3byteとなります。