Share via


Esercitazione: Connessione un KIT ESP32-Azure IoT ESPRESSOF per hub IoT

In questa esercitazione si usa il middleware IoT di Azure per FreeRTOS per connettere IL KIT ESP32-Azure IoT ESPRESSOF (da ora in poi ESP32 DevKit) ad Azure IoT.

Completare le attività seguenti:

  • Installare un set di strumenti di sviluppo incorporati per la programmazione di un DevKit ESP32
  • Creare un'immagine e lampeggiarla in ESP32 DevKit
  • Usare l'interfaccia della riga di comando di Azure per creare e gestire un hub IoT di Azure a cui si connette ESP32 DevKit
  • Usare Azure IoT Explorer per registrare un dispositivo con l'hub IoT, visualizzare le proprietà del dispositivo, visualizzare i dati di telemetria del dispositivo e chiamare comandi diretti nel dispositivo

Prerequisiti

  • Un PC che esegue Windows 10 o Windows 11
  • Git per la clonazione del repository
  • Hardware
  • Una sottoscrizione di Azure attiva. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Preparare l'ambiente di sviluppo

Installa gli strumenti

Per configurare l'ambiente di sviluppo, installare prima di tutto l'ambiente di compilazione ESP-IDF DI ESPRESSIF. Il programma di installazione include tutti gli strumenti necessari per clonare, compilare, flash e monitorare il dispositivo.

Per installare gli strumenti ESP-IDF:

  1. Scaricare e avviare il programma di installazione offline ESP-IDF v5.0.
  2. Quando il programma di installazione elenca i componenti da installare, selezionare tutti i componenti e completare l'installazione.

Clonare il repository

Clonare il repository seguente per scaricare tutto il codice del dispositivo di esempio, gli script di installazione e la documentazione dell'SDK. Se questo repository è stato clonato in precedenza, non è necessario eseguire di nuovo questa operazione.

Per clonare il repository, eseguire il comando seguente:

git clone --recursive  https://github.com/Azure-Samples/iot-middleware-freertos-samples.git

Per Windows 10 e 11, assicurarsi che siano abilitati percorsi lunghi.

  1. Per abilitare percorsi lunghi, vedi Abilitare percorsi lunghi in Windows 10.

  2. In git eseguire il comando seguente in un terminale con autorizzazioni di amministratore:

    git config --system core.longpaths true
    

Creare i componenti cloud

Creare un hub IoT

È possibile usare l'interfaccia della riga di comando di Azure per creare un hub IoT che gestisce gli eventi e la messaggistica per il dispositivo.

Per creare un hub IoT:

  1. Avviare l'app dell'interfaccia della riga di comando. Per eseguire i comandi dell'interfaccia della riga di comando nel resto di questa guida introduttiva, copiare la sintassi del comando, incollarla nell'app dell'interfaccia della riga di comando, modificare i valori delle variabili e premere INVIO.

    • Se si usa Cloud Shell, fare clic con il pulsante destro del mouse sul collegamento per Cloud Shell e selezionare l'opzione da aprire in una nuova scheda.
    • Se si usa l'interfaccia della riga di comando di Azure in locale, avviare l'app console dell'interfaccia della riga di comando e accedere all'interfaccia della riga di comando di Azure.
  2. Eseguire az extension add per installare o aggiornare l'estensione azure-iot alla versione corrente.

    az extension add --upgrade --name azure-iot
    
  3. Eseguire il comando az group create per creare un gruppo di risorse. Il comando seguente crea un gruppo di risorse denominato MyResourceGroup nell'area centralus .

    Nota

    Facoltativamente, è possibile impostare un oggetto alternativo location. Per visualizzare le posizioni disponibili, eseguire az account list-locations.

    az group create --name MyResourceGroup --location centralus
    
  4. Eseguire il comando az iot hub create per creare un hub IoT. La creazione di un hub IoT potrebbe richiedere alcuni minuti.

    YourIotHubName. Sostituire questo segnaposto nel codice con il nome scelto per l'hub IoT. Un nome dell'hub IoT deve essere univoco a livello globale in Azure. Questo segnaposto viene usato nella parte restante di questa guida introduttiva per rappresentare il nome univoco dell'hub IoT.

    Il --sku F1 parametro crea l'hub IoT nel livello Gratuito. Gli hub di livello gratuito hanno un set di funzionalità limitato e vengono usati per le applicazioni di verifica. Per altre informazioni su hub IoT livelli, funzionalità e prezzi, vedere prezzi hub IoT di Azure.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. Dopo aver creato l'hub IoT, visualizzare l'output JSON nella console e copiare il hostName valore da usare in un passaggio successivo. Il hostName valore è simile all'esempio seguente:

    {Your IoT hub name}.azure-devices.net

