View a markdown version of this page

Demonstrieren Sie das Veröffentlichen von Nachrichten mit dem AWS IoT Geräte-Client - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Demonstrieren Sie das Veröffentlichen von Nachrichten mit dem AWS IoT Geräte-Client

Die Verfahren in diesem Abschnitt zeigen, wie der AWS IoT Device Client Standard- und benutzerdefinierte MQTT-Nachrichten senden kann.

Die Richtlinienanweisungen in der Richtlinie, die Sie im vorherigen Schritt für diese Übungen erstellt haben, geben dem Raspberry Pi die Erlaubnis, die folgenden Aktionen auszuführen:

  • iot:Connect

    Weist den Client mit dem Namen Ihres Raspberry PiPubSubTestThing, auf dem der AWS IoT Device Client ausgeführt wird, an, eine Verbindung herzustellen.

    { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing" ] }
  • iot:Publish

    Erteilt dem Raspberry Pi die Erlaubnis, Nachrichten mit dem MQTT-Thema von test/dc/pubtopic zu veröffentlichen.

    { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }

    Die iot:Publish-Aktion erteilt die Erlaubnis zu Veröffentlichungen zu den MQTT-Themen, die im Resourcen-Array aufgeführt sind. Der Inhalt dieser Nachrichten wird nicht durch die Richtlinienanweisung geregelt.

Veröffentlichen Sie die Standardnachricht mit dem AWS IoT Geräte-Client

Dieses Verfahren führt den AWS IoT Geräteclient so aus, dass er eine einzelne Standard-MQTT-Nachricht veröffentlicht, die der MQTT-Testclient empfängt und anzeigt.

Um die Standard-MQTT-Nachricht von der AWS IoT Geräte-Client
  1. Stellen Sie sicher, dass sowohl das Terminalfenster auf Ihrem lokalen Host-Computer, das mit dem Raspberry Pi verbunden ist, als auch das Fenster mit dem MQTT-Testclient sichtbar sind, während Sie dieses Verfahren ausführen.

  2. Geben Sie im Terminalfenster diese Befehle ein, um den AWS IoT Device Client mithilfe der in erstellten Konfigurationsdatei auszuführenErstellen der Konfigurationsdatei.

    cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json

    Im Terminalfenster zeigt der AWS IoT Device Client Informationsmeldungen und alle Fehler an, die bei der Ausführung auftreten.

    Wenn im Terminalfenster keine Fehler angezeigt werden, überprüfen Sie den MQTT-Testclient.

  3. Im MQTT-Testclient finden Sie im Fenster Abonnements die Nachricht Hallo Welt!, die an das test/dc/pubtopic-Nachrichtenthema gesendet wurde.

  4. Wenn der AWS IoT Geräteclient keine Fehler anzeigt und Sie Hello World! sehen an die test/dc/pubtopic Nachricht im MQTT-Testclient gesendet, haben Sie eine erfolgreiche Verbindung nachgewiesen.

  5. Geben Sie im Terminalfenster ^C (Ctrl-C) ein, um den AWS IoT Device Client zu beenden.

Nachdem Sie nachgewiesen haben, dass der AWS IoT Device Client die Standard-MQTT-Nachricht veröffentlicht hat, können Sie mit dem Veröffentlichen Sie eine benutzerdefinierte Nachricht mit dem AWS IoT Geräte-Client fortfahren.

Veröffentlichen Sie eine benutzerdefinierte Nachricht mit dem AWS IoT Geräte-Client

Die Verfahren in diesem Abschnitt erstellen eine benutzerdefinierte MQTT-Nachricht und führen dann den AWS IoT Device Client aus, sodass er die benutzerdefinierte MQTT-Nachricht einmal veröffentlicht, damit der MQTT-Testclient sie empfangen und anzeigen kann.

Erstellen Sie eine benutzerdefinierte MQTT-Nachricht für AWS IoT Geräte-Client

Führen Sie diese Schritte im Terminalfenster auf Ihrem lokalen Host-Computer aus, der mit Ihrem Raspberry Pi verbunden ist.

Um eine benutzerdefinierte Nachricht für den zu erstellen AWS IoT Zu veröffentlichender Geräte-Client
  1. Öffnen Sie im Terminalfenster einen Texteditor Ihrer Wahl, z. B. nano.

  2. Kopieren Sie im Texteditor das folgende JSON-Dokument und fügen Sie es ein: Dies ist die Nutzlast der MQTT-Nachricht, die der AWS IoT Geräteclient veröffentlicht.

    { "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
  3. Speichern Sie den Inhalt des Texteditors als ~/messages/sample-ws-message.json.

  4. Geben Sie den folgenden Befehl ein, um die Berechtigungen der Nachrichtendatei festzulegen, die Sie gerade erstellt haben.

    chmod 600 ~/messages/*
Um eine Konfigurationsdatei für den zu erstellen AWS IoT Geräte-Client, der zum Senden der benutzerdefinierten Nachricht verwendet werden soll
  1. Öffnen Sie im Terminalfenster in einem Texteditor wie nano z. B. die vorhandene AWS IoT Device Client-Konfigurationsdatei:~/dc-configs/dc-pubsub-config.json.

  2. Bearbeiten Sie das samples-Objekt so, dass es folgendermaßen aussieht. Kein anderer Teil dieser Datei muss geändert werden.

    "samples": { "pub-sub": { "enabled": true, "publish-topic": "test/dc/pubtopic", "publish-file": "~/messages/sample-ws-message.json", "subscribe-topic": "test/dc/subtopic", "subscribe-file": "~/.aws-iot-device-client/log/pubsub_rx_msgs.log"
  3. Speichern Sie den Inhalt des Texteditors als ~/dc-configs/dc-pubsub-custom-config.json.

  4. Führen Sie diesen Befehl aus, um die Berechtigungen für die neue Konfigurationsdatei festzulegen.

    chmod 644 ~/dc-configs/dc-pubsub-custom-config.json

Veröffentlichen Sie die benutzerdefinierte MQTT-Nachricht mit dem AWS IoT Geräte-Client

Diese Änderung wirkt sich nur auf den Inhalt der MQTT-Nachrichtennutzlast aus, sodass die aktuelle Richtlinie weiterhin funktioniert. Wenn jedoch das MQTT-Thema (wie durch den publish-topic-Wert in ~/dc-configs/dc-pubsub-custom-config.json definiert) geändert wurde, muss auch die iot::Publish-Richtlinienanweisung geändert werden, damit der Raspberry Pi unter dem neuen MQTT-Thema veröffentlichen kann.

Um die MQTT-Nachricht von AWS IoT Geräte-Client
  1. Stellen Sie sicher, dass sowohl das Terminalfenster als auch das Fenster mit dem MQTT-Testclient sichtbar sind, während Sie dieses Verfahren ausführen. Stellen Sie außerdem sicher, dass Ihr MQTT-Testclient weiterhin den #-Themenfilter abonniert hat. Falls nicht, abonnieren Sie den #-Themenfilter erneut.

  2. Geben Sie im Terminalfenster diese Befehle ein, um den AWS IoT Device Client mithilfe der in Erstellen der Konfigurationsdatei erstellten Konfigurationsdatei auszuführen.

    cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json

    Im Terminalfenster zeigt der AWS IoT Device Client Informationsmeldungen und alle Fehler an, die bei der Ausführung auftreten.

    Wenn im Terminalfenster keine Fehler angezeigt werden, überprüfen Sie den MQTT-Testclient.

  3. Im MQTT-Testclient finden Sie im Fenster Abonnements die benutzerdefinierte Nachrichtennutzlast „Hallo Welt!“, die an das test/dc/pubtopic-Nachrichtenthema gesendet wurde.

  4. Wenn der AWS IoT Device Client keine Fehler anzeigt und Sie die benutzerdefinierte Nachrichtennutzlast sehen, die Sie für die test/dc/pubtopic Nachricht im MQTT-Testclient veröffentlicht haben, haben Sie eine benutzerdefinierte Nachricht erfolgreich veröffentlicht.

  5. Geben Sie im Terminalfenster ^C (Ctrl-C) ein, um den AWS IoT Device Client zu beenden.

Nachdem Sie nachgewiesen haben, dass der AWS IoT Device Client eine benutzerdefinierte Nachrichtennutzlast veröffentlicht hat, können Sie fortfahrenDemonstrieren Sie das Abonnieren von Nachrichten mit dem AWS IoT Geräte-Client.