AWS IoT Device Defender demo - FreeRTOS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS IoT Device Defender demo

Importante

Questa è una versione archiviata della FreeRTOS User Guide da utilizzare con la versione FreeRTOS 202012.00. Per l'ultima versione di questo documento, consulta la FreerTOS User Guide.

Introduzione

Questa demo mostra come utilizzare la libreria AWS IoT Device Shadow a cui connettersi AWS IoT Device Defender. La demo utilizza la libreria CoreMQTT per stabilire una connessione MQTT con TLS (autenticazione reciproca) al broker AWS IoT MQTT e la libreria CoreJSON per convalidare e analizzare le risposte ricevute. AWS IoT Device Defender La demo mostra come creare un report in formato JSON utilizzando le metriche raccolte dal dispositivo e come inviare il rapporto a. AWS IoT Device Defender La demo mostra anche come registrare una funzione di callback con la libreria CoreMQTT per gestire le risposte AWS IoT Device Defender inviate per confermare se un report è stato accettato o rifiutato.

Nota

Per configurare ed eseguire le demo di FreerTOS, segui i passaggi indicati. Guida introduttiva a FreerTOS

Funzionalità

Questa demo crea una singola attività applicativa che dimostra come raccogliere metriche, creare un report Device Defender in formato JSON e inviarlo AWS IoT Device Defender tramite una connessione MQTT sicura a MQTT Broker. AWS IoT

Il modo in cui raccogliamo le metriche dipende dallo stack TCP/IP in uso. Per FreeRTOS+TCP e configurazioni LWIP supportate, forniamo implementazioni di raccolta di metriche che raccolgono metriche reali dal dispositivo e le inviano nel rapporto. AWS IoT Device Defender Puoi trovare le implementazioni per FreeRTOS+TCP e LWip su. GitHub

Per le schede che utilizzano qualsiasi altro stack TCP/IP, vengono fornite le definizioni stub delle funzioni di raccolta delle metriche che restituiscono zeri per tutte le metriche. Per inviare metriche reali alle schede utilizzando questa implementazione stub, implementa le funzioni nel tuo stack di rete. freertos/demos/device_defender_for_aws/metrics_collector/stub/metrics_collector.c Il file è disponibile anche sul sito Web. GitHub

Infatti ESP32, la configurazione LWip predefinita non utilizza il core locking e quindi la demo utilizzerà metriche stubbed. Se desideri utilizzare l'implementazione della raccolta di metriche LWip di riferimento, definisci le seguenti macro 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

Di seguito è riportato un esempio di output quando si esegue la demo.

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

Se la scheda non utilizza FreeRTOS+TCP o una configurazione LWIP supportata, l'output sarà simile al seguente.

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

Il codice sorgente della demo si trova nella directory di download o sul sito web. freertos/demos/device_defender_for_aws/ GitHub

Iscrizione agli argomenti AWS IoT Device Defender

La funzione subscribeToDefenderTopics sottoscrive gli argomenti MQTT sui quali verranno ricevute le risposte ai report pubblicati da Device Defender. Utilizza la macro DEFENDER_API_JSON_ACCEPTED per costruire la stringa dell'argomento su cui vengono ricevute le risposte ai report di Device Defender accettati. Utilizza la macro DEFENDER_API_JSON_REJECTED per costruire la stringa dell'argomento in base alla quale verranno ricevute le risposte ai report di Device Defender rifiutati.

Raccolta delle metriche dei dispositivi

La collectDeviceMetricsfunzione raccoglie le metriche di rete utilizzando le funzioni definite in. metrics_collector.h Le metriche raccolte sono il numero di byte e pacchetti inviati e ricevuti, le porte TCP aperte, le porte UDP aperte e le connessioni TCP stabilite.

Generazione del report AWS IoT Device Defender

La funzione generateDeviceMetricsReport genera un rapporto Device Defender utilizzando la funzione definita inreport_builder.h. Questa funzione prende le metriche di rete e un buffer, crea un documento JSON nel formato previsto da AWS IoT Device Defender e lo scrive nel buffer fornito. Il formato del documento JSON previsto da AWS IoT Device Defender è specificato nelle metriche lato dispositivo nella Guida per gli sviluppatori.AWS IoT

Pubblicazione del rapporto AWS IoT Device Defender

Il AWS IoT Device Defender rapporto è pubblicato sull'argomento MQTT per la pubblicazione di report JSON AWS IoT Device Defender . Il report viene creato utilizzando la macroDEFENDER_API_JSON_PUBLISH, come illustrato in questo frammento di codice sul sito Web. GitHub

Callback per la gestione delle risposte

La funzione publishCallback gestisce i messaggi di pubblicazione MQTT in entrata. Utilizza l'Defender_MatchTopicAPI della AWS IoT Device Defender libreria per verificare se il messaggio MQTT in arrivo proviene dal servizio. AWS IoT Device Defender Se il messaggio proviene da AWS IoT Device Defender, analizza la risposta JSON ricevuta ed estrae l'ID del report nella risposta. Viene quindi verificato che l'ID del rapporto sia uguale a quello inviato nel rapporto.