はじめに
前回の投稿でSiemensの産業向けエッジプラットプラットフォーム"Industrial Edge"から"AWS IoT Core"へ二酸化炭素濃度センサーで取得したデータの連携についてご紹介しました。
今回はそのデータをGrafana等のツールで使用できるよう、AWSのデータベースサービスであるAmazon Timestremeへ送信する手順についてまとめました。
構成
今回の構成およびデータフローを図1に示します。
図1. 構成図
二酸化炭素濃度センサーからIoT Coreまでのデータ送信については以下のリンクをご参照ください。
※参考リンク
エッジプラットフォームとAWS IoT Coreの連携
設定
Amazon Timestreamの設定
- AWS Consoleにアクセスし、データベース → Amazon Timestreamをクリックします。
図2. AWS Console ホーム - センサーデータを保存するデータベースを作成します。ナビゲーションペインでデータベースをクリックします。
図3. Amazon Timestream ダッシュボードホーム - データベースを作成をクリックします。
図4. Amazon Timestream データベースホーム - 標準データベースを選択し、任意の名前を入力します。(今回はNETFC)名前を入力後データベースを作成をクリックします。
図5. Amazon Timestream データベース作成画面 - NETFCというデータベースが作成されました。ナビゲーションペインでテーブルをクリックします。
図6. Amazon Timestream データベースホーム - テーブルを作成をクリックします。
図7. Amazon Timestream テーブルホーム - データベース名は先ほど作成したNETFCを選択します。テーブル名は任意の名前を指定します。今回はCarbon_dioxide_concentration_sensorとしました。スキーマの設定はデフォルトパーティショニングとしテーブルを作成をクリックます。
図8. Amazon Timestream テーブル作成画面
AWS IoT Coreの設定
- AWS Consoleにアクセスし、IoT → IoT Coreをクリックします。
図9. AWS Console ホーム - IoT Coreで取得したデータをAmazon Timestreamに送信するルールを作成します。ナビゲーションペインで管理 → メッセージのルーティング → ルールをクリックします。
図10. AWS IoT Coreホーム - ルールを作成をクリックします。
図11. AWS IoT Core ルーティングルール画面 - ルール名に任意の名前を指定します。今回はCarbon_dioxide_concentration_sensor_ruleとしました。
図12. AWS IoT Core ルーティングルール作成画面 - MQTTデータの指定を行います。CloudConnectorというトピック名でデータを取得しているのでSELECT * FROM 'CloudConnectr/'としました。CloudConnectorというトピックからすべてのデータ(*はワイルドカード)を取得するという意味になります。記述したら次へをクリックします。
図13. AWS IoT Core ルーティングルール作成画面 - ルールを指定します。今回はAmazon Timestreamにデータ送信を行うのでTimestream tableを選択します。
図14. AWS IoT Core ルーティングルール作成画面 - ルールアクションの設定を行います。データを転送するデータベース(NETFC)とテーブル(Carbon_dioxide_concentration_sensor)を選択します。ディメンジョンは各メジャーレコードに書き込まれる時系列のメタデータ属性です。ディメンション名には任意の名前を指定します。(今回はDeviceID)、ディメンション値にはMQTTデータに含まれるClientIDを指定しました。IAMロールは自動的に作成可能です。新しいロールの作成をクリックします。
図15. AWS IoT Core ルーティングルール作成画面 - 任意のロール名を指定します。今回はNETFC_IoT_Core_Timestream_Roleとしました。入力したら作成をクリックします。
図16. AWS IoT Core ルーティングルールロール作成画面 - IAMロールが作成され割り当てられました。次へをクリックします。
図17. AWS IoT Core ルーティングルール作成画面 - 作成をクリックします。
図18. AWS IoT Core ルーティングルール作成画面 - ルーティングルールが作成されました。以上で設定は完了となります
図19. AWS IoT Core ルーティングルール画面
動作確認
- Amazon Timestreamでデータが受信できることを確認します。AWS Consoleにアクセスし、データベース → Amazon Timestreamをクリックします。
図20. AWS Console ホーム - ナビゲーションペインからテーブルをクリックします。
図21. Amazon Timestream ダッシュボードホーム - データが格納されるテーブル(Carbon_dioxide_concentration_sensor)をクリックします。
図22. Amazon Timestream テーブルホーム - 画面右上のアクション → クエリテーブルをクリックします。
図23. Amazon Timestream テーブル画面 - SQL文が自動で入力されているので、実行をクリックします。
図24. Amazon Timestream クエリエディタ画面 - 返された行に受信したデータが表示され、データを受信できていることが確認できました。
図25. Amazon Timestream クエリエディタ画面
おわりに
これでローカルのIoTデータをAWSクラウドへ送信し、Grafana等のAWSクラウド上で動作するアプリーケーションで使用できるようになりました。
※ SiemensおよびIndustrial Edgeは、Siemensの登録商標または商標です。