COLUMN

IoT CoreとIoT SiteWiseを連携してセンサー情報を可視化してみた!

こんにちは、坂齊です。

今回は、IoT Coreで受け取ったセンサーデータのリアルタイム可視化に挑戦しました。

AWS上で可視化する方法は複数(QuickSight、Kibana、Gtafana・・・)ありますが、リアルタイムの可視化を実現するべく、IoT SiteWise Monitorを利用しました。本コラムでは、IoT CoreとIoT SiteWise Monitorの連携、可視化までの設定手順を中心にご紹介いたします。

クラウド活用に関するさまざま情報をお届けするメルマガを毎週配信しておりますので、ぜひこの機会にご登録ください。

検証の様子

検証は、株式会社ぷらっとホームのIoTゲートウェイ『OpenBlocksIoT』とセンサー(EMSIBセンサー)を利用しました。

本コラムではセンサーからIoT Coreまでのデータ送信に関しては扱いません。

  • EMSIBセンサー:5種類のデータ(温度、湿度、照度、加速度、開閉のセンサー)を取得~送信可能なセンサー

送信データ例

json:

{
  "temperature": 17.4,
  "deviceId": "e500ec090000",
  "memo": "ban'sEMSIB",
  "accelS": 1,
  "contact": "Open",
  "energy_level": 40.5,
  "accelY": 0,
  "accelZ": 1,
  "time": "2023-12-13T11:51:44.773+09:00",
  "rssi": -51,
  "humidity": 63,
  "ill_sensor": 320,
  "accelX": -0.02,
  "sequence": 41
}
  • IoTゲートウェイ『OpenBlocksIoT』:センサーからデータを受け取りクラウド等に送信

LANケーブルを用いてPCに接続することで、特定のデバイスからのデータに絞ることや、どのクラウドに送信するかを設定する事が可能です。

  • クラウド:センサーデータの収集・蓄積、変換・分析を実施

AWS構成図

AWS内の構成図は下記です。

  • IoT Core:デバイスゲートウェイおよびメッセージブローカーを通じてデバイスを AWS のサービスや他のデバイスに接続するクラウドサービス
  • IoT rule :Amazon DynamoDB データベースへのデータの送信、Amazon Kinesis Data Streams へのデータの送信、AWS Lambda 関数の呼び出しなどのアクションを設定する機能
    ⇒IoT Coreで受信したデータをAWSの様々なリソースに振り分けすることが可能です。本構成では、IoT SiteWiseとCloudWatch Logsにデータを送信しました。
  • IoT SiteWise:産業用機器からデータを大規模に収集、モデル化、分析、視覚化することができるマネージドサービス
  • CloudWatch Logs :ログの管理リソース
    ⇒可視化がうまくいかない場合があったため、原因切り分けの為に利用しました。

設定手順

上記の構成でIoT SiteWise Monitorで可視化するまでの設定手順です!

SiteWiseとCoreどこから設定すればいいんだ、、、エイリアスってなんだ、、、等色々と迷いました。振り返ると、何をしたいか決めることで『何を設定すればいいのか』が明確になりました。

Step1【IoT SiteWise】アセットモデル・アセットの作成

Step1-1 アセットモデルの作成

上記と重複しますが、アセットモデルを作成するために、自分の中で『何をしたいのか決める』ことが大事です。私はシンプルに、時間経過に伴う温度・湿度の遷移図を可視化することにしました。アセットモデルの設定値は大きく4つ、『属性』『測定』『変換』『メトリクス』です。

センサー1個の温度と湿度のデータをただグラフ化するだけであれば、『測定』に”温度”と”湿度”を設定すればOKです。

アセットモデルの詳細は、下記をご参照ください。

AWS IoT Deep Dive #5 – Industrial IoT 向けサービス・ソリューション特集 資料と録画、Q&Aを公開 | Amazon Web Services

実際のコンソール画面です。下記のように測定値の名前に『temprature』、単位『℃』、適したデータ型を選択します。
データ型はセンサーの仕様によります。

Step1-2 アセットの作成

次にSiteWiseでは『アセット』を作成する必要があります。設定画面はシンプルで先ほど作成したモデルを選択し、アセットの名前を命名するのみです。

アセットモデルとアセットで混乱するかもしれませんが、設定画面で実施しているようにアセットはアセットモデルをもとに作られ、アセットモデルで設定した測定や属性といった情報が引き継がれます。

センサーが複数ある場合は、下記のように設定していくイメージです。

Step2 IoT Coreのルール設定

