Demonstrieren Sie das Veröffentlichen von Nachrichten mit dem AWS IoT Device 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 Device Client

Die Verfahren in diesem Abschnitt zeigen, wie der AWS IoT Device Client standardmäßige 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

    Gibt dem genannten ClientPubSubTestThing, Ihrem Raspberry Pi, auf dem der AWS IoT Geräteclient ausgeführt wird, die Möglichkeit, 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 der Standardnachricht mithilfe des AWS IoT Device Clients

Bei diesem Verfahren wird der AWS IoT Device Client so ausgeführt, dass er eine einzige Standard-MQTT-Nachricht veröffentlicht, die der MQTT-Testclient empfängt und anzeigt.

Um die Standard-MQTT-Nachricht vom Device Client aus zu senden AWS IoT
  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 Geräteclient 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-config.json

    Im Terminalfenster zeigt der AWS IoT Geräteclient 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 (Strg-C) ein, um den AWS IoT Geräteclient zu beenden.

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

Veröffentlichen Sie eine benutzerdefinierte Nachricht mit dem AWS IoT Device 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 den Device Client AWS IoT

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 AWS IoT Device Client zur Veröffentlichung zu erstellen
  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 wird die MQTT-Nachrichtennutzlast sein, 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 AWS IoT Geräteclient zu erstellen, die 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 Device 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 vom Device Client aus zu senden AWS IoT
  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 Geräteclient 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 Geräteclient keine Fehler anzeigt und Sie die Nutzdaten für benutzerdefinierte Nachrichten sehen, die Sie zu der test/dc/pubtopic Nachricht im MQTT-Testclient veröffentlicht haben, haben Sie eine benutzerdefinierte Nachricht erfolgreich veröffentlicht.

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

Nachdem Sie nachgewiesen haben, dass der AWS IoT Device Client eine benutzerdefinierte Nachrichten-Payload veröffentlicht hat, können Sie damit fortfahren. Demonstrieren Sie das Abonnieren von Nachrichten mit dem Device Client AWS IoT