Configurare IoT Explorer

Nella parte restante di questa guida introduttiva si usa IoT Explorer per registrare un dispositivo nell'hub IoT, visualizzare le proprietà e i dati di telemetria del dispositivo e inviare comandi al dispositivo. In questa sezione viene configurato IoT Explorer per connettersi all'hub IoT creato e per leggere i modelli plug and play dal repository del modello pubblico.

Per aggiungere una connessione all'hub IoT:

  1. Installare Azure IoT Explorer. Questo strumento è un'utilità multipiattaforma per monitorare e gestire le risorse di Azure IoT.

  2. Nell'app dell'interfaccia della riga di comando eseguire il comando az iot hub connection-string show per ottenere il stringa di connessione per l'hub IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. Copiare il stringa di connessione senza le virgolette circostanti.

  4. In Azure IoT Explorer selezionare Hub IoT nel menu a sinistra.

  5. Selezionare + Aggiungi connessione.

  6. Incollare il stringa di connessione nella casella stringa di Connessione ion.

  7. Seleziona Salva.

    Screenshot dell'aggiunta di una connessione in IoT Explorer.

Se la connessione ha esito positivo, IoT Explorer passa alla visualizzazione Dispositivi .

Per aggiungere il repository del modello pubblico:

  1. In IoT Explorer selezionare Home per tornare alla visualizzazione home.

  2. Nel menu a sinistra selezionare Plug and Play IoT Impostazioni, quindi selezionare +Aggiungi e selezionare Repository pubblico dal menu a discesa.

  3. Viene visualizzata una voce per il repository di modelli pubblici in https://devicemodels.azure.com.

    Screenshot dell'aggiunta del repository del modello pubblico in IoT Explorer.

  4. Seleziona Salva.

Registrazione di un dispositivo

In questa sezione viene creata una nuova istanza del dispositivo e registrata con l'hub IoT creato. Usare le informazioni di connessione per il dispositivo appena registrato per connettere in modo sicuro il dispositivo fisico in una sezione successiva.

Per registrare un dispositivo:

  1. Nella home view in IoT Explorer selezionare Hub IoT.

  2. Verrà visualizzata la connessione aggiunta in precedenza. Selezionare Visualizza dispositivi in questo hub sotto le proprietà di connessione.

  3. Selezionare + Nuovo e immettere un ID dispositivo per il dispositivo, mydevicead esempio . Lasciare invariate tutte le altre proprietà.

  4. Seleziona Crea.

    Screenshot dell'identità del dispositivo azure IoT Explorer.

  5. Usare i pulsanti copia per copiare i campi ID dispositivo e Chiave primaria .

Prima di continuare con la sezione successiva, salvare ognuno dei valori seguenti recuperati dai passaggi precedenti in un percorso sicuro. Questi valori vengono usati nella sezione successiva per configurare il dispositivo.

  • hostName
  • deviceId
  • primaryKey

Preparare il dispositivo

Per connettere ESP32 DevKit ad Azure, modificare le impostazioni di configurazione, compilare l'immagine e lampeggiare l'immagine nel dispositivo.

Configurare l'ambiente

Per avviare l'ambiente ESP-IDF:

  1. Selezionare Start di Windows, trovare ESP-IDF 5.0 CMD ed eseguirlo.

  2. In ESP-IDF 5.0 CMD passare alla directory iot-middleware-freertos-samples clonata in precedenza.

  3. Passare alla directory del progetto ESP32-Azure IoT Kit demos\projects\ESPRESSIF\aziotkit.

  4. Eseguire il comando seguente per avviare il menu di configurazione:

    idf.py menuconfig
    

Aggiungere la configurazione

Per aggiungere la configurazione della rete wireless:

  1. In ESP-IDF 5.0 CMD selezionare middleware IoT di Azure per FreeRTOS Sample Configuration ---> e premere INVIO.

  2. Impostare le impostazioni di configurazione seguenti usando le credenziali della rete wireless locale.

    Impostazione Valore
    WiFi SSID {SSID wi-fi}
    Password Wi-Fi {Password Wi-Fi}
  3. Selezionare ESC per tornare al menu precedente.

