Dela via


Självstudie: Ansluta ett ESPRESSIF ESP32-Azure IoT Kit till IoT Hub

I den här självstudien använder du Azure IoT-mellanprogrammet för FreeRTOS för att ansluta ESPRESSIF ESP32-Azure IoT Kit (från och med nu ESP32 DevKit) till Azure IoT.

Du utför följande uppgifter:

  • Installera en uppsättning inbäddade utvecklingsverktyg för programmering av en ESP32 DevKit
  • Skapa en avbildning och flasha den till ESP32 DevKit
  • Använd Azure CLI för att skapa och hantera en Azure IoT-hubb som ESP32 DevKit ansluter till
  • Använd Azure IoT Explorer för att registrera en enhet med din IoT-hubb, visa enhetsegenskaper, visa enhetens telemetri och anropa direktkommandon på enheten

Förutsättningar

  • En dator som kör Windows 10 eller Windows 11
  • Git för kloning av lagringsplatsen
  • Hårdvara
  • En aktiv Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förbereda utvecklingsmiljön

Installera verktygen

Om du vill konfigurera utvecklingsmiljön installerar du först ESPRESSIF ESP-IDF-byggmiljön. Installationsprogrammet innehåller alla verktyg som krävs för att klona, skapa, flasha och övervaka din enhet.

Så här installerar du ESP-IDF-verktygen:

  1. Ladda ned och starta ESP-IDF v5.0 Offline-installer.
  2. När installationsprogrammet visar en lista över komponenter som ska installeras väljer du alla komponenter och slutför installationen.

Klona lagringsplatsen

Klona följande lagringsplats för att ladda ned all enhetskodexempel, installationsskript och SDK-dokumentation. Om du tidigare klonade den här lagringsplatsen behöver du inte göra det igen.

Om du vill klona lagringsplatsen kör du följande kommando:

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

För Windows 10 och 11 kontrollerar du att långa sökvägar är aktiverade.

  1. Information om hur du aktiverar långa sökvägar finns i Aktivera långa sökvägar i Windows 10.

  2. Kör följande kommando i en terminal med administratörsbehörigheter i git:

    git config --system core.longpaths true
    

Skapa molnkomponenterna

Skapa en IoT-hubb

Du kan använda Azure CLI för att skapa en IoT-hubb som hanterar händelser och meddelanden för din enhet.

Så här skapar du en IoT-hubb:

  1. Starta DIN CLI-app. Om du vill köra CLI-kommandona i resten av den här snabbstarten kopierar du kommandosyntaxen, klistrar in den i CLI-appen, redigerar variabelvärden och trycker på Retur.

    • Om du använder Cloud Shell högerklickar du på länken för Cloud Shell och väljer alternativet att öppna på en ny flik.
    • Om du använder Azure CLI lokalt startar du CLI-konsolappen och loggar in på Azure CLI.
  2. Kör az extension add för att installera eller uppgradera azure-iot-tillägget till den aktuella versionen.

    az extension add --upgrade --name azure-iot
    
  3. Kör kommandot az group create för att skapa en resursgrupp. Följande kommando skapar en resursgrupp med namnet MyResourceGroup i regionen centralus .

    Kommentar

    Du kan också ange en alternativ location. Om du vill se tillgängliga platser kör du az account list-locations.

    az group create --name MyResourceGroup --location centralus
    
  4. Kör kommandot az iot hub create för att skapa en IoT-hubb. Det kan ta några minuter att skapa en IoT-hubb.

    YourIotHubName. Ersätt platshållaren i koden med det namn du valde för din IoT-hubb. Ett IoT-hubbnamn måste vara globalt unikt i Azure. Den här platshållaren används i resten av den här snabbstarten för att representera ditt unika IoT Hub-namn.

    Parametern --sku F1 skapar IoT-hubben på den kostnadsfria nivån. Hubbar på den kostnadsfria nivån har en begränsad funktionsuppsättning och används för konceptbevisprogram. Mer information om IoT Hub-nivåer, funktioner och priser finns i Prissättning för Azure IoT Hub.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. När IoT-hubben har skapats visar du JSON-utdata i konsolen och kopierar värdet hostName som ska användas i ett senare steg. Värdet hostName ser ut som i följande exempel:

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

