Delen via


Zelfstudie: Een ESPRESSIF ESP32-Azure IoT Kit verbinden met IoT Hub

In deze zelfstudie gebruikt u de Azure IoT-middleware voor FreeRTOS om de ESPRESSIF ESP32-Azure IoT Kit (vanaf nu de ESP32 DevKit) te verbinden met Azure IoT.

U voert de volgende taken uit:

  • Een set ingesloten ontwikkelhulpprogramma's installeren voor het programmeren van een ESP32 DevKit
  • Een installatiekopieën bouwen en deze flashen naar de ESP32 DevKit
  • Azure CLI gebruiken om een Azure IoT-hub te maken en te beheren waarmee de ESP32 DevKit verbinding maakt
  • Azure IoT Explorer gebruiken om een apparaat te registreren bij uw IoT-hub, apparaateigenschappen weer te geven, telemetrie van apparaten weer te geven en directe opdrachten op het apparaat aan te roepen

Vereisten

  • Een pc met Windows 10 of Windows 11
  • Git voor het klonen van de opslagplaats
  • Hardware
    • ESPRESSIF ESP32-Azure IoT Kit
    • USB 2.0 A mannetje naar Micro USB mannelijke kabel
    • Wi-Fi 2,4 GHz
  • Een actief Azure-abonnement. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

De ontwikkelomgeving voorbereiden

De hulpprogramma's installeren

Als u uw ontwikkelomgeving wilt instellen, installeert u eerst de ESPRESSIF ESP-IDF-buildomgeving. Het installatieprogramma bevat alle hulpprogramma's die vereist zijn voor het klonen, bouwen, flashen en bewaken van uw apparaat.

De ESP-IDF-hulpprogramma's installeren:

  1. Download en start het OFFLINE-installatieprogramma van ESP-IDF v5.0.
  2. Wanneer het installatieprogramma onderdelen bevat die moeten worden geïnstalleerd, selecteert u alle onderdelen en voltooit u de installatie.

De opslagplaats klonen

Kloon de volgende opslagplaats om alle voorbeeldcode, installatiescripts en SDK-documentatie te downloaden. Als u deze opslagplaats eerder hebt gekloond, hoeft u deze niet opnieuw te doen.

Voer de volgende opdracht uit om de opslagplaats te klonen:

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

Zorg ervoor dat lange paden zijn ingeschakeld voor Windows 10 en 11.

  1. Zie Lange paden inschakelen in Windows 10 om lange paden in te schakelen.

  2. Voer in Git de volgende opdracht uit in een terminal met beheerdersmachtigingen:

    git config --system core.longpaths true
    

De cloudonderdelen maken

Een IoT Hub maken

U kunt Azure CLI gebruiken om een IoT-hub te maken waarmee gebeurtenissen en berichten voor uw apparaat worden verwerkt.

Een IoT Hub maken:

  1. Start de CLI-app. Als u de CLI-opdrachten in de rest van deze quickstart wilt uitvoeren, kopieert u de syntaxis van de opdracht, plakt u deze in uw CLI-app, bewerkt u variabelewaarden en drukt u op Enter.

    • Als u Cloud Shell gebruikt, klikt u met de rechtermuisknop op de koppeling voor Cloud Shell en selecteert u de optie om te openen op een nieuw tabblad.
    • Als u Azure CLI lokaal gebruikt, start u uw CLI-console-app en meldt u zich aan bij Azure CLI.
  2. Voer az extension add uit om de azure-iot-extensie te installeren of bij te werken naar de huidige versie.

    az extension add --upgrade --name azure-iot
    
  3. Voer de opdracht az group create uit om een resourcegroep te maken. Met de volgende opdracht maakt u een resourcegroep met de naam MyResourceGroup in de regio centralus .

    Notitie

    U kunt desgewenst een alternatief locationinstellen. Voer az account list-locations uit om de beschikbare locaties te bekijken.

    az group create --name MyResourceGroup --location centralus
    
  4. Voer de opdracht az iot hub create uit om een IoT-hub te maken. Het kan enkele minuten duren voordat een IoT-hub is gemaakt.

    YourIotHubName. Vervang deze tijdelijke aanduiding in de code door de naam die u hebt gekozen voor uw IoT-hub. De naam van de IoT-hub moet wereldwijd uniek zijn in Azure. Deze tijdelijke aanduiding wordt in de rest van deze quickstart gebruikt om uw unieke IoT-hubnaam weer te geven.

    Met --sku F1 de parameter wordt de IoT-hub gemaakt in de gratis laag. Hubs in de gratis laag hebben een beperkte functieset en worden gebruikt voor proof-of-concepttoepassingen. Zie prijzen voor Azure IoT Hub voor meer informatie over IoT Hub-lagen, -functies en -prijzen.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. Nadat de IoT-hub is gemaakt, bekijkt u de JSON-uitvoer in de console en kopieert u de hostName waarde die u in een latere stap wilt gebruiken. De hostName waarde ziet eruit als in het volgende voorbeeld:

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