Per aggiungere la configurazione per la connessione a hub IoT di Azure:

  1. Selezionare il middleware IoT di Azure per La configurazione dell'attività principale FreeRTOS ---> e premere INVIO.

  2. Impostare le impostazioni di configurazione di Azure IoT seguenti sui valori salvati dopo aver creato le risorse di Azure.

    Impostazione Valore
    hub IoT di Azure FQDN {Nome host}
    ID dispositivo Azure IoT {ID dispositivo}
    Chiave simmetrica del dispositivo IoT di Azure {Chiave primaria}

    Nota

    Nell'impostazione Metodo di autenticazione di Azure IoT verificare che sia selezionato il valore predefinito della chiave simmetrica.

  3. Selezionare ESC per tornare al menu precedente.

Per salvare la configurazione:

  1. Selezionare MAIUSC+S per aprire le opzioni di salvataggio. Questo menu consente di salvare la configurazione in un file denominato skconfig nella directory corrente .\aziotkit .
  2. Selezionare Invio per salvare la configurazione.
  3. Selezionare Invio per ignorare il messaggio di riconoscimento.
  4. Selezionare Q per uscire dal menu di configurazione.

Compilare e lampeggiare l'immagine

In questa sezione si usano gli strumenti ESP-IDF per compilare, lampeggiare e monitorare esp32 DevKit mentre si connette ad Azure IoT.

Nota

Nei comandi seguenti in questa sezione usare un percorso di output di compilazione breve vicino alla directory radice. Specificare il percorso di compilazione dopo il -B parametro in ogni comando che lo richiede. Il percorso breve consente di evitare un problema corrente negli strumenti ESP-IDF DI ESPRESSIF che possono causare errori con nomi di percorsi di compilazione lunghi. I comandi seguenti usano un percorso locale C:\espbuild come esempio.

Per compilare l'immagine:

  1. In ESP-IDF 5.0 CMD, dalla directory iot-middleware-freertos-samples\demos\projects\ESPRESSIF\aziotkit eseguire il comando seguente per compilare l'immagine.

    idf.py --no-ccache -B "C:\espbuild" build 
    
  2. Al termine della compilazione, verificare che il file di immagine binaria sia stato creato nel percorso di compilazione specificato in precedenza.

    C:\espbuild\azure_iot_freertos_esp32.bin

Per eseguire il flashing dell'immagine:

  1. In ESP32 DevKit individuare la porta Micro USB, evidenziata nell'immagine seguente:

    Foto della scheda ESP32-Azure IoT Kit.

  2. Connessione il cavo Micro USB alla porta Micro USB su ESP32 DevKit e quindi connetterlo al computer.

  3. Aprire Windows Gestione dispositivi e visualizzare Porte per scoprire la porta COM a cui è connesso ESP32 DevKit.

    Screenshot di Windows Gestione dispositivi che mostra la porta COM per un dispositivo connesso.

  4. In ESP-IDF 5.0 CMD eseguire il comando seguente, sostituendo il <segnaposto e le parentesi porta YOUR-COM> con la porta COM corretta del passaggio precedente. Ad esempio, sostituire il segnaposto con COM3.

    idf.py --no-ccache -B "C:\espbuild" -p <Your-COM-port> flash
    
  5. Verificare che l'output venga completato con il testo seguente per un flash riuscito:

    Hash of data verified
    
    Leaving...
    Hard resetting via RTS pin...
    Done
    

Per verificare che il dispositivo si connetta ad Azure IoT Central:

  1. In ESP-IDF 5.0 CMD eseguire il comando seguente per avviare lo strumento di monitoraggio. Come è stato fatto in un comando precedente, sostituire il <segnaposto Your-COM-port> e parentesi quadre con la porta COM a cui il dispositivo è connesso.

    idf.py -B "C:\espbuild" -p <Your-COM-port> monitor
    
  2. Verificare la presenza di blocchi ripetuti di output simili all'esempio seguente. Questo output conferma che il dispositivo si connette ad Azure IoT e invia i dati di telemetria.

    I (50807) AZ IOT: Successfully sent telemetry message
    I (50807) AZ IOT: Attempt to receive publish message from IoT Hub.
    
    I (51057) MQTT: Packet received. ReceivedBytes=2.
    I (51057) MQTT: Ack packet deserialized with result: MQTTSuccess.
    I (51057) MQTT: State record updated. New state=MQTTPublishDone.
    I (51067) AZ IOT: Puback received for packet id: 0x00000008
    I (53067) AZ IOT: Keeping Connection Idle...
    