Konfigurera IoT Explorer

I resten av den här snabbstarten använder du IoT Explorer för att registrera en enhet till din IoT-hubb, för att visa enhetsegenskaper och telemetri och för att skicka kommandon till enheten. I det här avsnittet konfigurerar du IoT Explorer för att ansluta till den IoT-hubb som du skapade och för att läsa plug and play-modeller från lagringsplatsen för den offentliga modellen.

Så här lägger du till en anslutning till din IoT-hubb:

  1. Installera Azure IoT Explorer. Det här verktyget är ett plattformsoberoende verktyg för att övervaka och hantera Azure IoT-resurser.

  2. Kör kommandot az iot hub connection-string show i CLI-appen för att hämta niska veze för din IoT-hubb.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. Kopiera niska veze utan omgivande citattecken.

  4. I Azure IoT Explorer väljer du IoT-hubbar på den vänstra menyn.

  5. Välj + Lägg till anslutning.

  6. Klistra in niska veze i rutan Anslutningssträng.

  7. Välj Spara.

    Skärmbild av att lägga till en anslutning i IoT Explorer.

Om anslutningen lyckas växlar IoT Explorer till vyn Enheter .

Så här lägger du till lagringsplatsen för den offentliga modellen:

  1. I IoT Explorer väljer du Start för att återgå till hemvyn.

  2. Välj IoT Plug and Play-inställningar på den vänstra menyn.

  3. Bekräfta att det finns en befintlig offentlig lagringsplatspost med en slutpunkt på https://devicemodels.azure.com.

    Kommentar

    Om det inte finns någon post på den offentliga lagringsplatsen väljer du +Lägg till, väljer Offentlig lagringsplats på den nedrullningsbara menyn, anger https://devicemodels.azure.com slutpunktsvärdet och väljer sedan Spara.

    Den slutförda posten för den offentliga lagringsplatsen ser ut som följande skärmbild:

    Skärmbild av att lägga till lagringsplatsen för den offentliga modellen i IoT Explorer.

Registrera en enhet

I det här avsnittet skapar du en ny enhetsinstans och registrerar den med den IoT-hubb som du skapade. Du använder anslutningsinformationen för den nyligen registrerade enheten för att på ett säkert sätt ansluta din fysiska enhet i ett senare avsnitt.

Så här registrerar du en enhet:

  1. I hemvyn i IoT Explorer väljer du IoT-hubbar.

  2. Anslutningen som du tidigare lade till bör visas. Välj Visa enheter i den här hubben under anslutningsegenskaperna.

  3. Välj + Ny och ange ett enhets-ID för enheten, mydevicetill exempel . Låt alla andra egenskaper vara desamma.

  4. Välj Skapa.

    Skärmbild av enhetsidentiteten i Azure IoT Explorer.

  5. Använd kopieringsknapparna för att kopiera fälten Enhets-ID och Primärnyckel .

Innan du fortsätter till nästa avsnitt sparar du vart och ett av följande värden som hämtats från tidigare steg på en säker plats. Du använder dessa värden i nästa avsnitt för att konfigurera enheten.

  • hostName
  • deviceId
  • primaryKey

Förbereda enheten

Om du vill ansluta ESP32 DevKit till Azure ändrar du konfigurationsinställningarna, skapar avbildningen och blinkar avbildningen till enheten.

Konfigurera miljön

Så här startar du ESP-IDF-miljön:

  1. Välj Windows Start, leta upp ESP-IDF 5.0 CMD och kör det.

  2. I ESP-IDF 5.0 CMD navigerar du till katalogen iot-middleware-freertos-samples som du klonade tidigare.

  3. Gå till ESP32-Azure IoT Kit-projektkatalogen demos\projects\ESPRESSIF\aziotkit.

  4. Kör följande kommando för att starta konfigurationsmenyn:

    idf.py menuconfig
    