IoT Explorer configureren

In de rest van deze quickstart gebruikt u IoT Explorer om een apparaat te registreren bij uw IoT-hub, om de apparaateigenschappen en telemetrie weer te geven en opdrachten naar uw apparaat te verzenden. In deze sectie configureert u IoT Explorer om verbinding te maken met de IoT-hub die u hebt gemaakt en om Plug and Play-modellen te lezen vanuit de openbare modelopslagplaats.

Ga als volgende te werk om een verbinding met uw IoT-hub toe te voegen:

  1. Installeer Azure IoT Explorer. Dit hulpprogramma is een platformoverschrijdend hulpprogramma voor het bewaken en beheren van Azure IoT-resources.

  2. Voer in uw CLI-app de opdracht az iot hub connection-string show uit om de verbindingsreeks voor uw IoT-hub op te halen.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. Kopieer de verbindingsreeks zonder de omringende aanhalingstekens.

  4. Selecteer In Azure IoT Explorer IoT-hubs in het linkermenu.

  5. Selecteer + Verbinding toevoegen.

  6. Plak de verbindingsreeks in het vak Verbindingsreeks.

  7. Selecteer Opslaan.

    Schermopname van het toevoegen van een verbinding in IoT Explorer.

Als de verbinding is geslaagd, schakelt IoT Explorer over naar de weergave Apparaten .

Ga als volgende te werk om de openbare modelopslagplaats toe te voegen:

  1. In IoT Explorer selecteert u Start om terug te keren naar de startweergave.

  2. Selecteer in het linkermenu IoT Plug en Play Settings.

  3. Controleer of er een bestaande vermelding in de openbare opslagplaats is met een eindpunt van https://devicemodels.azure.com.

    Notitie

    Als er geen vermelding is in de openbare opslagplaats, selecteert u +Toevoegen, selecteert u Openbare opslagplaats in de vervolgkeuzelijst, geeft u de https://devicemodels.azure.com eindpuntwaarde op en selecteert u Opslaan.

    De voltooide vermelding voor de openbare opslagplaats ziet er als volgt uit:

    Schermopname van het toevoegen van de openbare modelopslagplaats in IoT Explorer.

Een apparaat registreren

In deze sectie maakt u een nieuw apparaatexemplaren en registreert u dit bij de IoT-hub die u hebt gemaakt. U gebruikt de verbindingsgegevens voor het zojuist geregistreerde apparaat om uw fysieke apparaat veilig te verbinden in een latere sectie.

Een apparaat registreren:

  1. Selecteer IoT-hubs in de startweergave in IoT Explorer.

  2. De verbinding die u eerder hebt toegevoegd, moet worden weergegeven. Selecteer Apparaten weergeven in deze hub onder de verbindingseigenschappen.

  3. Selecteer + Nieuw en voer een apparaat-id voor uw apparaat in, mydevicebijvoorbeeld. Laat alle andere eigenschappen hetzelfde.

  4. Selecteer Maken.

    Schermopname van de apparaat-id van Azure IoT Explorer.

  5. Gebruik de kopieerknoppen om de velden Apparaat-id en Primaire sleutel te kopiëren.

Voordat u doorgaat naar de volgende sectie, slaat u elk van de volgende waarden op die uit eerdere stappen zijn opgehaald, op een veilige locatie. U gebruikt deze waarden in de volgende sectie om uw apparaat te configureren.

  • hostName
  • deviceId
  • primaryKey

Het apparaat voorbereiden

Als u de ESP32 DevKit wilt verbinden met Azure, wijzigt u de configuratie-instellingen, bouwt u de installatiekopieën en knippert u de installatiekopieën naar het apparaat.

De omgeving instellen

De ESP-IDF-omgeving starten:

  1. Selecteer Windows Start, zoek ESP-IDF 5.0 CMD en voer deze uit.

  2. Navigeer in ESP-IDF 5.0 CMD naar de map iot-middleware-freertos-samples die u eerder hebt gekloond.

  3. Navigeer naar de projectmap esp32-Azure IoT Kit demos\projects\ESPRESSIF\aziotkit.

  4. Voer de volgende opdracht uit om het configuratiemenu te starten:

    idf.py menuconfig
    