Visualizzare le proprietà del dispositivo

È possibile usare Azure IoT Explorer per visualizzare e gestire le proprietà dei dispositivi. Nelle sezioni seguenti si usano le funzionalità Plug and Play visibili in IoT Explorer per gestire e interagire con ESP32 DevKit. Queste funzionalità si basano sul modello di dispositivo pubblicato per ESP32 DevKit nel repository di modelli pubblici. IoT Explorer è stato configurato per cercare in questo repository i modelli di dispositivo in precedenza in questa esercitazione. In molti casi, è possibile eseguire la stessa azione senza usare plug and play selezionando le opzioni di menu IoT Explorer. Tuttavia, l'uso di plug and play offre spesso un'esperienza avanzata. IoT Explorer può leggere il modello di dispositivo specificato da un dispositivo plug and play e presentare informazioni specifiche del dispositivo.

Per accedere ai componenti Plug and Play IoT per il dispositivo in IoT Explorer:

  1. Nella home view in IoT Explorer selezionare Hub IoT, quindi selezionare Visualizza dispositivi in questo hub.

  2. Selezionare il dispositivo.

  3. Selezionare Plug and Play IoT componenti.

  4. Selezionare Componente predefinito. IoT Explorer visualizza i componenti Plug and Play IoT implementati nel dispositivo.

    Screenshot del componente predefinito del dispositivo in IoT Explorer.

  5. Nella scheda Interfaccia visualizzare il contenuto JSON nella descrizione del modello di dispositivo. Il codice JSON contiene i dettagli di configurazione per ognuno dei componenti Plug and Play IoT nel modello di dispositivo.

    Ogni scheda in IoT Explorer corrisponde a uno dei componenti Plug and Play IoT nel modello di dispositivo.

    Tab Type Name Descrizione
    Interfaccia Interfaccia Espressif ESP32 Azure IoT Kit Modello di dispositivo di esempio per ESP32 DevKit
    Proprietà (scrivibile) Proprietà telemetryFrequencySecs Intervallo di invio dei dati di telemetria da parte del dispositivo
    Comandi Comando ToggleLed1 Accendere o disattivare il LED
    Comandi Comando ToggleLed2 Accendere o disattivare il LED
    Comandi Comando DisplayText Visualizza il testo inviato nella schermata del dispositivo

Per visualizzare e modificare le proprietà del dispositivo tramite Azure IoT Explorer:

  1. Selezionare la scheda Proprietà (scrivibile). Visualizza l'intervallo di invio dei dati di telemetria.

  2. Impostare il telemetryFrequencySecs valore su 5 e quindi selezionare Aggiorna valore desiderato. Il dispositivo usa ora questo intervallo per inviare i dati di telemetria.

    Screenshot dell'impostazione dell'intervallo di telemetria nel dispositivo in IoT Explorer.

  3. IoT Explorer risponde con una notifica.

Per usare l'interfaccia della riga di comando di Azure per visualizzare le proprietà del dispositivo:

  1. Nella console dell'interfaccia della riga di comando eseguire il comando az iot hub device-twin show .

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Esaminare le proprietà del dispositivo nell'output della console.

Suggerimento

È anche possibile usare Azure IoT Explorer per visualizzare le proprietà del dispositivo. Nel riquadro di spostamento a sinistra selezionare Dispositivo gemello.

Visualizzare i dati di telemetria

Con Azure IoT Explorer è possibile visualizzare il flusso di dati di telemetria dal dispositivo al cloud. Facoltativamente, è possibile eseguire la stessa attività usando l'interfaccia della riga di comando di Azure.

Per visualizzare i dati di telemetria in Azure IoT Explorer:

  1. Nel riquadro componenti di Plug and Play IoT (componente predefinito) per il dispositivo in IoT Explorer selezionare la scheda Telemetria. Verificare che l'opzione Usa hub eventi predefinito sia impostata su .

  2. Selezionare Inizio.

  3. Visualizzare i dati di telemetria mentre il dispositivo invia messaggi al cloud.

    Screenshot dei dati di telemetria dei dispositivi in IoT Explorer.

  4. Selezionare la casella di controllo Mostra eventi modellati per visualizzare gli eventi nel formato dati specificato dal modello di dispositivo.

    Screenshot degli eventi di telemetria modellati in IoT Explorer.

  5. Selezionare Arresta per terminare la ricezione di eventi.

