はじめに
本コンテンツは 2020年2月22日(土)、23日(日)に開催される、新潟 IoT ハッカソンのハンズオンの記事となります。
スマートフォン用いてセンサータグのデータを取得し、enebular にセンサーデータを送信する例を示します。
準備するもの
- PC
- スマートフォン (iOS, Android)
- センサータグ (CC2650STK SimpleLink SensorTag) (当日配布)
当日 Free WiFi 環境が準備されます。
スマートフォンの通信容量が気になる方は、会場の Free WiFi をご利用ください。
構成
センサータグでセンシングしたデータを、スマートフォンを使って MotionBoard Cloud へデータを転送します。
本記事では、enebular までセンサーデータを送信できるところまでを確認します。
センサータグ
センサータグは小型でワイヤレス(BLE通信)で電池式といった特徴があるため、まずはどんなデータが集まるか確認したいといったプロトタイピングを行う場合に便利です。また、価格も安価($29)であるためハードルが低いです。
センサータグでは以下のデータが取得できます。
- 気温
- 物体温度
- 湿度
- 大気圧
- 高度
- 加速度、ジャイロスコープ(角速度)、地磁気 (それぞれ 3 軸)
- 照度
- 磁気
- ボタン
ハンズオン
スマートフォンアプリのダウンロード
センサータグのスマートフォンアプリをダウンロードします。
アプリダウンロード先
App Store Google Play

アプリのダウンロードには 100MB - 200MB 程度通信量が掛かります。
また、センサーデータの転送にも通信量が発生しますので、会場の Wifi をご利用ください。
センサータグの接続
ここからは、iOSアプリの画面で説明します。
アプリを起動し、センサータグの電源を入れると (SensorTag 2.0)
というデバイスが検出されます。
会場では複数個のセンサータグが利用されます。
センサータグの側面にあるボタンを押すと、自分のセンサータグを見分けることができます。他の人のセンサータグに接続しないよう気を付けてください。
自分のセンサータグをタップします。
Bluetooth デバイスが全く検出されない場合、スマホの Bluetooth の設定が無効化されていないか確認してください。
センサータグのデータ確認
Sensor View
をタップします。(Android の場合、選択肢は表示されません)
センサータグのデバイス情報確認
Cloud View
をタップし、遷移した Config Summary
画面に表示される Device ID
を控えます。(Androidの場合は ADVANCED
ボタンをタップします。 )
センサータグのデータを送信
Device ID
確認後、前の画面に戻り、Cloud View
のスイッチを ON
にします。
ここまでで、IBM Cloud の Watson IoT Platform の MQTT サーバーにセンサーデータを送信する環境が整いました。
次の章ではこのデータを enebular で取得します。
enebular フロー作成
enebular でフローを作成します。
enebular については詳しくは以下の記事を参照してください。
新潟 IoT ハッカソン2020 : enebularを活用したデータ連携
https://qiita.com/uhuru-hackathon/private/3b8b51748f1c2f98b7ca
enebular に ibmiot ノード追加
admin
タブに移動し、node-red-contrib-scx-ibmiotapp
を入力し、 Install
をクリックします。
入力
の ibmiot
ノードと 出力
の debug
ノードを配置し、線でつなぎます。
配置した IBM IoT
ノードをダブルクリックします。
編集画面で Device Id
に自分のセンサータグの Device ID を入力 完了
をクリックします。
項目 | 入力値 |
---|---|
Authentication | Quickstart (既定値) |
Input Type | Device Event (既定値) |
Device Id | センサータグの Device ID を入力 |
Name | (任意の値) |
1秒ごとにデータが送られてきます。
debug
ノードのボタンより、debug 表示を止めるとデータを確認しやすいです。
センサータグで取得できるデータ
センサータグで取得できるデータは以下の通りです。
iOSとAndroid でデータの名称が異なる場合があるので注意してください。
センサー | iOS | Android |
---|---|---|
気温 | ambientTemp | ambient_temp |
物体温度 | objectTemp | - |
湿度 | humidity | humidity |
大気圧 | pressure | air_pressure |
高度 | altitude | - |
加速度 (X軸, Y軸, Z軸) | accelX, accelY, accelZ | acc_x, acc_y, acc_z |
ジャイロスコープ (角速度) (X軸, Y軸, Z軸) | gyroX, gyroY, gyroZ | gyro_x, gyro_y, gyro_z |
地磁気 (X軸, Y軸, Z軸) | magX, magY, magZ | compass_x, compass_y, compass_z |
照度 | light | light |
磁気 | - | reed_relay |
ボタン | key1, key2 (ボタン押下時のみ) | key_1, key_2 |
例えば、 msg.payload.d.light
で照度を取得できます。
MotionBoard Cloud での可視化
MotionBoard Cloud にデータを転送し、可視化してください。
MotionBoard Cloud については以下の記事を確認してください。
新潟 IoT ハッカソン2020:MotionBoard Cloudとenebularの接続
https://qiita.com/wat-hattori/private/42d138fb65e275eca6e5
新潟 IoT ハッカソン2020:MotionBoardの利用
https://qiita.com/wat-hattori/private/4d73d0f2c445eab91361
https://qiita.com/wat-hattori/private/48fd085f38e846fbaa06
トラブルシューティング
ブラウザ版の enebular を利用している場合、60分 でタイムアウトしてしまいます。
リロード後、以下のように ibmiot in
が点線となっている場合、 ibmiot
の再インストールが必要となります。
ibmiot
ノードの再インストールがうまくできない場合以下の手順を試してください。
1. フロー内の点線となっている unknown: ibmiot in
ノードのみ削除
2. デプロイ
3. ブラウザのリロード
4. admin
タブに移動し、node-red-contrib-scx-ibmiotapp
を入力し、 Install
をクリックします。
5. 再度 ibmiot in
ノードを配置し、 Device ID
を設定し、デプロイ
60分ごとにこの作業が必要となるため、センサータグを利用する場合、デスクトップ版の enebular editor を使っていただくことをおすすめします。