Configuratie toevoegen

Ga als volgende te werk om een draadloze netwerkconfiguratie toe te voegen:

  1. Selecteer in ESP-IDF 5.0 CMD Azure IoT middleware voor FreeRTOS Sample Configuration ---> en druk op Enter.

  2. Stel de volgende configuratie-instellingen in met behulp van de referenties van uw lokale draadloze netwerk.

    Instelling Weergegeven als
    WiFi SSID {Uw Wi-Fi-SSID}
    Wi-Fi-wachtwoord {Uw Wi-Fi-wachtwoord}
  3. Selecteer Esc om terug te keren naar het vorige menu.

Ga als volgende te werk om een configuratie toe te voegen om verbinding te maken met Azure IoT Hub:

  1. Selecteer Azure IoT middleware voor freeRTOS-hoofdtaakconfiguratie ---> en druk op Enter.

  2. Stel de volgende Azure IoT-configuratie-instellingen in op de waarden die u hebt opgeslagen nadat u Azure-resources hebt gemaakt.

    Instelling Weergegeven als
    Azure IoT Hub FQDN {Uw hostnaam}
    Azure IoT-apparaat-id {Uw apparaat-id}
    Symmetrische sleutel voor Azure IoT-apparaat {Uw primaire sleutel}

    Notitie

    Controleer in de instelling Azure IoT Authentication Method of de standaardwaarde van symmetrische sleutel is geselecteerd.

  3. Selecteer Esc om terug te keren naar het vorige menu.

De configuratie opslaan:

  1. Selecteer Shift+S om de opties voor opslaan te openen. In dit menu kunt u de configuratie opslaan in een bestand met de naam skconfig in de huidige map .\aziotkit .
  2. Selecteer Enter om de configuratie op te slaan.
  3. Selecteer Enter om het bevestigingsbericht te sluiten.
  4. Selecteer Q om het configuratiemenu af te sluiten.

De installatiekopieën bouwen en flashen

In deze sectie gebruikt u de ESP-IDF-hulpprogramma's om de ESP32 DevKit te bouwen, flashen en bewaken terwijl deze verbinding maakt met Azure IoT.

Notitie

Gebruik in de volgende opdrachten in deze sectie een kort uitvoerpad voor de build in de buurt van uw hoofdmap. Geef het buildpad op na de -B parameter in elke opdracht waarvoor deze is vereist. Het korte pad helpt bij het voorkomen van een huidig probleem in de ESPRESSIF ESP-IDF-hulpprogramma's die fouten met lange buildpadnamen kunnen veroorzaken. De volgende opdrachten gebruiken een lokaal pad C:\espbuild als voorbeeld.

De installatiekopieën maken:

  1. Voer in ESP-IDF 5.0 CMD, vanuit de map iot-middleware-freertos-samples\demos\projects\ESPRESSIF\aziotkit , de volgende opdracht uit om de installatiekopieën te bouwen.

    idf.py --no-ccache -B "C:\espbuild" build 
    
  2. Nadat de build is voltooid, controleert u of het binaire installatiekopieënbestand is gemaakt in het buildpad dat u eerder hebt opgegeven.

    C:\espbuild\azure_iot_freertos_esp32.bin

De afbeelding knipperen:

  1. Zoek op de ESP32 DevKit de Micro USB-poort, die in de volgende afbeelding is gemarkeerd:

    Foto van het ESP32-Azure IoT Kit-bord.

  2. Sluit de Micro USB-kabel aan op de Micro USB-poort op de ESP32 DevKit en sluit deze vervolgens aan op uw computer.

  3. Open Windows Apparaatbeheer en bekijk poorten om erachter te komen met welke COM-poort de ESP32 DevKit is verbonden.

    Schermopname van Windows Apparaatbeheer com-poort voor een verbonden apparaat weer te geven.

  4. Voer in ESP-IDF 5.0 CMD de volgende opdracht uit, waarbij u de< tijdelijke aanduiding voor uw-COM-poort> en vierkante haken vervangt door de juiste COM-poort uit de vorige stap. Vervang bijvoorbeeld de tijdelijke aanduiding door COM3.

    idf.py --no-ccache -B "C:\espbuild" -p <Your-COM-port> flash
    
  5. Controleer of de uitvoer is voltooid met de volgende tekst voor een geslaagde flash:

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

