Självstudie: Använda Eclipse ThreadX för att ansluta en STMicroelectronics B-L475E-IOT01A Discovery-kit till IoT Hub
Artikel
I den här självstudien använder du Eclipse ThreadX för att ansluta STMicroelectronics B-L475E-IOT01A Discovery Kit (från och med nu STM DevKit) till Azure IoT.
Du utför följande uppgifter:
Installera en uppsättning inbäddade utvecklingsverktyg för programmering av STM DevKit i C
Skapa en avbildning och flasha den till STM DevKit
Använd Azure CLI för att skapa och hantera en Azure IoT-hubb som STM DevKit ansluter säkert 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
En aktiv Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Azure CLI. Du har två alternativ för att köra Azure CLI-kommandon i den här självstudien:
Använd Azure Cloud Shell, ett interaktivt gränssnitt som kör CLI-kommandon i webbläsaren. Det här alternativet rekommenderas eftersom du inte behöver installera något. Om du använder Cloud Shell för första gången loggar du in på Azure Portal. Följ stegen i Cloud Shell-snabbstarten för att starta Cloud Shell och välj Bash-miljön.
Du kan också köra Azure CLI på din lokala dator. Om Azure CLI redan är installerat kör du az upgrade för att uppgradera CLI och tillägg till den aktuella versionen. Information om hur du installerar Azure CLI finns i Installera Azure CLI.
För att konfigurera utvecklingsmiljön klonar du först en GitHub-lagringsplats som innehåller alla tillgångar som du behöver för självstudien. Sedan installerar du en uppsättning programmeringsverktyg.
Klona lagringsplatsen
Klona följande lagringsplats för att ladda ned all enhetskodexempel, installationsskript och offlineversioner av dokumentationen. Om du tidigare klonade den här lagringsplatsen i en annan självstudie behöver du inte göra det igen.
Om du vill klona lagringsplatsen kör du följande kommando:
Den klonade lagringsplatsen innehåller ett installationsskript som installerar och konfigurerar de verktyg som krävs. Om du har installerat dessa verktyg i en annan inbäddad enhetsguide behöver du inte göra det igen.
Anteckning
Installationsskriptet installerar följande verktyg:
Termit: Övervaka serieportutdata för anslutna enheter
Så här installerar du verktygen:
Gå till följande sökväg på lagringsplatsen och kör installationsskriptet med namnet get-toolchain.bat:
komma igång\tools\get-toolchain.bat
Öppna ett nytt konsolfönster för att identifiera de konfigurationsändringar som gjorts av installationsskriptet. Använd den här konsolen för att slutföra de återstående programmeringsuppgifterna i självstudien. Du kan använda Windows CMD, PowerShell eller Git Bash för Windows.
Kör följande kod för att bekräfta att CMake version 3.14 eller senare är installerad.
shell
cmake --version
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:
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.
Kör az extension add för att installera eller uppgradera azure-iot-tillägget till den aktuella versionen.
Azure CLI
az extension add --upgrade--name azure-iot
Kör kommandot az group create för att skapa en resursgrupp. Följande kommando skapar en resursgrupp med namnet MyResourceGroup i regionen centralus .
Anteckning
Du kan också ange en alternativ location. Om du vill se tillgängliga platser kör du az account list-locations.
Azure CLI
az group create --name MyResourceGroup --location centralus
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.
Azure CLI
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count2
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:
Installera Azure IoT Explorer. Det här verktyget är ett plattformsoberoende verktyg för att övervaka och hantera Azure IoT-resurser.
Kör kommandot az iot hub connection-string show i CLI-appen för att hämta anslutningssträng för din IoT-hubb.
Azure CLI
az iot hub connection-string show --hub-name {YourIoTHubName}
Kopiera anslutningssträng utan omgivande citattecken.
I Azure IoT Explorer väljer du IoT-hubbar på den vänstra menyn.
Välj + Lägg till anslutning.
Klistra in anslutningssträng i rutan Anslutningssträng.
Välj Spara.
Om anslutningen lyckas växlar IoT Explorer till vyn Enheter .
Så här lägger du till lagringsplatsen för den offentliga modellen:
I IoT Explorer väljer du Start för att återgå till hemvyn.
Välj IoT Plug and Play-inställningar på den vänstra menyn.
Bekräfta att det finns en befintlig offentlig lagringsplatspost med en slutpunkt på https://devicemodels.azure.com.
Anteckning
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:
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:
I hemvyn i IoT Explorer väljer du IoT-hubbar.
Anslutningen som du tidigare lade till bör visas. Välj Visa enheter i den här hubben under anslutningsegenskaperna.
Välj + Ny och ange ett enhets-ID för enheten, mydevicetill exempel . Låt alla andra egenskaper vara desamma.
Välj Skapa.
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 STM DevKit till Azure ändrar du en konfigurationsfil för Wi-Fi- och Azure IoT-inställningar, återskapar avbildningen och blinkar avbildningen till enheten.
Kommentera ut följande rad längst upp i filen enligt följande:
C
// #define ENABLE_DPS
Ange Wi-Fi-konstanterna till följande värden från din lokala miljö.
Konstant namn
Värde
WIFI_SSID
{Ditt Wi-Fi SSID}
WIFI_PASSWORD
{Ditt Wi-Fi-lösenord}
WIFI_MODE
{Ett av de uppräknade Wi-Fi-lägesvärdena i filen}
Ange konstanterna för Azure IoT-enhetsinformation till de värden som du sparade när du skapade Azure-resurser.
Konstant namn
Värde
IOT_HUB_HOSTNAME
{Värdet för Iot Hub hostName}
IOT_HUB_DEVICE_ID
{Ditt enhets-ID-värde}
IOT_DEVICE_SAS_KEY
{Primärnyckelvärdet}
Spara och stäng filen.
Skapa avbildningen
I konsolen eller i Utforskaren kör du batchfilen rebuild.bat på följande sökväg för att skapa avbildningen:
komma igång\STMicroelectronics\B-L475E-IOT01A\tools\rebuild.bat
När bygget har slutförts bekräftar du att den binära filen skapades i följande sökväg:
komma igång\STMicroelectronics\B-L475E-IOT01A\build\app\stm32l475_azure_iot.bin
Flasha bilden
På STM DevKit MCU letar du upp knappen Återställ (1), Micro USB-porten (2), som är märkt USB STLink och kortets delnummer (3). Du refererar till de här objekten i nästa steg. Alla är markerade i följande bild:
Anslut Micro USB-kabeln till USB STLINK-porten på STM DevKit och anslut den sedan till datorn.
Anteckning
Detaljerad konfigurationsinformation om STM DevKit finns i anvisningarna på förpackningen eller i B-L475E-IOT01A-resurser
I Utforskaren hittar du de binära filer som du skapade i föregående avsnitt.
Kopiera den binära filen med namnet stm32l475_azure_iot.bin.
I Utforskaren hittar du STM Devkit som är ansluten till datorn. Enheten visas som en enhet i systemet med enhetsetiketten DIS_L4IOT.
Klistra in den binära filen i rotmappen för STM Devkit. Blinkande startar automatiskt och slutförs om några sekunder.
Anteckning
Under blinkningsprocessen växlar en LED mellan rött och grönt på STM DevKit.
Bekräfta information om enhetsanslutning
Du kan använda Termite-appen för att övervaka kommunikationen och bekräfta att enheten är korrekt konfigurerad.
I dialogrutan Inställningar för seriell port kontrollerar du följande inställningar och uppdaterar om det behövs:
Baud-kurs: 115 200
Port: Porten som STM DevKit är ansluten till. Om det finns flera portalternativ i listrutan hittar du rätt port att använda. Öppna Windows Enhetshanteraren och visa Portar för att identifiera vilken port som ska användas.
Välj OK.
Tryck på knappen Återställ på enheten. Knappen är svart och är märkt på enheten.
I Termite-appen kontrollerar du följande kontrollpunktsvärden för att bekräfta att enheten har initierats och anslutits till Azure IoT.
Output
Starting Azure thread
Initializing WiFi
Module: ISM43362-M3G-L44-SPI
MAC address: ****************
Firmware revision: C3.5.2.5.STM
SUCCESS: WiFi initialized
Connecting WiFi
Connecting to SSID 'iot'
Attempt 1...
SUCCESS: WiFi connected
Initializing DHCP
IP address: 192.168.0.35
Mask: 255.255.255.0
Gateway: 192.168.0.1
SUCCESS: DHCP initialized
Initializing DNS client
DNS address 1: ************
DNS address 2: ************
SUCCESS: DNS client initialized
Initializing SNTP time sync
SNTP server 0.pool.ntp.org
SNTP time update: Nov 18, 2022 0:56:56.127 UTC
SUCCESS: SNTP initialized
Initializing Azure IoT Hub client
Hub hostname: *******.azure-devices.net
Device id: mydevice
Model id: dtmi:eclipsethreadx:devkit:gsgstml4s5;2
SUCCESS: Connected to IoT Hub
Viktigt
Om DNS-klientens initiering misslyckas och meddelar dig att Wi-Fi-inbyggda programvara är inaktuell måste du uppdatera wi-fi-modulens inbyggda programvara. Ladda ned och installera inventek ISM 43362 Wi-Fi-modulens inbyggda programvara från STMicroelectronics. Tryck sedan på knappen Återställ på enheten för att kontrollera anslutningen igen och fortsätt med den här självstudien.
Håll Termite öppen för att övervaka enhetens utdata i följande steg.
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 STM DevKit. Dessa funktioner förlitar sig på den enhetsmodell som publicerats för STM 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:
I hemvyn i IoT Explorer väljer du IoT-hubbar och sedan Visa enheter i den här hubben.
Välj din enhet.
Välj IoT Plug and Play-komponenter.
Välj Standardkomponent. IoT Explorer visar de IoT Plug and Play-komponenter som implementeras på enheten.
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.
Anteckning
Namnet och beskrivningen för standardkomponenten refererar till STM L4S5-tavlan. STM L4S5 plug and play-enhetsmodellen används också för STM L475E-kortet i den här självstudien.
Varje flik i IoT Explorer motsvarar en av IoT Plug and Play-komponenterna i enhetsmodellen.
Tabb
Typ
Name
beskrivning
Gränssnitt
Gränssnitt
STM Getting Started Guide
Exempelmodell för STM DevKit
Egenskaper (skrivskyddade)
Property
ledState
Om lysdioderna är på eller av
Egenskaper (skrivbara)
Property
telemetryInterval
Intervallet som enheten skickar telemetri
Kommandon
Command
setLedState
Slå på eller av lysdioderna
Så här visar du enhetsegenskaper med Azure IoT Explorer:
Välj fliken Egenskaper (skrivskyddad). Det finns en enda skrivskyddad egenskap som anger om lysdioderna är på eller av.
Välj fliken Egenskaper (skrivbar). Det visar intervallet som telemetri skickas.
telemetryInterval Ändra till 5 och välj sedan Uppdatera önskat värde. Enheten använder nu det här intervallet för att skicka telemetri.
IoT Explorer svarar med ett meddelande. Du kan också se uppdateringen i Termite.
Ange telemetriintervallet tillbaka till 10.
Så här använder du Azure CLI för att visa enhetsegenskaper:
az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
Granska egenskaperna för enheten i konsolens utdata.
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:
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.
Välj start.
Visa telemetrin när enheten skickar meddelanden till molnet.
Anteckning
Du kan också övervaka telemetri från enheten med hjälp av Termite-appen.
Markera kryssrutan Visa modellerade händelser för att visa händelserna i det dataformat som anges av enhetsmodellen.
Välj Stoppa för att avsluta mottagandet av händelser.
Så här använder du Azure CLI för att visa enhetstelemetri:
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:
I fönstret IoT Plug and Play-komponenter (standardkomponent) för enheten i IoT Explorer väljer du fliken Kommandon .
För kommandot setLedState anger du tillståndet till true.
Välj Kommandot Skicka. Du bör se ett meddelande i IoT Explorer och den gröna LED-lampan på enheten ska aktiveras.
Ange tillståndet till false och välj sedan Kommandot Skicka. Lysdioderna ska stängas av.
Du kan också visa utdata i Termite för att övervaka metodernas status.
Så här använder du Azure CLI för att anropa en metod:
Kör kommandot az iot hub invoke-device-method och ange metodnamnet och nyttolasten. För den här metoden aktiverar du method-payloadtrue lysdioderna och ställer in den så att false den inaktiveras.
Azure CLI
az iot hub invoke-device-method --device-id mydevice --method-name setLedState --method-payloadtrue--hub-name {YourIoTHubName}
CLI-konsolen visar statusen för metodanropet på enheten, där 204 indikerar att det lyckades.
JSON
{
"payload": {},
"status": 200
}
Kontrollera enheten för att bekräfta LED-tillståndet.
Visa Termite-terminalen för att bekräfta utdatameddelandena:
Output
Received command: setLedState
Payload: true
LED is turned ON
Sending property: $iothub/twin/PATCH/properties/reported/?$rid=15{"ledState":true}
Felsöka och felsöka
Om du har problem med att skapa enhetskoden, flasha enheten eller ansluta kan du läsa Felsökning.
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:
Kör kommandot az group delete. Det här kommandot tar bort resursgruppen, IoT Hub och enhetsregistreringen som du skapade.
I den här självstudien skapade du en anpassad avbildning som innehåller Eclipse ThreadX-exempelkod och flashade sedan avbildningen till STM DevKit-enheten. Du har anslutit STM DevKit till Azure och utfört uppgifter som att visa telemetri och anropa en metod på enheten.
Som ett nästa steg kan du utforska följande artikel för att lära dig mer om inbäddade utvecklingsalternativ.
Eclipse ThreadX tillhandahåller OEM-tillverkare med komponenter för säker kommunikation och för att skapa kod- och dataisolering med hjälp av underliggande mekanismer för MCU/MPU-maskinvaruskydd. Varje OEM-tillverkare är dock ytterst ansvarig för att se till att deras enhet uppfyller de växande säkerhetskrav som utvecklas.
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.
Självstudie – Skapa och kör IoT Plug and Play-exempelenhetskod som använder flera komponenter och ansluter till en IoT-hubb. Självstudien visar hur du använder C, C#, Java, JavaScript eller Python. Använd Azure IoT Explorer-verktyget för att visa informationen som skickas av enheten till hubben.
En översikt över Azure IoT-tillgångs- och enhetsutveckling, inklusive en introduktion till enhets-SDK:er, modellering, IoT Edge-moduler och en undersökning av tillgängliga verktyg.
Läs mer om IoT Plug and Play. IoT Plug and Play baseras på ett öppet modelleringsspråk som gör det möjligt för smarta IoT-enheter att deklarera sina funktioner. IoT-enheter presenterar den deklarationen, som kallas enhetsmodell, när de ansluter till molnlösningar. Molnlösningen kan sedan automatiskt förstå enheten och börja interagera med den, allt utan att skriva någon kod.