Lägga till konfiguration

Så här lägger du till konfiguration av trådlöst nätverk:

  1. I ESP-IDF 5.0 CMD väljer du Azure IoT-mellanprogram för FreeRTOS-exempelkonfiguration ---> och trycker på Retur.

  2. Ange följande konfigurationsinställningar med dina autentiseringsuppgifter för det lokala trådlösa nätverket.

    Inställning Värde
    WiFi SSID {Ditt Wi-Fi SSID}
    WiFi-lösenord {Ditt Wi-Fi-lösenord}
  3. Välj Esc för att återgå till föregående meny.

Så här lägger du till konfiguration för att ansluta till Azure IoT Hub:

  1. Välj Azure IoT-mellanprogram för FreeRTOS Main Task Configuration ---> och tryck på Retur.

  2. Ange följande Azure IoT-konfigurationsinställningar till de värden som du sparade när du skapade Azure-resurser.

    Inställning Värde
    Azure IoT Hub FQDN {Ditt värdnamn}
    Azure IoT-enhets-ID {Ditt enhets-ID}
    Symmetrisk nyckel för Azure IoT-enhet {Din primära nyckel}

    Kommentar

    I inställningen Azure IoT Authentication Method (Azure IoT-autentiseringsmetod) kontrollerar du att standardvärdet för symmetrisk nyckel är markerat.

  3. Välj Esc för att återgå till föregående meny.

Så här sparar du konfigurationen:

  1. Välj Skift+S för att öppna alternativen för att spara. På den här menyn kan du spara konfigurationen i en fil med namnet skconfig i den aktuella .\aziotkit-katalogen .
  2. Spara konfigurationen genom att välja Retur .
  3. Välj Retur för att stänga bekräftelsemeddelandet.
  4. Välj Q för att avsluta konfigurationsmenyn.

Skapa och flasha avbildningen

I det här avsnittet använder du ESP-IDF-verktygen för att skapa, flasha och övervaka ESP32 DevKit när det ansluter till Azure IoT.

Kommentar

I följande kommandon i det här avsnittet använder du en kort build-utdatasökväg nära rotkatalogen. Ange byggsökvägen efter parametern -B i varje kommando som kräver det. Den korta sökvägen hjälper till att undvika ett aktuellt problem i ESPRESSIF ESP-IDF-verktygen som kan orsaka fel med namn på långa byggsökvägar. Följande kommandon använder en lokal sökväg C:\espbuild som exempel.

Så här skapar du avbildningen:

  1. I ESP-IDF 5.0 CMD kör du följande kommando från katalogen iot-middleware-freertos-samples\demos\projects\ESPRESSIF\aziotkit för att skapa avbildningen.

    idf.py --no-ccache -B "C:\espbuild" build 
    
  2. När bygget är klart bekräftar du att den binära avbildningsfilen skapades i den byggsökväg som du angav tidigare.

    C:\espbuild\azure_iot_freertos_esp32.bin

Så här blinkar du bilden:

  1. På ESP32 DevKit letar du upp Micro USB-porten, som är markerad i följande bild:

    Foto av ESP32-Azure IoT Kit-tavlan.

  2. Anslut Micro USB-kabeln till Micro USB-porten på ESP32 DevKit och anslut den sedan till datorn.

  3. Öppna Windows Upravljač uređajima och visa Portar för att ta reda på vilken COM-port ESP32 DevKit är ansluten till.

    Skärmbild av Windows Upravljač uređajima som visar COM-port för en ansluten enhet.

  4. I ESP-IDF 5.0 CMD kör du följande kommando och ersätter <platshållaren för Din-COM-port> och hakparenteser med rätt COM-port från föregående steg. Ersätt till exempel platshållaren med COM3.

    idf.py --no-ccache -B "C:\espbuild" -p <Your-COM-port> flash
    
  5. Bekräfta att utdata slutförs med följande text för en lyckad blixt:

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