Ga als volgt te werk om te bevestigen dat het apparaat verbinding maakt met Azure IoT Central:

  1. Voer in ESP-IDF 5.0 CMD de volgende opdracht uit om het bewakingsprogramma te starten. Zoals u in een vorige opdracht hebt gedaan, vervangt u de <tijdelijke aanduiding voor uw COM-poort> en vierkante haken door de COM-poort waarmee het apparaat is verbonden.

    idf.py -B "C:\espbuild" -p <Your-COM-port> monitor
    
  2. Controleer op herhalende uitvoerblokken die vergelijkbaar zijn met het volgende voorbeeld. Deze uitvoer bevestigt dat het apparaat verbinding maakt met Azure IoT en telemetrie verzendt.

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

Apparaateigenschappen weergeven

U kunt Azure IoT Explorer gebruiken om de eigenschappen van uw apparaten weer te geven en te beheren. In de volgende secties gebruikt u de Plug en Play mogelijkheden die zichtbaar zijn in IoT Explorer om de ESP32 DevKit te beheren en ermee te werken. Deze mogelijkheden zijn afhankelijk van het apparaatmodel dat is gepubliceerd voor de ESP32 DevKit in de openbare modelopslagplaats. U hebt IoT Explorer geconfigureerd om in deze opslagplaats te zoeken naar apparaatmodellen eerder in deze zelfstudie. In veel gevallen kunt u dezelfde actie uitvoeren zonder plug en play te gebruiken door menuopties van IoT Explorer te selecteren. Het gebruik van Plug and Play biedt echter vaak een verbeterde ervaring. IoT Explorer kan het apparaatmodel lezen dat is opgegeven door een Plug and Play-apparaat en informatie presenteren die specifiek is voor dat apparaat.

Toegang tot IoT Plug en Play-onderdelen voor het apparaat in IoT Explorer:

  1. Selecteer IoT-hubs in de startweergave in IoT Explorer en selecteer vervolgens Apparaten weergeven in deze hub.

  2. Selecteer uw apparaat.

  3. Selecteer IoT Plug en Play-onderdelen.

  4. Selecteer het standaardonderdeel. In IoT Explorer worden de IoT-Plug en Play-onderdelen weergegeven die op uw apparaat zijn geïmplementeerd.

    Schermopname van het standaardonderdeel van het apparaat in IoT Explorer.

  5. Bekijk op het tabblad Interface de JSON-inhoud in de beschrijving van het apparaatmodel. De JSON bevat configuratiegegevens voor elk van de IoT-Plug en Play-onderdelen in het apparaatmodel.

    Elk tabblad in IoT Explorer komt overeen met een van de IoT-Plug en Play-onderdelen in het apparaatmodel.

    Tab Type Meting Beschrijving
    Interface Interface Espressif ESP32 Azure IoT Kit Voorbeeld van apparaatmodel voor de ESP32 DevKit
    Eigenschappen (beschrijfbaar) Eigenschappen telemetryFrequencySecs Het interval dat het apparaat telemetrie verzendt
    Opdrachten Opdracht ToggleLed1 De LED in- of uitschakelen
    Opdrachten Opdracht ToggleLed2 De LED in- of uitschakelen
    Opdrachten Opdracht DisplayText Verzonden tekst weergeven op het apparaatscherm

Apparaateigenschappen weergeven en bewerken met Behulp van Azure IoT Explorer:

  1. Selecteer het tabblad Eigenschappen (beschrijfbaar). Het geeft het interval weer dat telemetrie wordt verzonden.

  2. Wijzig de telemetryFrequencySecs waarde in 5 en selecteer vervolgens Gewenste waarde bijwerken. Uw apparaat gebruikt dit interval nu om telemetrie te verzenden.

    Schermopname van het instellen van telemetrie-interval op het apparaat in IoT Explorer.

  3. IoT Explorer reageert met een melding.

Azure CLI gebruiken om apparaateigenschappen weer te geven:

  1. Voer de opdracht az iot hub device-twin show uit .

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Controleer de eigenschappen voor uw apparaat in de console-uitvoer.

Tip

U kunt Ook Azure IoT Explorer gebruiken om apparaateigenschappen weer te geven. Selecteer apparaatdubbel in het linkernavigatievenster.

Telemetrie bekijken

Met Azure IoT Explorer kunt u de stroom telemetrie van uw apparaat naar de cloud bekijken. U kunt desgewenst dezelfde taak uitvoeren met behulp van Azure CLI.

