AWS IoT Device Defender Demo - FreeRTOS

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 IoT Device Defender Demo

Wichtig

Dies ist eine archivierte Version des FreeRTOS-Benutzerhandbuchs zur Verwendung mit der FreeRTOS-Version 202012.00. Die neueste Version dieses Dokuments finden Sie im FreeRTOS-Benutzerhandbuch.

Einführung

Diese Demo zeigt Ihnen, wie Sie die AWS IoT Device Shadow-Bibliothek verwenden, um eine Verbindung herzustellen AWS IoT Device Defender. Die Demo verwendet die CoreMQTT-Bibliothek, um eine MQTT-Verbindung mit TLS (gegenseitige Authentifizierung) zum AWS IoT MQTT-Broker herzustellen, und die CoreJSON-Bibliothek, um die erhaltenen Antworten zu validieren und zu analysieren. AWS IoT Device Defender Die Demo zeigt, wie Sie einen Bericht im JSON-Format mithilfe der auf dem Gerät gesammelten Metriken erstellen und wie Sie den Bericht an senden. AWS IoT Device Defender Die Demo zeigt auch, wie eine Callback-Funktion in der CoreMQTT-Bibliothek registriert wird, um die Antworten zu verarbeiten, die AWS IoT Device Defender gesendet werden, um zu bestätigen, ob ein Bericht akzeptiert oder abgelehnt wurde.

Anmerkung

Folgen Sie den Schritten unter, um die FreeRTOS-Demos einzurichten und auszuführen. Erste Schritte mit FreeRTOS

Funktionalität

Mit dieser Demo wird eine einzelne Anwendungsaufgabe erstellt, die demonstriert, wie Sie Metriken sammeln, einen Device Defender-Bericht im JSON-Format erstellen und ihn AWS IoT Device Defender über eine sichere MQTT-Verbindung an den MQTT-Broker senden. AWS IoT

Wie wir Metriken sammeln, hängt vom verwendeten TCP/IP-Stack ab. Für FreeRTOS+TCP und unterstützte LwIP-Konfigurationen bieten wir Implementierungen zur Erfassung von Metriken an, die echte Metriken vom Gerät sammeln und sie im Bericht einreichen. AWS IoT Device Defender Sie finden die Implementierungen für FreeRTOS+TCP und lwIP auf. GitHub

Für Boards, die einen anderen TCP/IP-Stack verwenden, werden Stub-Definitionen der Funktionen zur Erfassung von Metriken bereitgestellt, die für alle Metriken Nullen zurückgeben. Um mithilfe dieser Stub-Implementierung echte Metriken an Boards zu senden, implementieren Sie die Funktionen für Ihren Netzwerk-Stack. freertos/demos/device_defender_for_aws/metrics_collector/stub/metrics_collector.c Die Datei ist auch auf der GitHubWebsite verfügbar.

Denn ESP32 die Standard-LwIP-Konfiguration verwendet kein Core-Locking und daher verwendet die Demo Stubbed-Metriken. Wenn Sie die Referenzimplementierung zur Erfassung von LWIP-Metriken verwenden möchten, definieren Sie die folgenden Makros in: lwiopts.h

#define LINK_SPEED_OF_YOUR_NETIF_IN_BPS 0 #define LWIP_TCPIP_CORE_LOCKING 1 #define LWIP_STATS 1 #define MIB2_STATS 1

Im Folgenden finden Sie ein Beispiel für die Ausgabe, wenn Sie die Demo ausführen.

Console output showing MQTT connection, subscription, publish, and disconnect operations with timestamps.

Wenn dein Board nicht FreeRTOS+TCP oder eine unterstützte LwIP-Konfiguration verwendet, sieht die Ausgabe wie folgt aus.

Console output showing MQTT connection, subscriptions, and error messages for network metrics.

Der Quellcode der Demo befindet sich in Ihrem Download-Verzeichnis oder auf der freertos/demos/device_defender_for_aws/ Website. GitHub

Themen abonnieren AWS IoT Device Defender

Mit der subscribeToDefenderThemenfunktion abonnieren Sie die MQTT-Themen, zu denen Antworten auf veröffentlichte Device Defender-Berichte eingehen werden. Sie verwendet das MakroDEFENDER_API_JSON_ACCEPTED, um die Themenzeichenfolge zu erstellen, zu der Antworten auf akzeptierte Device Defender-Berichte eingehen. Es verwendet das MakroDEFENDER_API_JSON_REJECTED, um die Themenzeichenfolge zu erstellen, zu der Antworten auf abgelehnte Device Defender-Berichte eingehen.

Erfassung von Gerätemetriken

Die collectDeviceMetricsFunktion sammelt Netzwerkmetriken mithilfe der unter definierten Funktionen. metrics_collector.h Bei den gesammelten Metriken handelt es sich um die Anzahl der gesendeten und empfangenen Bytes und Pakete, die offenen TCP-Ports, die offenen UDP-Ports und die hergestellten TCP-Verbindungen.

Der AWS IoT Device Defender Bericht wird generiert

Die generateDeviceMetricsBerichtsfunktion generiert mithilfe der unter definierten Funktion einen Device Defender-Berichtreport_builder.h. Diese Funktion verwendet die Netzwerkmetriken und einen Puffer, erstellt ein JSON-Dokument in dem von erwarteten Format AWS IoT Device Defender und schreibt es in den bereitgestellten Puffer. Das von erwartete Format des JSON-Dokuments AWS IoT Device Defender ist unter Geräteseitige Metriken im AWS IoT Entwicklerhandbuch angegeben.

Den Bericht veröffentlichen AWS IoT Device Defender

Der AWS IoT Device Defender Bericht wird zum MQTT-Thema für die Veröffentlichung von AWS IoT Device Defender JSON-Berichten veröffentlicht. Der Bericht wird mithilfe des Makros erstelltDEFENDER_API_JSON_PUBLISH, wie in diesem Codeausschnitt auf der Website gezeigt. GitHub

Rückruf zur Bearbeitung von Antworten

Die Funktion publishCallback verarbeitet eingehende MQTT-Veröffentlichungsnachrichten. Sie verwendet die Defender_MatchTopic API aus der AWS IoT Device Defender Bibliothek, um zu überprüfen, ob die eingehende MQTT-Nachricht vom Dienst stammt. AWS IoT Device Defender Wenn die Nachricht von stammt AWS IoT Device Defender, analysiert sie die empfangene JSON-Antwort und extrahiert die Berichts-ID aus der Antwort. Anschließend wird überprüft, ob die Berichts-ID mit der im Bericht gesendeten identisch ist.