翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MQTT 対応 V3 ゲートウェイを使用してデータを SiteWise Edge に統合する
このチュートリアルでは、MQTT メッセージングプロトコルを使用するサードパーティーのデバイスとセンサーを AWS IoT SiteWise MQTT 対応 V3 ゲートウェイと統合する方法について説明します。MQTT 対応デバイスからデータを収集してモニタリングするように AWS IoT SiteWise エッジゲートウェイを設定する方法について説明します。 AWS IoT SiteWise を使用すると、産業機器データを収集、処理、モニタリングできます。SiteWise Edge 機能を使用して、産業用 IoT オペレーションを最適化し、未加工データを実用的なインサイトに変換します。
このチュートリアルでは、風力発電所のデモンストレーションのデータを使用して、主要な概念を説明します。プロセスに慣れたら、独自のデータを使用してチュートリアルを繰り返すことができます。
このチュートリアルを完了したら、次の項目を実行できます。
-
産業用デバイスからデータを受信するように MQTT 対応の V3 ゲートウェイを設定および設定する
-
エッジの機器からの受信 MQTT メッセージを処理および検証する
-
サードパーティーの視覚化プラットフォーム AWS IoT SiteWise を使用して でデバイスデータを表示する
-
エッジゲートウェイから に処理されたデータを送信 AWS クラウド して、一元化されたストレージとさらなる分析を可能にする
さらに、他の AWS IoT サービスに接続して次のタスクを実行することで、エッジゲートウェイ機能を活用できます。
-
Amazon Amazon S3
Timestream 、 などのサービスにデータをルーティングする AWS IoT ルールを設定しますAWS Lambda 。 -
AWS IoT Device Defender
を使用して、ゲートウェイ設定をリモートで管理および更新します。 -
AWS IoT セキュリティ機能を使用して、安全なデバイス認証と認可を実装します。詳細については、「 AWS IoT デベロッパーガイド」のAWS IoT 「 セキュリティ」を参照してください。
-
機器データに基づいて自動アラートと通知を作成します。詳細については、「 AWS IoT デベロッパーガイド」の「 のルール AWS IoT」を参照してください。
注記
このチュートリアルでは、サードパーティーのサービス、ツール、ドキュメントを参照します。 AWS は、サードパーティーの製品やサービスのベンダーまたはサプライヤーではなく、外部プロバイダーからの情報の正確性を保証することはできません。デプロイする前に、すべてのサードパーティーツールを評価して検証します。
トピック
前提条件
このチュートリアルを完了するには、以下が必要です。
-
AWS アカウント。アカウントをお持ちでない場合は、「AWS アカウントを設定する」を参照してください。
-
管理者権限を持つ AWS Identity and Access Management (IAM) ユーザー。詳細については、「の ID とアクセスの管理 AWS IoT SiteWise」を参照してください。
-
デバイスにPythonインストールされている の最新バージョン。
重要
このチュートリアルでは、Ingest data チュートリアルで作成されたリソースを使用する必要があります。このチュートリアルに進む前に完了する必要があります。
ステップ 1: AWS IoT ポリシーを作成する
このチュートリアルでは、データ取り込みチュートリアルで作成した AWS IoT ポリシーを使用します。このポリシーは、デバイスのセキュリティルールを設定し、外部デバイスとセンサーのデジタル表現を作成します AWS IoT。このポリシーは、サードパーティーデバイスが MQTT (Message Queuing Telemetry Transport) AWS IoT Core を使用して にデータを送信することを許可します。MQTT メッセージの詳細については、「MQTT とは
このポリシーにより、 AWS IoT デバイスは MQTT メッセージを使用して接続を確立し、デバイスシャドウと通信できるようになります。デバイスシャドウを操作するために、 AWS IoT モノは で始まるトピックで MQTT メッセージを発行および受信します$aws/things/
。このポリシーには、thing-name
/shadow/${iot:Connection.Thing.ThingName}
と呼ばれるモノのポリシー変数が組み込まれています。この変数は、各トピックで接続されたモノの名前に置き換わります。iot:Connect
ステートメントはデバイスが接続を確立できる制限を設定し、モノのポリシー変数は、SiteWiseTutorialDevice
で始まる名前のみに置き換えることができます。
詳細については、[AWS IoT Developer Guide] (デベロッパーガイド) の[Thing policy variables] (シングポリシー変数) を参照してください。
注記
このポリシーは、名前が SiteWiseTutorialDevice
で始まるモノに適用されます。モノに別の名前を使用するには、それに応じてポリシーを更新する必要があります。
ステップ 2: AWS IoT モノを作成して設定する
このステップでは、エッジデバイスを AWS IoT モノとして登録し、 AWS IoT SiteWise Edge との安全な通信に必要なモノの証明書とキーを生成します。このプロセスは、デバイスが MQTT 対応 V3 ゲートウェイを介してサードパーティーデータを送信するための基盤を確立します。
これらのステップを完了すると、デバイスを AWS IoT SiteWise Edge に安全に接続できます。MQTT 認証用に生成した証明書とキーを保存するローカルディレクトリを作成しました。デバイスは AWS IoT コンソール
ステップ 3: SiteWise Edge MQTT 対応 V3 ゲートウェイを設定する
このステップでは、 AWS IoT SiteWise Edge MQTT 対応 V3 ゲートウェイを作成し、EMQX ブローカーからデータを受信するように設定します。ゲートウェイは、デバイスと の間のブリッジとして機能します AWS IoT。これにより、 に送信する前に、エッジでローカルにデータを処理できます AWS クラウド。この設定により、帯域幅が減少し、クラウド処理の遅延が軽減されます。
ステップ 4: SiteWise Edge ゲートウェイソフトウェアをインストールする
ゲートウェイソフトウェアをインストールするには、前のステップでダウンロードしたインストーラパッケージを使用します。インストールプロセスでは、必要なコンポーネントを設定し、Greengrass コアサービスを開始し、デバイスを に登録します AWS IoT Greengrass。インストールが完了したら、ゲートウェイが Edge ゲートウェイのAWS IoT SiteWise コンソール
詳細な手順については、「ローカルデバイスに AWS IoT SiteWise Edge ゲートウェイソフトウェアをインストールする」を参照してください。
ステップ 5: 外部アプリケーションに接続するように EMQX ブローカーを設定する
注記
続行する前に、SiteWise Edge MQTT 対応 V3 ゲートウェイをデプロイしておく必要があります。ゲートウェイは、EMQX ブローカーの設定に必要なインフラストラクチャとセキュリティ設定を提供します。ブローカー設定は、アクティブなゲートウェイのデプロイなしで失敗します。
IoT デバイスと外部アプリケーション間の安全な通信を可能にするように EMQX ブローカーを設定します。EMQX ブローカーは、IoT デバイス、ゲートウェイ、アプリケーション間でデータをルーティングする中央メッセージングハブとして機能します。EMQX ブローカーは、ゲートウェイとエッジの接続されたアプリケーションで信頼性の高いメッセージ配信を実現します。詳細については、「外部アプリケーションを EMQX ブローカーに接続する」を参照してください。
EMQX ブローカーを設定するには
-
EMQX ブローカーをセットアップします。詳細な設定手順については、「認証用の EMQX デプロイ設定を更新する」のステップ 1~14 に従ってください。
-
風力発電所のモニタリング用に MQTT トピックを設定します。MQTT 要件の詳細については、「」を参照してくださいMQTT トピックの要件。
-
CPU 使用率:
SiteWiseTutorialDevice/cpu
-
メモリ使用量:
SiteWiseTutorialDevice/memory
-
タイムスタンプ:
SiteWiseTutorialDevice/timestamp
-
-
設定を確認し、デプロイを完了します。
-
確認 を選択して設定を保存します。
-
レビューステップに到達するまで次へを選択します。
-
[Review] ページで、[デプロイ] を選択します。
-
デプロイが正常に完了するのを待ってから続行します。
-
-
EMQX ブローカーに送信するペイロード形式を使用してメッセージを準備します。ペイロードの構造化の詳細については、「認証用の EMQX デプロイ設定の更新」を参照してください。
-
次のセキュリティ対策を実装します。
-
Transport Layer Security (TLS) 暗号化 (ポート 8833) を使用して、転送中のデータを保護します。詳細については、「AWS IoT SiteWise Edge の EMQX ブローカーへの安全な接続のために TLS を設定する」を参照してください。
-
ユーザー名とパスワード認証を設定して、デバイス ID を検証します。このセキュリティ対策は、データを保護するのに役立ち、承認されたデバイスのみがシステムに接続できるようにします。詳細については、「ユーザー名とパスワード認証を有効にする」を参照してください。
-
EMQX では、ユーザー名、IP アドレス、クライアント ID などの識別子に基づいて認可ルールを作成できます。これは、データへのアクセスを制御するのに役立ちます。詳細については、「EMQX で AWS IoT SiteWise Edge の認可ルールを設定する」を参照してください。
デプロイが成功すると、EMQX ブローカーが設定され、外部アプリケーションに安全に接続する準備が整います。
注記
ペイロード形式は、 AWS IoT SiteWise Edge がデータを適切に処理して取り込むための特定の構造に従う必要があります。必要な構造の詳細については、「」を参照してくださいJSON ペイロード構造。
例: CPU、メモリ、タイムスタンプ JSON ペイロードを追加する
CPU JSON ペイロード
{ "propertyAlias": "SiteWiseTutorialDevice/cpu", "propertyValues": [ { "quality": "GOOD", "timestamp": { "offsetInNanos": 0, "timeInSeconds": 1753206441 }, "value": { "integerValue": 45.2 } } ] }
メモリ JSON ペイロード
{ "propertyAlias": "SiteWiseTutorialDevice/memory", "propertyValues": [ { "quality": "GOOD", "timestamp": { "offsetInNanos": 0, "timeInSeconds": 1753206441 }, "value": { "integerValue": 67.8 } } ] }
タイムスタンプ JSON ペイロード
{ "propertyAlias": "SiteWiseTutorialDevice/timestamp", "propertyValues": [ { "quality": "GOOD", "timestamp": { "offsetInNanos": 0, "timeInSeconds": 1753206441 }, "value": { "integerValue": 23.5 } } ] }
注記
各 JSON ペイロードは、個別のメッセージとして個別に発行する必要があります。複数のプロパティ値を 1 つのメッセージに結合しないでください。各 CPU、メモリ、タイムスタンプペイロードを独自の MQTT パブリケーションとして送信します。
ペイロードは、IoT デバイスが EMQX ブローカーを介して SiteWise Edge にデバイスデータを送信するために使用する必要のある JSON 構造を定義します。この形式により、 AWS IoT SiteWise はデバイスを識別し、センサーの読み取りを処理できます。これらの設定とペイロード構造を実装すると、風力発電所モニタリングシステムがデータを収集して処理する準備が整います。
ステップ 6: Mosquitto でデータを発行する
MQTT 対応 V3 ゲートウェイを作成したら、テストデータを SiteWise Edge に送信するように Eclipse Mosquitto を設定します。Mosquitto は、デバイス間の軽量メッセージングに MQTT プロトコルを使用するオープンソースの MQTT メッセージブローカーです。Mosquitto クライアントを使用すると、風力発電所センサーからのデータをシミュレートして、MQTT トピックにメッセージを発行できます。Mosquitto を使用して、サードパーティーのサービスや追加の機器を必要とすることなく、デバイスデータをシミュレートします。詳細については、公式の Eclipse Mosquitto ウェブサイトのドキュメント
Mosquitto CLI クライアントを使用して SiteWise Edge EMQX ブローカーをテストする
-
ローカルデバイスに Mosquitto をインストールします。詳細な手順については、公式の Eclipse Mosquitto ウェブサイトの「Download
Mosquitto」を参照してください。 -
産業データを転送するために外部アプリケーションを接続する方法の詳細については、「」を参照してください外部アプリケーションを EMQX ブローカーに接続する。
重要
ここで設定する MQTT 接続設定が、Mosquitto publish コマンドで使用されている設定と一致していることを確認します。ホストは、SiteWise Edge ゲートウェイの IP アドレスまたはホスト名である必要があります。ポートは通常 1883 (SSL/TLS を使用している場合は 8883) です。
Mosquitto を使用してテストデータを公開します。コマンドラインを開き、次のコマンドを実行します。
例: CPU プロパティ
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/cpu" -m '{ "propertyAlias": "SiteWiseTutorialDevice/cpu", "propertyValues": [ { "quality": "GOOD", "timestamp": { "timeInSeconds": 1753206441, "offsetInNanos": 0 }, "value": { "integerValue": 45.2 } } ] }'
例: メモリプロパティ
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/memory" -m '{ "propertyAlias": "SiteWiseTutorialDevice/memory", "propertyValues": [ { "quality": "GOOD", "timestamp": { "timeInSeconds": 1753206441, "offsetInNanos": 0 }, "value": { "integerValue": 72.1 } } ] }'
例: Timestamp プロパティ
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/timestamp" -m '{ "propertyAlias": "SiteWiseTutorialDevice/timestamp", "propertyValues": [ { "quality": "GOOD", "timestamp": { "timeInSeconds": 1753206441, "offsetInNanos": 0 }, "value": { "integerValue": 1683000000 } } ] }'
注記
EMQX ブローカーアドレスlocalhost
としての の使用は、デモンストレーションのみを目的としています。本番環境または外部デバイスから接続する場合は、特定のデプロイ設定に適切な EMQX ブローカーアドレスを使用する必要があります。接続手順の詳細については、「」を参照してくださいEdge の EMQX ブローカーにアプリケーションを接続する AWS IoT SiteWise。
ステップ 7: 送信先を指定する
このステップでは、送信先を指定して、ソースデータの転送先を決定します。Amazon S3 バッファリング AWS IoT SiteWise を送信先として使用します。このオプションは、IoT データを保存および処理するためのスケーラブルな方法を提供します。
ステップ 8: パスフィルターを指定する
このステップでは、パスフィルターを設定して、風力発電所のデバイスデータに対してモニタリングする MQTT トピックを指定します。
パスフィルターは、2 つの特殊文字をサポートする MQTT トピックのワイルドカード仕様に従います。
-
+
– この記号は、単一レベルのワイルドカードを表し、単一レベルの任意の文字列に一致します。 -
#
– この記号は、トピック階層内の任意のレベルと一致する複数レベルのワイルドカードを表します。
注記
その他のパスフィルターの詳細については、「」を参照してくださいパスフィルター名の特殊文字。
ステップ 9: AWS IoT リソースを設定する
このステップでは、シミュレートされたサードパーティーデバイスを表すために必要な AWS IoT SiteWise アセットモデルとアセットを作成し、エッジゲートウェイを介したデータ取り込みを有効にします。
このステップを開始する前に、Ingest data チュートリアルのステップ 3~8 を完了しておく必要があります。これらのステップは、MQTT 対応 V3 ゲートウェイを介してサードパーティーデータを統合するための基本コンポーネントを確立します。また、センサーデータがどのように流れるかを定義するルールを設定し AWS IoT SiteWise、産業用風力発電所データをシミュレートするデバイスクライアントスクリプトを実行します。
AWS IoT リソース設定を検証するには
-
次の AWS CLI コマンドを使用して、SiteWise チュートリアルデバイスモデルと SiteWise チュートリアルデバイスフリートモデルが作成され、正しく設定されていることを確認します。
aws iotsitewise describe-asset-model --asset-model-id
your-device-model-id
次の AWS CLI コマンドを使用して、アセットモデルの ID を取得します。
aws iotsitewise list-asset-models
-
次の AWS CLI コマンドを使用して、SiteWise チュートリアルデバイス 1 アセットと SiteWise チュートリアルデバイスフリート 1 アセットが作成され、正しく設定されていることを確認します。
aws iotsitewise describe-asset --asset-id
your-asset-id
次の AWS CLI コマンドを使用して、アセットの ID を取得します。
aws iotsitewise list-assets
ステップ 10: データを視覚化する
オープンソースバージョンの Grafana を設定して、風力発電所のデバイスデータを視覚化します。Grafana は、リアルタイムの運用データを表示する視覚化プラットフォームです。これらのダッシュボードは、運用効率を追跡し、インフラストラクチャ全体のメンテナンスニーズを特定するのに役立ちます。統合の詳細については、「」を参照してくださいGrafana AWS IoT SiteWise との統合。
Grafana をセットアップするには
-
Grafana の最新バージョンをダウンロードしてインストールする手順については、公式 Grafana ウェブサイトの「Grafana のインストール
」を参照してください。 -
オペレーティングシステム固有の詳細な設定手順については、公式 Grafana
ウェブサイトの「Configure Grafana」を参照してください。 -
AWS IoT SiteWise データソースを設定します。これにより、Grafana サーバーで AWS IoT SiteWise プラグインを設定できます。プラグインの使用方法の詳細については、「Amazon Managed Grafana ユーザーガイド」のAWS IoT SiteWise 「データソースに接続する」を参照してください。
重要
AWS IoT SiteWise データソースとの互換性のために、Grafana の最新バージョンがあることを確認します。
これらのステップを完了したら、Grafana ダッシュボードを構築およびカスタマイズして、風力発電所の運用メトリクスを表示できます。これにより、エッジでの風力発電所のパフォーマンスをリアルタイムで追跡および分析できます。
注記
このチュートリアルでは Grafana のオープンソースバージョンを使用していますが、 は本番環境用の Amazon Managed Grafana AWS も提供しています。Amazon Managed Grafana は、独自の Grafana サーバーをセットアップ、設定、保守する必要がなくなるフルマネージドサービスです。ソリューションをスケールする準備ができたら、Amazon Managed Grafana へのアップグレードを検討してください。Amazon Managed Grafana の詳細と、オープンソースツールを使用してデータを処理および視覚化する方法については、以下を参照してください。
-
Amazon Managed Grafana ユーザーガイドの「Amazon Managed Grafana とは」
これでチュートリアルは完了です。この手順では、MQTT 対応 V3 ゲートウェイを使用してサードパーティーのデバイスデータを統合するように AWS IoT SiteWise Edge を設定しました。この設定により、エッジで産業機器データを収集、処理、視覚化できるため、レイテンシーと運用コストを削減できます。風力発電所のデモを使用することで、MQTT 対応 V3 ゲートウェイを介して CPU やメモリの使用状況データなどの運用メトリクスを収集して処理しました。
IoT ソリューションを強化するには、 を活用して異常検出などの高度な機能を調べるかLookout for Equipment で異常を検出する、Amazon QuickSight ユーザーガイドの Amazon QuickSight などの他の AWS サービスと統合して高度な分析を行うことを検討してください。
ステップ 11: チュートリアルの後にリソースをクリーンアップする
AWS IoT SiteWise Edge へのデータの統合に関するこのチュートリアルを完了したら、追加料金が発生しないようにリソースをクリーンアップします。
で階層アセットを削除するには AWS IoT SiteWise
-
AWS IoT SiteWise コンソール
に移動します。 -
左側のナビゲーションペインで [アセット] を選択します。
-
でアセットを削除するときは AWS IoT SiteWise、まずアセットの関連付けを解除する必要があります。
デバイスフリートアセットからデバイスアセットの関連付けを解除するには、次の手順を実行します。
-
デバイスフリートアセット () を選択しますSiteWise Tutorial Device Fleet 1。
-
[編集] を選択します。
-
[このアセットに関連付けられているアセット] で、このデバイスフリートアセットに関連付けられている各デバイスアセットに対して [関連付け解除] を選択します。
-
[保存] を選択します。
注記
デバイスアセットは現在階層として整理されなくなりました。
-
-
デバイスアセット (SiteWise Tutorial Device 1) を選択します。
-
[削除] を選択します。
-
確認ダイアログで、「」と入力し
Delete
、「削除」を選択します。 -
デバイスアセットとデバイスフリートアセット (SiteWise Tutorial Device Fleet 1) ごとに、ステップ 4~6 を繰り返します。
で階層アセットモデルを削除するには AWS IoT SiteWise
-
AWS IoT SiteWise コンソール
に移動します。 -
デバイスおよびデバイスフリートアセットを削除します。
-
左のナビゲーションペインで [モデル] を選択します。
-
デバイスフリートアセット (SiteWise Tutorial Device Fleet Model 1) を選択します。モデルから作成されたアセットがある場合は、そのモデルを削除できません。
階層アセットモデルを削除する場合は、最初に親アセットモデルを削除する必要があります。
-
[削除] を選択します。
-
確認ダイアログで、「」と入力し
Delete
、「削除」を選択します。 -
デバイスのアセットモデル (SiteWise Tutorial Device Model) について、ステップ 4~6 を繰り返します。
でルールを無効化または削除するには AWS IoT Core
-
AWS IoT コンソール
に移動します。 -
左側のナビゲーションペインで、メッセージルーティングを選択し、ルールを選択します。
-
ルールを選択し、[削除] を選択します。
-
確認ダイアログボックスでルール名を入力し、[削除] を選択します。
Amazon S3 バケットを削除するには
-
Amazon S3 コンソール
に移動します。 -
左側のナビゲーションペインで、汎用バケットを選択します。
-
バケットリストで、作成したバケットの横にあるオプションボタンを選択し、ページの上部にある空の を選択します。
-
確認ダイアログで、削除を確認し、空を選択します。
-
バケットが空になったら、削除を選択してバケットを削除します。
-
確認ダイアログで、削除を確認するバケットの名前を入力します。
-
[バケットを削除] を選択します。
SiteWise Edge ゲートウェイを削除するには
-
AWS IoT SiteWise コンソール
に移動します。 -
左側のナビゲーションペインで、エッジゲートウェイを選択します。
-
Gateways で、このチュートリアル用に作成したゲートウェイを選択します。例えば、
SiteWise Tutorial Device Gateway
。 -
[削除] を選択します。
-
ゲートウェイを削除することを確認するには、確認ダイアログ
Delete
に「」と入力し、表示されるウィンドウで「削除」を選択します。
IoT モノを削除するには
-
AWS IoT コンソール
に移動します。 -
左側のナビゲーションペインで、管理を選択し、モノを選択します。
-
このチュートリアル用に作成した IoT モノを選択します。例えば、
SiteWiseTutorialDevice1
。 -
[削除] を選択します。
-
確認ダイアログで、モノの名前を入力し、削除を選択します。
AWS IoT Greengrass Core をアンインストールするには
ローカルデバイスから AWS IoT Greengrass Core ソフトウェアをアンインストールします。詳細な手順については、「 AWS IoT Greengrass デベロッパーガイド、バージョン 2」の AWS IoT Greengrass 「 Core ソフトウェアをアンインストールする」を参照してください。
重要
Greengrass をアンインストールすると、すべてのローカル設定とデータが削除されます。続行する前に、重要な情報をバックアップしていることを確認してください。
(オプション) サードパーティーリソースを削除するには
このチュートリアルを完了したら、作成した外部リソースをシャットダウンすることを検討してください。これにより、サードパーティープロバイダーからの料金の発生を防ぐことができます。
追加リソース
詳細については、次のリソースを参照してください。