AWS IoTDemo der Jobbibliothek - Kostenlos RTOS

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.

AWS IoTDemo der Jobbibliothek

Wichtig

Diese Demo wird im Amazon-FreeRTOS-Repository gehostet, das veraltet ist. Wir empfehlen, dass Sie hier beginnen, wenn Sie ein neues Projekt erstellen. Wenn Sie bereits über ein bestehendes FreeRTOS-Projekt verfügen, das auf dem inzwischen veralteten Amazon-FreeRTOS-Repository basiert, lesen Sie dieLeitfaden zur Migration des Amazon-FreerTOS Github-Repositorys.

Einführung

Die Demo derAWS IoT Jobs-Bibliothek zeigt Ihnen, wie Sie über eine MQTT-Verbindung eine Verbindung zum AWS IoTJobs-Service herstellen, einen Job vonAWS IoT einem Gerät abrufen und ihn auf einem Gerät verarbeiten. DasAWS IoT Jobs-Demoprojekt verwendet den FreeRTOS Windows-Port, sodass es mit der Visual Studio Community-Version unter Windows erstellt und evaluiert werden kann. Es wird keine Mikrocontroller-Hardware benötigt. Die Demo stellt mithilfe von TLS auf die gleiche Weise wie der eine sichere Verbindung zumAWS IoT MQTT-Broker herCoreMQTT-Demo zur gegenseitigen Authentifizierung.

Anmerkung

Um die FreeRTOS-Demos einzurichten und auszuführen, folgen Sie den Schritten unterErste Schritte mit FreeRTOS.

Quellcode code code code code code

Der Demo-Code befindet sich in derjobs_demo.c Datei und kann auf der GitHubWebsite oder imfreertos/demos/jobs_for_aws/ Verzeichnis gefunden werden.

Konfigurieren Sie dieAWS IoT MQTT-Broker-Verbindung

In dieser Demo verwenden Sie eine MQTT-Verbindung zumAWS IoT MQTT-Broker. Diese Verbindung ist auf die gleiche Weise konfiguriert wie dieCoreMQTT-Demo zur gegenseitigen Authentifizierung.

Funktionalität

Die Demo zeigt den Arbeitsablauf, mit dem Aufträge von einem Gerät empfangenAWS IoT und auf einem Gerät verarbeitet werden. Die Demo ist interaktiv und erfordert, dass Sie Jobs erstellen, indem Sie entweder dieAWS IoT Konsole oder dieAWS Command Line Interface (AWS CLI) verwenden. Weitere Informationen zum Erstellen eines Auftrags finden AWS CLISie unter Für die Demo muss im Job-Dokument einaction Schlüssel auf gesetzt sein,print um eine Nachricht an die Konsole zu drucken.

Dieses Aufcode code code code code code

{ "action": "print", "message": "ADD_MESSAGE_HERE" }

Sie können den verwendenAWS CLI, um einen Job wie im folgenden Beispielbefehl zu erstellen.

aws iot create-job \ --job-id t12 \ --targets arn:aws:iot:region:123456789012:thing/device1 \ --document '{"action":"print","message":"hello world!"}'

Die Demo verwendet auch ein Jobdokument, in dem deraction Schlüssel auf gesetzt istpublish, um die Nachricht zu einem Thema erneut zu veröffentlichen. Dieses Aufcode code code code code code

{ "action": "publish", "message": "ADD_MESSAGE_HERE", "topic": "topic/name/here" }

Die Demo wird wiederholt, bis sie ein Job-Dokument erhält, in dem deraction Schlüssel auf gesetzt istexit, um die Demo zu beenden. Das Format für das Jobdokument lautet wie folgt.

{ "action: "exit" }

Einstiegspunkt der Jobs-Demo

Den Quellcode für die Jobs-Demo-Einstiegspunktfunktion finden Sie unter GitHub. Diese Funktion führt die folgenden Operationen aus:

  1. Stellen Sie mithilfe der Hilfsfunktionen in eine MQTT-Verbindung hermqtt_demo_helpers.c.

  2. Abonnieren Sie das MQTT-Thema für dieNextJobExecutionChanged API, indem Sie die Hilfsfunktionen in verwendenmqtt_demo_helpers.c. Die Themenzeichenfolge wurde zuvor mithilfe von Makros zusammengestellt, die in derAWS IoT Jobs-Bibliothek definiert wurden.

  3. Veröffentlichen Sie im MQTT-Thema für dieStartNextPendingJobExecution API, indem Sie die Hilfsfunktionen in verwendenmqtt_demo_helpers.c. Die Themenzeichenfolge wurde zuvor mithilfe von Makros zusammengestellt, die in derAWS IoT Jobs-Bibliothek definiert wurden.

  4. Rufen Sie wiederholt anMQTT_ProcessLoop, um eingehende Nachrichten zu empfangen, dieprvEventCallback zur Verarbeitung übergeben werden.

  5. Nachdem die Demo die Exit-Aktion erhalten hat, melden Sie sich vom MQTT-Thema ab und trennen Sie die Verbindung, indem Sie die Hilfsfunktionen in dermqtt_demo_helpers.c Datei verwenden.

Callback für empfangene MQTT-Nachrichten

Die prvEventCallbackFunktion ruftJobs_MatchTopic aus derAWS IoT Jobs-Bibliothek auf, um die eingehende MQTT-Nachricht zu klassifizieren. Wenn der Nachrichtentyp einem neuen Job entspricht,prvNextJobHandler() wird aufgerufen.

Die prvNextJobHandler-Funktion und die von ihr aufgerufenen Funktionen analysieren das Jobdokument anhand der JSON-formatierten Nachricht und führen die durch den Job angegebene Aktion aus. Von besonderem Interesse ist dieprvSendUpdateForJob Funktion.

Senden Sie ein Update für einen laufenden Job

Die Funktion prvSendUpdateForJob() ruftJobs_Update() aus der Jobs-Bibliothek auf, um die Themenzeichenfolge aufzufüllen, die bei der unmittelbar darauf folgenden MQTT-Veröffentlichungsoperation verwendet wird.