IoT Coreのルールでは、『どの情報』を『どこに送るか』(アクション)を設定します。

Step2-1 ロールの作成

IAM Roleにて、送信先(IoT SiteWiseやCloudWatch Logs等)に対してIoT Coreからアクセスを許可するロールを作成しましょう。

参考サイト:IoT センサーデータを AWS IoT Core 経由で SiteWise に送ってみた

Step2-2 ルールを作成①

『IoT Core』にある『管理』の『メッセージのルーティング』にてルールを作成できます。

『ルールを作成』を選択すると、『ルールのプロパティ』画面になります。ルール名を設定しましょう。

Step2-3 ルールを作成② SQLステートメントの設定

次に、SQLステートメントの設定画面が表示されます。

SQLステートメントでは『どの情報』に対してルーティングをするのか設定します。

今回は下記のように指定しました。SQLの為、フィルターなどもかけられるようです。

json:

SELECT * FROM '●●_xxxxxx(トピック名)'
Step2-4 ルールを作成③ アクションの作成

アクションにて『どのリソースにデータを送るか』を設定します。

IoT SiteWiseへのアクションは下記のように設定しました。

エントリは複数作成できるので、温度、湿度と測定したい値ごとにエントリを作成しました。

ここで設定したのは、『プロパティエイリアス』『時間(秒)』『データ型』『値』です。

  • エイリアス:この測定値をどこに格納するかを設定するイメージで自由に命名していきます。一旦『/センサーの名前/測定しているもの(temperatureやhumidity)』としました。
    ※この値は自分で設定してOKです。AWSドキュメントや他ブログに倣い、パスのように記載をしました。
  • 時間:センサーからくるJsonに書かれている時間情報か、IoT Coreから提供されているタイムスタンプを使用できます。
  • データ型:センサーの仕様を確認し設定しました。
  • 値:Jsonデータのなんの値をIoT SiteWiseに送るかを設定します。

時間に関しては下記AWSドキュメントに詳細がありますのでご確認ください。

AWS IoT Core ルールを使用によるデータの取り込み – AWS IoT SiteWise

補足

アクションは複数設定することができます。アクションの中にCloudWatch Logsへのログの送付がありますので、設定しておくとうまくいかなかった時の切り分けに便利です。

エラーアクションが設定できるので、そちらもCloudWatch Logsに情報が行くように設定しました。

Step3 データ送信開始

実際にデータの送信を始めます。

Step4【IoT SiteWise】データストリームの設定

センサーからデータが送信されると、IoT SiteWiseのデータストリームにIoT Coreのルールで設定したエイリアスが現れます。ここでついに、IoT Coreから送られたセンサー情報が、どのアセットのどの測定値なのかを紐づけていきます。

表示されるまで少し時間がかかることがあります、なかなか表示されない場合はIoT CoreのルールでCloudWatch Logsを設定している場合は、そちらを確認しましょう。

上記の画面で該当データストリームを選択し、『データストリームを管理』のボタンを押します。

下図のように『測定値を選択』を押して、該当のアセットの対応する測定値を選び『選択』、『更新』を押します。

更新後の画面がこちらです。

Step5 【IoT SiteWise】ポータル化

ポータルの作成自体は非常に簡単でした。『ポータルを作成』から、ポータルの名前・認証方法などを選択していくと、リンクが払い出されます。

リンクを開くとこのような画面が出ます。ダッシュボード機能でカスタマイズも可能です。

温度・湿度以外のデータも上記手順で取得し、ダッシュボードをカスタマイズすると、このような画面を作ることができました!また、リアルタイムだけではなく、過去のデータの表示もでき、閾値なども設定できました!

最後に

今回特にIoT Coreのルールから設定すればいいのか??アセットやモデルから作成すればいいのか??といろいろと悩みました。結論としてどちらからでも問題ありませんでしたが、今回ご紹介した手順のように、自分が何をしたくてどんなグラフが欲しいのかを決めた上で、アセットモデル、アセットを作成すると、混乱が少なくなると思います。

活用例

今回の検証を通して、IoTゲートウェイ、センサーとAWSを活用することで温度・湿度・日照量などの可視化や監視が可能になり、一例として下記に適用できます。

  • ビニールハウスや工場の温度・湿度・日照量の監視および異常状態の検知
  • 複数のセンサーを組み合わせることによる再生可能エネルギープラントの監視

センサーのリアルタイム可視化をご検討中の方はぜひ、こちらよりNTT東日本にご相談ください!

ページ上部へ戻る

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。