Bekräfta att enheten ansluter till Azure IoT Central:

  1. I ESP-IDF 5.0 CMD kör du följande kommando för att starta övervakningsverktyget. Som du gjorde i ett tidigare kommando ersätter <du platshållaren Your-COM-port> och hakparenteser med COM-porten som enheten är ansluten till.

    idf.py -B "C:\espbuild" -p <Your-COM-port> monitor
    
  2. Kontrollera om det finns upprepade utdatablock som liknar följande exempel. Det här utdata bekräftar att enheten ansluter till Azure IoT och skickar telemetri.

    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...
    

Visa enhetsegenskaper

Du kan använda Azure IoT Explorer för att visa och hantera egenskaperna för dina enheter. I följande avsnitt använder du plug and play-funktionerna som visas i IoT Explorer för att hantera och interagera med ESP32 DevKit. Dessa funktioner förlitar sig på den enhetsmodell som publicerats för ESP32 DevKit på lagringsplatsen för den offentliga modellen. Du har konfigurerat IoT Explorer för att söka på den här lagringsplatsen efter enhetsmodeller tidigare i den här självstudien. I många fall kan du utföra samma åtgärd utan att använda plug and play genom att välja menyalternativ för IoT Explorer. Att använda plug and play ger dock ofta en förbättrad upplevelse. IoT Explorer kan läsa enhetsmodellen som anges av en plug and play-enhet och presentera information som är specifik för den enheten.

Så här kommer du åt IoT Plug and Play-komponenter för enheten i IoT Explorer:

  1. I hemvyn i IoT Explorer väljer du IoT-hubbar och sedan Visa enheter i den här hubben.

  2. Välj din enhet.

  3. Välj IoT Plug and Play-komponenter.

  4. Välj Standardkomponent. IoT Explorer visar de IoT Plug and Play-komponenter som implementeras på enheten.

    Skärmbild av enhetens standardkomponent i IoT Explorer.

  5. På fliken Gränssnitt visar du JSON-innehållet i enhetsmodellen Beskrivning. JSON innehåller konfigurationsinformation för var och en av IoT Plug and Play-komponenterna i enhetsmodellen.

    Varje flik i IoT Explorer motsvarar en av IoT Plug and Play-komponenterna i enhetsmodellen.

    Tabb Typ Name beskrivning
    Gränssnitt Gränssnitt Espressif ESP32 Azure IoT Kit Exempel på enhetsmodell för ESP32 DevKit
    Egenskaper (skrivbara) Property telemetryFrequencySecs Intervallet som enheten skickar telemetri
    Kommandon Command ToggleLed1 Slå på eller av lysdioderna
    Kommandon Command ToggleLed2 Slå på eller av lysdioderna
    Kommandon Command DisplayText Visar skickad text på enhetsskärmen

Så här visar och redigerar du enhetsegenskaper med Hjälp av Azure IoT Explorer:

  1. Välj fliken Egenskaper (skrivbar). Det visar intervallet som telemetri skickas.

  2. Ändra värdet telemetryFrequencySecs till 5 och välj sedan Uppdatera önskat värde. Enheten använder nu det här intervallet för att skicka telemetri.

    Skärmbild av inställning av telemetriintervall på enheten i IoT Explorer.

  3. IoT Explorer svarar med ett meddelande.

Så här använder du Azure CLI för att visa enhetsegenskaper:

  1. Kör kommandot az iot hub device-twin show.

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Granska egenskaperna för enheten i konsolens utdata.

Dricks

Du kan också använda Azure IoT Explorer för att visa enhetsegenskaper. I det vänstra navigeringsfältet väljer du Enhetstvilling.

Visa telemetri

Med Azure IoT Explorer kan du visa flödet av telemetri från din enhet till molnet. Du kan också göra samma uppgift med hjälp av Azure CLI.

