AWS IoT CoreへアップロードされたデータをCloudWatchでグラフ化します。アップロードされたデータのフォーマットは次のようなJson形式とします。

{
  "Lightx": 8,
  "Switch":1
  "Temp": 20.5,
  "Hart": 95,
  "Spo2": 95
}

AWS IoT Coreでの設定

AWS IoT Coreで次の手順を実施します。

  1. AWS IoT のコンソールで、左側のメニューから 「ACT」→ 「ルール」 を選び、右上の「作成」をクリックします。
  2. ルール作成の画面で、名前「health」を設定し、「ルールクエリステートメント」は、「SELECT * FROM ‘(Thing)/sensors’」 を設定します。
  3. 「アクションの追加」で、「CloudWatch Logsにメッセージデータを送信する」を選択します。
  4. 他のアクションとしては次のようなサービスが登録されています(2021/06/13)

  5. ログのグループ名は、「新しいリソースを作成する」を選び、「アクション」 →「ロググループの作成 」 を選択します。
  6. ロググループの名前「healthgroup」を設定します。
  7. 終わるとコンソールに戻り、ログのグループ名から、 「healthgroup」 を選択します。
  8. ロールの作成で、名前「healthrole」を設定し、 「ロールの作成」 をクリックします。
  9. 「ルールの作成 」をクリックします。

CloudWatchでの設定

CloudWatchで次の手順を実施します。

  1. CloudWatchのコンソールで、左側のメニューから 「ダッシュボード」をクリックします。
  2. 「ダッシュボードの作成」をクリックし、名称を「healthboard」にします。
  3. 作成したダッシュボード「healthboard」をクリックし、右上に表示されている「ウィジェットの追加」をクリックすると、作成するウイジェットを選択でき、つぎのクエリの設定画面が表示されます。
  4. ログクループ「healthgroup」を選択し、クエリを設定して、「ウィジェットの作成」をクリックすると、ダッシュボード「healthboard」に作成したウィジェットが追加されます。
  5. 今回はダッシュボード「healthboard」に次のを二つのウィジェットを作成します。
    • ウィジェットタイプ:線、
      クエリ:stats avg(Light),avg(Temp) by bin(1s)
    • ウィジェットタイプ:ログテーブル、
      クエリ:fields @timestamp,Hart,Spo2 | filter (Switch = 0)
  6. 作成したダッシュボード「healthboard」は次のようになります。