前回記事①からの続きです。
今回は、「②: Sigfoxネットワーク通信の動作確認」をしてみます。
①:セットアップ
②:Sigfoxネットワーク通信の動作確認
③:クラウド利用のための設定例
6.動作確認
ネットワークの受信側(Sigfoxクラウド)の動作確認の前に、まずはデモ・キット単体の動作確認をします。2つのアンテナをそれぞれ接続し、GNSS用アンテナについてはできれば屋外、室内であれば少なくとも空の見える窓際に置いてください。
USBシリアル・インタフェース経由で確認するため、Teratermなどのターミナル・エミュレータ・ツールを事前にパソコンへインストールしてください。ここではTeratermを使います。
ダウンロードはこちらから:Teraterm
インストールが完了したら、デモ・キットをパソコンとUSB接続します。
Teraterm起動後、新規接続から「シリアル・ポート」を選択し、STM32 Nucleoボードに該当するCOMポートを選択します。STMicroelectronics STLink Virtual COM・・・と表示されているポートです。
その後、OKをクリック。
セットアップ→シリアル・ポートから、以下のように設定します。
Baud rate=115200, Date=8bit, Parity=None, Stop bit=1
STM32 Nucleoボードのリセットボタン(黒ボタン)を押して、以下のような出力が表示されればOKです。
デフォルトでは、以下のイベント発生検出によりデータをSigfoxクラウドに送信します。
データ送信のトリガとなるイベント:
1.振動(キット本体を揺らす)
2.ユーザ・ボタン(青ボタンをプッシュ)
Sigfoxクラウドに送信されるデータは以下2種類です。1イベントにより送信するデータは1種類。イベント発生ごとに、2種類のデータを交互に送信します。
データ種類:
1.温度 / 湿度 / 大気圧データ(7Byte)
2.GNSSデータ(9Byte)
STM32 Nucleoボードのユーザ・ボタン(青ボタン)を押して以下のようなメッセージが出力されればOKです。
ボタンを押すごとに、温度 / 湿度 / 大気圧データとGNSSデータが交互に送信されるのが確認できます。
以上で、デモ・キット側からのデータ送信動作は確認できました。
送信時のデータ・フォーマットについて
このデモでは、送信データ(アップリンク・データ)について以下のような2種類のデータ・フォーマットがあります。送信順番は左側の「0」から。Sigfox上限の12 Byte内では全てのデータを1回で送れないため、センサ・データ用とGNSSデータ用に分けられています。データ種類の判別は総Byte数を参照してください。最後の1 Byteはどちらの場合でも共通のトリガ・マスク情報です。何のイベントに対してこのデータを送信させているかの判別に使えます。
データ・フォーマット 2種
7Byteデータ:MEMSセンサデータ(温度/湿度/大気圧、各2 Byte)
送信データ例(下段): 01cf010727bc02
0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
湿度上位Byte | 湿度下位Byte | 温度上位Byte | 湿度下位Byte | 大気圧上位Byte | 大気圧下位Byte | トリガーマスク |
01 | cf | 01 | 07 | 27 | bc | 02 |
"01cf" --> 0x01CF = 463 → 46.3%
"0107" --> 0x0107 = 263 → 26.3℃
"27bc" --> 0x27BC = 10172 → 1017.2h
"02" --> 00000010 → ユーザボタン検出
9Byteデータ:GNSS位置データ(経度/緯度、各4 Byte)
送信データ例(下段): 021b16e0084fcff010
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
緯度Byte (MSByte) | 緯度Byte | 緯度Byte | 緯度Byte (LSByte) | 経度Byte (MSByte) | 経度Byte | 経度Byte | 経度Byte (LSByte) | トリガーマスク |
02 | 1b | 16 | e0 | 08 | 4f | cf | f0 | 10 |
"021b16e0" --> 0x21b16e0 = 35,329,760 → 35.32976
"084fcff0" --> 0x84fcff0 = 139,448,304 → 139.448304
"10" --> 00010000 → ウェイクアップ(振動検出)
トリガーマスク(各送信最後の1Byte):
1:イベント検出
0:無し
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
---|---|---|---|---|---|---|---|
温度 | 大気圧 | 湿度 | ウェイクアップ | ティルト | 方向 | ユーザボタン | タイマ |
7.Sigfoxクラウドでの受信データ確認
次に、Sigfoxクラウドにデータが送信されているかどうか確認してみましょう。
SIgfoxクラウドにログインし、DEVICEタグページから該当デバイスIDをクリック。
その後、左メニューからMESSAGEを開きます。
Data/Decodingの列にさきほど送信したデータ(Sending...の後の7Byteもしくは9Byteの16進数データ)が表示されていればOKです。
以上で、正しく温度/湿度/大気圧および、GNSS位置情報が送信されたのが確認できました。
まだまだ長くなりそうなので、つづきは次回へ。
Sigfoxを使った、温湿度・大気圧とGNSS位置情報を取得できるIoTキットを試してみる③