DEV Community

Takahiro-Y01
Takahiro-Y01

Posted on

aws IoT Coreからaws IoT Analyticsにデータを保存する

IoT Analyticsの設定

IoT Analyticsを設定するには、以下のステップに従います:

  1. AWS IoT Analyticsダッシュボードにアクセスします。
  2. ワンクリッククイックスタートを使用して、必要なリソース(チャネル、パイプライン、データストア、データセット)を自動的に作成します。
  3. リソースプレフィックスフィールドに、リソースを識別するための独自の名前(例えば、MyIoTProject)を入力します。
  4. リソースの作成ボタンをクリックして、プロセスを完了します。

IoT Coreの設定

IoT Coreでメッセージをルーティングするルールを設定するには、以下の手順を実行します:

  1. AWS IoT Coreダッシュボードにアクセスし、ルールセクションに進みます。
  2. 新しいルールの作成ボタンをクリックします。
  3. ルールに名前を付けます(例:SendToIoTAnalytics)。
  4. ルールクエリステートメントで、データ形式に合ったSQL文を記入します。例:

    SELECT end_device_ids.device_id AS device, timestamp() AS timestamp, uplink_message.decoded_payload.distance AS distance FROM 'lorawan/A840413A21/uplink' WHERE uplink_message.decoded_payload.distance > 20
    

    このクエリは、デバイスID、タイムスタンプ、距離データを選択し、距離が20より大きいデータのみを取得します。

  5. アクションの追加を選択し、IoT Analyticsをアクションとして追加します。

  6. IoT Analyticsのチャネル名を選択します(自動作成されたチャネル名を使用)。

  7. 必要に応じて、新しいIAMロールを作成または既存のものを選択します。筆者は新しいIAMロールを任意の名前で作成します。

  8. ルールの作成をクリックして、設定を完了します。

IoT Analyticsにデータを確認

IoT Analyticsにデータが届いているかを確認するには、以下の手順に従います:

  1. IoT Analyticsダッシュボードにアクセスします。
  2. データストアセクションを開きます。
  3. 作成したデータストアを選択します。
  4. 最終データ到達日時を確認します。この日時が最近のものに更新されていれば、データが正常に送信されていることを示します。

データストアの最終データ到達日時が更新されていない場合は、以下の点を確認してください:

  • IoT CoreとIoT Analytics間の接続が正しく設定されているか。
  • IoT Coreのルールが正しく設定され、アクティブになっているか。
  • データがIoTデバイスから正常に送信されているか。

問題が解決しない場合は、IoT Analyticsのログやモニタリングツールを使用して、エラーの原因を特定してください。

データセットの更新間隔の設定

データセットの更新間隔は、データセットスケジュールから変更できます。この設定を通じて、データセットの更新頻度を制御し、リアルタイム性やデータ量とのバランスを取ることが可能です。更新間隔は、特定の時間ごと、または定期的なスケジュールに基づいて設定できます。

  1. IoT Analyticsのダッシュボードにアクセスします。
  2. データセットセクションを選択します。
  3. 更新したいデータセットのスケジュールオプションをクリックします。
  4. 更新間隔を設定します。例えば、「毎時」、「毎日」、「毎週」などのオプションがあります。
  5. 設定を保存して完了します。

これらの設定により、データの分析と処理の頻度を最適化し、システムのパフォーマンスと効率を向上させることができます。また、特定のイベントや条件に基づいて更新間隔を設定することも可能です。この柔軟性により、異なるアプリケーションや使用状況に応じたデータ管理が実現できます。

参考: ドアセンサーデータのSQL例

ドアセンサーを使用し、ドアが開いている(DOOR_OPEN_STATUS=1)時のデータのみを保存する場合のSQL文の例は以下のようになります:

SELECT timestamp() AS timestamp, uplink_message.decoded_payload.DOOR_OPEN_STATUS AS clock FROM 'lorawan/A840417611/uplink' WHERE uplink_message.decoded_payload.DOOR_OPEN_STATUS=1
Enter fullscreen mode Exit fullscreen mode

このSQL文は、ドアが開いている状態のデータを選択し、タイムスタンプと共に保存します。

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay