AWS IoT MQTT クライアントでデバイスの MQTT メッセージを表示する - AWS IoT Core

AWS IoT MQTT クライアントでデバイスの MQTT メッセージを表示する

このセクションでは、AWS IoT コンソールで AWS IoT MQTT クライアントを使用して、AWS IoT によって送受信される MQTT メッセージを監視する方法について説明します。このセクションで使用される例は、 の開始方法 AWS IoT Core で使用される例に関連しています。ただし、例で使用されている topicName を、ご利用の IoT ソリューションで使用されている任意のトピック名またはトピックフィルターに置き換えることができます。

デバイスは、トピックによって識別される MQTT メッセージを発行して、それらの状態を AWS IoT に通知し、AWS IoT は、MQTT メッセージを発行して、デバイスおよびアプリに変更とイベントを通知します。MQTT クライアントを使用すると、これらのトピックをサブスクライブして、メッセージを発生時に確認できます。また、MQTT クライアントを使用して、 AWS アカウント 内のサブスクライブされているデバイスおよびサービスに MQTT メッセージを発行することもできます。

MQTT クライアントで MQTT メッセージを表示する

MQTT クライアントで MQTT メッセージを表示するには

  1. AWS IoT コンソールの左のメニューで、[Test] (テスト) を選択します。

  2. デバイスが発行する topicName をサブスクライブします。開始方法のサンプルアプリケーションについては、# にサブスクライブします。これにより、すべてのメッセージトピックにサブスクライブします。

    開始方法の例を使用して続行し、[Subscribe to a topic] (トピックへサブスクライブする) タブの [Topic filter] (トピックフィルター) フィールドで # と入力し、[Subscribe] (サブスクライブ) を選択します。

    トピックメッセージログページ # が開き、# が [Subscriptions] (サブスクリプション) リストに表示されます。

  3. デバイスを設定する で設定したデバイスがサンプルプログラムを実行している場合、# メッセージログで AWS IoT に送信するメッセージを確認する必要があります。サブスクライブされたトピックを含むメッセージが AWS IoT によって受信されると、メッセージログエントリが [Publish] (発行) セクションの下に表示されます。

  4. # メッセージログページでは、トピックにメッセージを発行することもできますが、トピック名を指定する必要があります。# トピックに発行することはできません

    サブスクライブしたトピックに発行されたメッセージは、受信されるとメッセージログに表示されます。最初に表示されるのは、最新のメッセージです。

MQTT メッセージのトラブルシューティング

ワイルドカードトピックフィルターを使用する

メッセージが期待どおりにメッセージログに表示されない場合は、トピックフィルター の説明に従って、ワイルドカードトピックフィルターをサブスクライブしてみてください。MQTT マルチレベルワイルドカードトピックフィルターはハッシュまたはポンド記号 ( # ) であり、[Subscription topic] (サブスクリプショントピック) フィールドでトピックフィルターとして使用できます。

# トピックフィルターにサブスクライブすると、メッセージブローカーによって受信されるすべてのトピックがサブスクライブされます。トピックフィルターパスの要素を # 複数レベルのワイルドカード文字または「+」単一レベルのワイルドカード文字に置き換えることで、絞り込むことができます。

トピックフィルターでワイルドカードを使用する場合

  • マルチレベルのワイルドカード文字は、トピックフィルターの最後の文字にする必要があります。

  • トピックフィルターパスには、トピックレベルごとに 1 つの単一レベルのワイルドカード文字のみを使用できます。

以下に例を示します。

トピックのフィルター

次でメッセージを表示します

#

任意のトピック名

topic_1/#

topic_1/ で始まるトピック名

topic_1/level_2/#

topic_1/level_2/ で始まるトピック名

topic_1/+/level_3

topic_1/ で始まり、/level_3 で終わり、その間に任意の値の 1 つの要素があるトピック名。

トピックフィルターの詳細については、トピックフィルター を参照してください。

トピック名のエラーをチェックする

MQTT トピック名とトピックフィルターでは、大文字と小文字が区別されます。例えば、サブスクライブしたトピックである topic_1 ではなく Topic_1 (大文字の T) にデバイスがメッセージを発行している場合、そのメッセージは MQTT クライアントに表示されません。ただし、ワイルドカードトピックフィルターをサブスクライブすると、デバイスがメッセージを発行していることが表示され、想定したものとは異なるトピック名を使用していることがわかります。

MQTT クライアントから MQTT メッセージを発行する

MQTT トピックにメッセージを発行するには

  1. MQTT クライアント ページの [Publish to a topic] (トピックへの発行) タブの [Topic name] (トピック名) フィールドに、メッセージの topicName を入力します。この例では my/topic を使用します。

    注記

    MQTT クライアントで使用する場合でも、システム実装で使用する場合でも、トピック名に個人を特定できる情報を使用しないでください。トピック名は、暗号化されていない通信およびレポートに表示できます。

  2. メッセージペイロードウィンドウで、次の JSON を入力します。

    { "message": "Hello, world", "clientType": "MQTT client" }
  3. [Publish] (発行) を選択して、メッセージを AWS IoT に発行します。

    注記

    メッセージを発行する前に、my/topic トピックにサブスクライブしていることを確認してください。

  4. [Subscriptions] (サブスクリプション) のリストで、[my/topic] を選択します。発行メッセージペイロードウィンドウの下の MQTT クライアントにメッセージが表示されます。

MQTT メッセージを他のトピックに発行するには、Topic name トピック名フィールドの topicName を変更し、Publish 発行 ボタンを選択します。