Så här visar du telemetri i Azure IoT Explorer:

  1. I fönstret IoT Plug and Play-komponenter (standardkomponent) för enheten i IoT Explorer väljer du fliken Telemetri . Bekräfta att Använd inbyggd händelsehubb är inställd på Ja.

  2. Välj start.

  3. Visa telemetrin när enheten skickar meddelanden till molnet.

    Skärmbild av enhetstelemetri i IoT Explorer.

  4. Markera kryssrutan Visa modellerade händelser för att visa händelserna i det dataformat som anges av enhetsmodellen.

    Skärmbild av modellerade telemetrihändelser i IoT Explorer.

  5. Välj Stoppa för att avsluta mottagandet av händelser.

Så här använder du Azure CLI för att visa enhetstelemetri:

  1. Kör kommandot az iot hub monitor-events. Använd de namn som du skapade tidigare i Azure IoT för din enhet och IoT Hub.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Visa JSON-utdata i konsolen.

    {
        "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. Välj CTRL+C för att avsluta övervakningen.

Anropa en direktmetod på enheten

Du kan också använda Azure IoT Explorer för att anropa en direktmetod som du implementerade på enheten. Direkta metoder har ett namn och kan eventuellt ha en JSON-nyttolast, konfigurerbar anslutning och tidsgräns för metoden. I det här avsnittet anropar du en metod som aktiverar eller inaktiverar en lysdiod. Du kan också göra samma uppgift med hjälp av Azure CLI.

Anropa en metod i Azure IoT Explorer:

  1. I fönstret IoT Plug and Play-komponenter (standardkomponent) för enheten i IoT Explorer väljer du fliken Kommandon .

  2. För kommandot ToggleLed1 väljer du Skicka kommando. Lysdioderna på ESP32 DevKit växlar på eller av. Du bör också se ett meddelande i IoT Explorer.

    Skärmbild av att anropa en metod i IoT Explorer.

  3. För kommandot DisplayText anger du text i innehållsfältet.

  4. Välj Kommandot Skicka. Texten visas på ESP32 DevKit-skärmen.

Så här använder du Azure CLI för att anropa en metod:

  1. Kör kommandot az iot hub invoke-device-method och ange metodnamnet och nyttolasten. För den här metoden innebär inställningen method-payload till true att lysdioderna växlar till motsatsen till dess aktuella tillstånd.

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

    CLI-konsolen visar statusen för metodanropet på enheten, där 200 indikerar att det lyckades.

    {
      "payload": {},
      "status": 200
    } 
    
  2. Kontrollera enheten för att bekräfta LED-tillståndet.

Felsöka och felsöka

Om du har problem med att skapa enhetskoden, flasha enheten eller ansluta kan du läsa Felsökning.

Information om hur du felsöker programmet finns i Felsökning med Visual Studio Code.

Rensa resurser

Om du inte längre behöver de Azure-resurser som skapats i den här snabbstarten kan du använda Azure CLI för att ta bort resursgruppen och alla dess resurser.

Viktigt!

Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser som ingår i den tas bort permanent. Kontrollera att du inte av misstag tar bort fel resursgrupp eller resurser.

Ta bort en resursgrupp med namnet:

  1. Kör kommandot az group delete. Det här kommandot tar bort resursgruppen, IoT Hub och enhetsregistreringen som du skapade.

    az group delete --name MyResourceGroup
    
  2. Kör kommandot az group list för att bekräfta att resursgruppen har tagits bort.

    az group list
    

Nästa steg

I den här självstudien har du skapat en anpassad avbildning som innehåller Azure IoT-mellanprogrammet för FreeRTOS-exempelkoden och sedan flashade du avbildningen till ESP32 DevKit-enheten. Du har anslutit ESP32 DevKit till Azure IoT Hub och utfört uppgifter som att visa telemetri- och samtalsmetoder på enheten.

Som ett nästa steg kan du utforska följande artikel för att lära dig mer om inbäddade utvecklingsalternativ.