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:
- Download en start het OFFLINE-installatieprogramma van ESP-IDF v5.0.
- 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.
Zie Lange paden inschakelen in Windows 10 om lange paden in te schakelen.
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:
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.
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
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
location
instellen. Voer az account list-locations uit om de beschikbare locaties te bekijken.az group create --name MyResourceGroup --location centralus
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
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. DehostName
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:
Installeer Azure IoT Explorer. Dit hulpprogramma is een platformoverschrijdend hulpprogramma voor het bewaken en beheren van Azure IoT-resources.
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}
Kopieer de verbindingsreeks zonder de omringende aanhalingstekens.
Selecteer In Azure IoT Explorer IoT-hubs in het linkermenu.
Selecteer + Verbinding toevoegen.
Plak de verbindingsreeks in het vak Verbindingsreeks.
Selecteer Opslaan.
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:
In IoT Explorer selecteert u Start om terug te keren naar de startweergave.
Selecteer in het linkermenu IoT Plug en Play Settings.
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:
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:
Selecteer IoT-hubs in de startweergave in IoT Explorer.
De verbinding die u eerder hebt toegevoegd, moet worden weergegeven. Selecteer Apparaten weergeven in deze hub onder de verbindingseigenschappen.
Selecteer + Nieuw en voer een apparaat-id voor uw apparaat in,
mydevice
bijvoorbeeld. Laat alle andere eigenschappen hetzelfde.Selecteer Maken.
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:
Selecteer Windows Start, zoek ESP-IDF 5.0 CMD en voer deze uit.
Navigeer in ESP-IDF 5.0 CMD naar de map iot-middleware-freertos-samples die u eerder hebt gekloond.
Navigeer naar de projectmap esp32-Azure IoT Kit demos\projects\ESPRESSIF\aziotkit.
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:
Selecteer in ESP-IDF 5.0 CMD Azure IoT middleware voor FreeRTOS Sample Configuration ---> en druk op Enter.
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} 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:
Selecteer Azure IoT middleware voor freeRTOS-hoofdtaakconfiguratie ---> en druk op Enter.
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.
Selecteer Esc om terug te keren naar het vorige menu.
De configuratie opslaan:
- 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 .
- Selecteer Enter om de configuratie op te slaan.
- Selecteer Enter om het bevestigingsbericht te sluiten.
- 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:
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
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:
Zoek op de ESP32 DevKit de Micro USB-poort, die in de volgende afbeelding is gemarkeerd:
Sluit de Micro USB-kabel aan op de Micro USB-poort op de ESP32 DevKit en sluit deze vervolgens aan op uw computer.
Open Windows Apparaatbeheer en bekijk poorten om erachter te komen met welke COM-poort de ESP32 DevKit is verbonden.
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
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:
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
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:
Selecteer IoT-hubs in de startweergave in IoT Explorer en selecteer vervolgens Apparaten weergeven in deze hub.
Selecteer uw apparaat.
Selecteer IoT Plug en Play-onderdelen.
Selecteer het standaardonderdeel. In IoT Explorer worden de IoT-Plug en Play-onderdelen weergegeven die op uw apparaat zijn geïmplementeerd.
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:
Selecteer het tabblad Eigenschappen (beschrijfbaar). Het geeft het interval weer dat telemetrie wordt verzonden.
Wijzig de
telemetryFrequencySecs
waarde in 5 en selecteer vervolgens Gewenste waarde bijwerken. Uw apparaat gebruikt dit interval nu om telemetrie te verzenden.IoT Explorer reageert met een melding.
Azure CLI gebruiken om apparaateigenschappen weer te geven:
Voer de opdracht az iot hub device-twin show uit .
az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
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:
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.
Selecteer Starten.
Bekijk de telemetrie terwijl het apparaat berichten naar de cloud verzendt.
Schakel het selectievakje Gemodelleerde gebeurtenissen weergeven in om de gebeurtenissen weer te geven in de gegevensindeling die is opgegeven door het apparaatmodel.
Selecteer Stoppen om het ontvangen van gebeurtenissen te beëindigen.
Azure CLI gebruiken om telemetriegegevens van apparaten weer te geven:
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}
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}" } }
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:
Selecteer in het deelvenster IoT Plug en Play onderdelen (standaardonderdeel) voor uw apparaat in IoT Explorer het tabblad Opdrachten.
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.
Voer voor de opdracht DisplayText tekst in het inhoudsveld in.
Selecteer de opdracht Verzenden. De tekst wordt weergegeven op het scherm ESP32 DevKit.
Azure CLI gebruiken om een methode aan te roepen:
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
dattrue
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 }
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:
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
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.