COLUMN
IoTデバイス(ソーラービーコン)がAWS IoT Coreに届けるデータを整理してみた!
クラウド活用に関するさまざま情報をお届けするメルマガを毎週配信しておりますので、ぜひこの機会にご登録ください。
こんにちは、豊岡です。
今回はIoTデバイスのソーラービーコンがIoTゲートウェイを通じて、AWS IoT Coreに届けるデータ内容を整理してみました。
ビジネスでのIoTデータ利活用において取れるデータの特徴把握は大事ですが、今回は運用を気にかけた際に各デバイスにおけるデータはどうなっているのかに焦点を当ててみました。
1. 検証の様子
1-1. 利用したデバイス
利用したデバイスは下記の通りです。
1-2. 取得できるデータ
IoTゲートウェイと通信が取れるソーラービーコンからは下記のJSONデータが取得できます。従来はRSSI*の取得をBOOL値(真偽)として、IoTゲートウェイとデバイスが通信可能な範囲内であれば値が取得できることから、移動者の管理や見守りなどに使われるユースケースが紹介されています。
*RSSI(Received Signal Strength Indicator)は受信信号強度であり、受信機に受信信号の強度を示しています。値が0に近いほど強度が強い特徴を持ち、単位はdBmです。
{
"rssi": -82,
"deviceId": "シリアル番号",
"time": "2024-02-15T18:20:04.170+09:00"
"appendixInfo": "使用したIoTゲートウェイで付属できるデータ"
}
1-3. 構成図
今回はIoTゲートウェイからIoT Coreに送信した後は、シンプルな構成でAWS S3にデータを保存する形式を採用しました。AWS S3に入力されるアクションをトリガーに各システムに接続することや、IoT Coreの接続先(IoT SiteWise など)を見直すことで様々な応用が期待できます。
2. 設定手順
2-1. IoTゲートウェイ
基本的には下記のマニュアルを基に問題なく設定をすることができました。
操作画面①
(参考:WEB-UI接続準備)
IoTゲートウェイと操作PCをLANケーブルで接続して、Web UIにアクセスする
※今回のIoTゲートウェイはWEB UIのHTTP接続とLinux DebianのSSH接続を用意されています。
操作画面②
(参考:初期設定)
IoTゲートウェイから外部ネットワークに接続できるように、クライアントモードで周辺のWifiのSSIDとパスワードを入力して外部ネットワークに接続する
※AP(アクセスポイント)モードはIoTゲートウェイ自身からWiFiを発することで無線接続を可能になるモードです。今回は周辺WiFiを通じて外部ネットワークに接続するクライアントモードを選択しています。
操作画面③
(参考:デバイス登録機能)
- BLE設定登録でIoTデバイスがIoTゲートウェイで取得できるか、`検出`を押して確認する
- データ取得後に一覧にIoTデバイスが出力されるので、今回使用するデバイスを登録する
※ここで多くの周辺機器からのデータ取得がされることが確認できるので、以降のデータフィルティング機能を有効にすることを忘れずに設定する必要があります。
操作画面④
(参考:BLEビーコン送信設定)
(参考:AWS IoT(awsiot))
デバイス登録が済んだ後に各デバイスの設定項目があるので、ビーコン送受信設定の`使用する`にチェックを入れる
- デバイスIDの取得はペイロード管理の`data`にチェックを入れると、データ送信時に他のデバイスと区別するデバイスIDが取得でき、データプレフィックスに入力
- 送受信設定で今回利用するAWS IoTにチェックを入れる
- ここでのトピック入力がAWSのサブスクリプションフィルターで用いるパラメータに該当
操作画面⑤
(参考:AWS IoT(awsiot))
- AWS IoTを`使用する`にチェックを入れて、AWS IoT Coreから取得した証明書(後述リンク)をルート証明書にアップロードする
- インターバルはIoTゲートウェイからAWSへアップロードされる間隔を示し、今回は300秒に設定する
操作画面参考
(参考:動作確認)
※上手く設定ができているかどうかは、サービス>IoTデータ>ログでいくつか出力されているので、切り分けができるのでよく活用しました!
2-2. AWSの手順
操作画面①
AWS IoT Coreを検索窓で入力して、管理>モノを作成にアクセスする
操作画面②
- ステップ1:複数のモノを管理する場合は、検索属性やモノのグループを作成することが可能(キャプチャ省略)
- ステップ2:新しい証明書を選択して、「次へ」をクリック
- ステップ3:証明書に付与するIAMポリシーをアタッチして、「モノを作成」をクリック
※新規の場合はポリシーを作成を選択して、下記のポリシーを作成します。検証用の為、ワイルドカードを用いていますが本番運用の場合は必要最低限のポリシーを推奨いたします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
}
操作画面③
各種ファイルをダウンロードして、完了をクリック
- 2-1. 操作画面⑤にて、XXXXX-certificate.pem・XXXXX-private.pem.key・AmazonRootCA1.pemをアップロードする
2-3. 接続確認
以上の工程でIoTデバイスとIoTゲートウェイ、IoTゲートウェイとAWS IoTの接続準備が終了したので、実際にデータが取得できているかどうか確認する。
操作画面①
(参考:View MQTT messages with the AWS IoT MQTT client)
AWS IoT Coreを検索窓で入力して、テスト>MQTTテストクライアント>トピックをサブスクライブする、にアクセスして各種パラメータを入力する
- トピックのフィルターに`#`を入力すると、IoTゲートウェイからの出力をリアルタイムで確認することができます。フィルターで特定のゲートウェイからの発信を制御するときは2-1. 操作画面④のトピック入力で設定した内容を記載します。
操作画面②
(参考:Rules for AWS IoT)
MQTTテストクライアントでIoTゲートウェイからの出力ができたら、永続的にデータを保存できるようにトピックの出力先を設定します。メッセージのルーティング>ルールからルールの作成を選択します。
SQLステートメントでMQTTテストクライアントで入力したクエリを用いて、ルールアクションでS3バケットを指定する。
- キー名は日付などを自動付与する指定を決められる
- IAMロールには信頼されたエンティティにIoT Coreを指定して、S3アクションを許可する
3. 計測結果
上記の過程を踏まえてデータを出力できたので、取得できたデータを調査してみます。今回は送信される距離ごとの値やデバイスごとの値・時間出力間隔に注目してみました。下記の写真のように距離は0m/1m/3m/6mで計測しました。
3-1. 計測環境
3-2. 距離ごとのRSSI値と測器によるシグナル評価
距離が近いほどRSSIの精度が高く、2つのデバイスともに距離が離れるにつれてRSSIの精度が下がる特徴を実際に確認することができました。
3-3. 測器の出力時間間隔
次に測器別に取得できる時間を確認してみました。300秒で値を出力するように設定し、適切な秒数でデータが届ていることが確認できました。
4. 最後に
今回はIoTデバイスのソーラービーコンをIoTゲートウェイを通じて、AWS IoT Coreに送信する手順と、実際に取得できた値を測器別に調査してみました。
IoTデバイスとIoTゲートウェイは外部環境に置かれるユースケースも多々あると思いますので、初期設置だけでなく定期的にデバイス管理の運用に目を向けてデータを確かめてみる必要も重要であると思うのでぜひ確認してみてください。
RECOMMEND
その他のコラム
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。