LoginSignup
0
1

More than 1 year has passed since last update.

温湿度・大気圧とGNSS位置情報をSigfox通信で取得できるIoTキットを試してみた②

Last updated at Posted at 2021-03-08

前回記事①からの続きです。
今回は、「②: Sigfoxネットワーク通信の動作確認」をしてみます。

①:セットアップ
②:Sigfoxネットワーク通信の動作確認
③:クラウド利用のための設定例

overview_2_.jpg

6.動作確認

ネットワークの受信側(Sigfoxクラウド)の動作確認の前に、まずはデモ・キット単体の動作確認をします。2つのアンテナをそれぞれ接続し、GNSS用アンテナについてはできれば屋外、室内であれば少なくとも空の見える窓際に置いてください。
USBシリアル・インタフェース経由で確認するため、Teratermなどのターミナル・エミュレータ・ツールを事前にパソコンへインストールしてください。ここではTeratermを使います。
ダウンロードはこちらから:Teraterm

icon.JPG

インストールが完了したら、デモ・キットをパソコンとUSB接続します。
Teraterm起動後、新規接続から「シリアル・ポート」を選択し、STM32 Nucleoボードに該当するCOMポートを選択します。STMicroelectronics STLink Virtual COM・・・と表示されているポートです。
その後、OKをクリック。

teraterm_newconnection.jpg

セットアップ→シリアル・ポートから、以下のように設定します。
Baud rate=115200, Date=8bit, Parity=None, Stop bit=1

teraterm_serialport.jpg

STM32 Nucleoボードのリセットボタン(黒ボタン)を押して、以下のような出力が表示されればOKです。

teraterm_resetStart_.jpg

デフォルトでは、以下のイベント発生検出によりデータをSigfoxクラウドに送信します。
データ送信のトリガとなるイベント:

1.振動(キット本体を揺らす)
2.ユーザ・ボタン(青ボタンをプッシュ)

Sigfoxクラウドに送信されるデータは以下2種類です。1イベントにより送信するデータは1種類。イベント発生ごとに、2種類のデータを交互に送信します。

データ種類:
1.温度 / 湿度 / 大気圧データ(7Byte)
2.GNSSデータ(9Byte)

STM32 Nucleoボードのユーザ・ボタン(青ボタン)を押して以下のようなメッセージが出力されればOKです。
ボタンを押すごとに、温度 / 湿度 / 大気圧データとGNSSデータが交互に送信されるのが確認できます。

teraterm_buttonx4.jpg

以上で、デモ・キット側からのデータ送信動作は確認できました。

送信時のデータ・フォーマットについて

このデモでは、送信データ(アップリンク・データ)について以下のような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です。

sigfox_device_message.jpg

以上で、正しく温度/湿度/大気圧および、GNSS位置情報が送信されたのが確認できました。

まだまだ長くなりそうなので、つづきは次回へ。
Sigfoxを使った、温湿度・大気圧とGNSS位置情報を取得できるIoTキットを試してみる③

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1