Telemetrie weergeven in Azure IoT Explorer:

  1. Selecteer in het deelvenster IoT Plug en Play onderdelen (standaardonderdeel) voor uw apparaat in IoT Explorer het tabblad Telemetrie. Controleer of Ingebouwde Event Hub gebruiken is ingesteld op Ja.

  2. Selecteer Starten.

  3. Bekijk de telemetrie terwijl het apparaat berichten naar de cloud verzendt.

    Schermopname van apparaattelemetrie in IoT Explorer.

  4. Schakel het selectievakje Gemodelleerde gebeurtenissen weergeven in om de gebeurtenissen weer te geven in de gegevensindeling die is opgegeven door het apparaatmodel.

    Schermopname van gemodelleerde telemetriegebeurtenissen in IoT Explorer.

  5. Selecteer Stoppen om het ontvangen van gebeurtenissen te beëindigen.

Azure CLI gebruiken om telemetriegegevens van apparaten weer te geven:

  1. Voer de opdracht az iot hub monitor-events uit. Gebruik de namen die u eerder hebt gemaakt in Azure IoT voor uw apparaat en IoT Hub.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Bekijk de JSON-uitvoer in de 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. Selecteer Ctrl+C om de bewaking te beëindigen.

Een directe methode aanroepen op het apparaat

U kunt Azure IoT Explorer ook gebruiken om een directe methode aan te roepen die u op uw apparaat hebt geïmplementeerd. Directe methoden hebben een naam en kunnen eventueel een JSON-nettolading, configureerbare verbinding en time-out van methoden hebben. In deze sectie roept u een methode aan waarmee een LED wordt ingeschakeld of uitgeschakeld. U kunt desgewenst dezelfde taak uitvoeren met behulp van Azure CLI.

Een methode aanroepen in Azure IoT Explorer:

  1. Selecteer in het deelvenster IoT Plug en Play onderdelen (standaardonderdeel) voor uw apparaat in IoT Explorer het tabblad Opdrachten.

  2. Selecteer de opdracht Verzenden voor de opdracht ToggleLed1. De LED op de ESP32 DevKit schakelt in of uit. U ziet ook een melding in IoT Explorer.

    Schermopname van het aanroepen van een methode in IoT Explorer.

  3. Voer voor de opdracht DisplayText tekst in het inhoudsveld in.

  4. Selecteer de opdracht Verzenden. De tekst wordt weergegeven op het scherm ESP32 DevKit.

Azure CLI gebruiken om een methode aan te roepen:

  1. Voer de opdracht az iot hub invoke-device-method uit en geef de naam en nettolading van de methode op. Voor deze methode betekent instelling method-payload dat true de LED het tegenovergestelde van de huidige status aangeeft.

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

    In de CLI-console wordt de status van uw methode-aanroep op het apparaat weergegeven, waarbij 200 wordt aangegeven dat het apparaat is geslaagd.

    {
      "payload": {},
      "status": 200
    } 
    
  2. Controleer uw apparaat om de LED-status te bevestigen.

Problemen oplossen en fouten opsporen

Als u problemen ondervindt bij het bouwen van de apparaatcode, het knipperen van het apparaat of het verbinden, raadpleegt u Probleemoplossing.

Zie Foutopsporing met Visual Studio Code voor foutopsporing voor de toepassing.

Resources opschonen

Als u de Azure-resources die in deze quickstart zijn gemaakt niet meer nodig hebt, kunt u de Azure CLI gebruiken om de resourcegroep en alle bijbehorende resources te verwijderen.

Belangrijk

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert.

Een resourcegroep verwijderen op naam:

  1. Voer de opdracht az group delete uit. Met deze opdracht verwijdert u de resourcegroep, de IoT Hub en de apparaatregistratie die u hebt gemaakt.

    az group delete --name MyResourceGroup
    
  2. Voer de opdracht az group list uit om te controleren of de resourcegroep is verwijderd.

    az group list
    

Volgende stappen

In deze zelfstudie hebt u een aangepaste installatiekopie gemaakt die de Azure IoT-middleware voor FreeRTOS-voorbeeldcode bevat en vervolgens hebt u de installatiekopie naar het ESP32 DevKit-apparaat geflitst. U hebt de ESP32 DevKit verbonden met Azure IoT Hub en taken uitgevoerd, zoals het weergeven van telemetrie en het aanroepen van methoden op het apparaat.

Bekijk als volgende stap het volgende artikel voor meer informatie over ingesloten ontwikkelopties.