Per usare l'interfaccia della riga di comando di Azure per visualizzare i dati di telemetria dei dispositivi:

  1. Eseguire il comando az iot hub monitor-events . Usare i nomi creati in precedenza in Azure IoT per il dispositivo e l'hub IoT.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Visualizzare l'output JSON nella console.

    {
        "event": {
            "origin": "mydevice",
            "module": "",
            "interface": "dtmi:azureiot:devkit:freertos:Esp32AzureIotKit;1",
            "component": "",
            "payload": "{\"temperature\":28.6,\"humidity\":25.1,\"light\":116.66,\"pressure\":-33.69,\"altitude\":8764.9,\"magnetometerX\":1627,\"magnetometerY\":28373,\"magnetometerZ\":4232,\"pitch\":6,\"roll\":0,\"accelerometerX\":-1,\"accelerometerY\":0,\"accelerometerZ\":9}"
        }
    }
    
  3. Selezionare CTRL+C per terminare il monitoraggio.

Chiamare un metodo diretto nel dispositivo

È anche possibile usare Azure IoT Explorer per chiamare un metodo diretto implementato nel dispositivo. I metodi diretti hanno un nome e possono facoltativamente avere un payload JSON, una connessione configurabile e un timeout del metodo. In questa sezione viene chiamato un metodo che attiva o disattiva un LED. Facoltativamente, è possibile eseguire la stessa attività usando l'interfaccia della riga di comando di Azure.

Per chiamare un metodo in Azure IoT Explorer:

  1. Nel riquadro componenti di Plug and Play IoT (componente predefinito) per il dispositivo in IoT Explorer selezionare la scheda Comandi.

  2. Per il comando ToggleLed1 selezionare Invia comando. Il LED sul DevKit ESP32 attiva o disattiva. Verrà visualizzata anche una notifica in IoT Explorer.

    Screenshot della chiamata di un metodo in IoT Explorer.

  3. Per il comando DisplayText immettere un testo nel campo contenuto .

  4. Selezionare Invia comando. Il testo viene visualizzato nella schermata ESP32 DevKit.

Per usare l'interfaccia della riga di comando di Azure per chiamare un metodo:

  1. Eseguire il comando az iot hub invoke-device-method e specificare il nome e il payload del metodo. Per questo metodo, l'impostazione method-payload su true indica che il LED attiva/disattiva l'opposto dello stato corrente.

    az iot hub invoke-device-method --device-id mydevice --method-name ToggleLed2 --method-payload true --hub-name {YourIoTHubName}
    

    La console dell'interfaccia della riga di comando mostra lo stato della chiamata al metodo nel dispositivo, dove 200 indica l'esito positivo.

    {
      "payload": {},
      "status": 200
    } 
    
  2. Controllare il dispositivo per confermare lo stato del LED.

Risolvere i problemi ed eseguire il debug

Se si verificano problemi durante la compilazione del codice del dispositivo, il flashing del dispositivo o la connessione, vedere Risoluzione dei problemi.

Per il debug dell'applicazione, vedere Debug con Visual Studio Code.

Pulire le risorse

Se le risorse di Azure create in questa guida introduttiva non sono più necessarie, è possibile usare l'interfaccia della riga di comando di Azure per eliminare il gruppo di risorse e tutte le relative risorse.

Importante

L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate.

Per eliminare un gruppo di risorse per nome:

  1. Eseguire il comando az group delete. Questo comando rimuove il gruppo di risorse, il hub IoT e la registrazione del dispositivo creata.

    az group delete --name MyResourceGroup
    
  2. Eseguire il comando az group list per verificare che il gruppo di risorse sia stato eliminato.

    az group list
    

Passaggi successivi

In questa esercitazione è stata creata un'immagine personalizzata che contiene il middleware azure IoT per il codice di esempio FreeRTOS e quindi è stata visualizzata l'immagine nel dispositivo ESP32 DevKit. È stato connesso ESP32 DevKit a hub IoT di Azure ed è stata eseguita attività come la visualizzazione dei dati di telemetria e i metodi di chiamata nel dispositivo.

Come passaggio successivo, vedere l'articolo seguente per altre informazioni sulle opzioni di sviluppo incorporate.