Dela via


Självstudie: Använda Eclipse ThreadX för att ansluta en STMicroelectronics B-L475E-IOT01A Discovery-kit till IoT Hub

Sökkod

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.

  • Git för kloning av lagringsplatsen

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

    • B-L475E-IOT01A (STM DevKit)
    • Wi-Fi 2,4 GHz
    • USB 2.0 En hane till Micro USB hane kabel

Förbereda utvecklingsmiljön

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:

git clone --recursive https://github.com/eclipse-threadx/getting-started.git

Installera verktygen

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.

Kommentar

Installationsskriptet installerar följande verktyg:

Så här installerar du verktygen:

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

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

  3. Kör följande kod för att bekräfta att CMake version 3.14 eller senare är installerad.

    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:

  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 anslutningssträng för din IoT-hubb.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. Kopiera anslutningssträng 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 anslutningssträng 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 STM DevKit till Azure ändrar du en konfigurationsfil för Wi-Fi- och Azure IoT-inställningar, återskapar avbildningen och blinkar avbildningen till enheten.

Lägga till konfiguration

  1. Öppna följande fil i en textredigerare:

    getting-started\STMicroelectronics\B-L475E-IOT01A\app\azure_config.h

  2. Kommentera ut följande rad längst upp i filen enligt följande:

    // #define ENABLE_DPS
    
  3. 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}
  4. 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}
  5. Spara och stäng filen.

Skapa avbildningen

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

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

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

    Foto som visar viktiga komponenter på STM DevKit-tavlan.

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

    Kommentar

    Detaljerad konfigurationsinformation om STM DevKit finns i anvisningarna på förpackningen eller i B-L475E-IOT01A-resurser

  3. I Utforskaren hittar du de binära filer som du skapade i föregående avsnitt.

  4. Kopiera den binära filen med namnet stm32l475_azure_iot.bin.

  5. I Utforskaren hittar du STM Devkit som är ansluten till datorn. Enheten visas som en enhet i systemet med enhetsetiketten DIS_L4IOT.

  6. Klistra in den binära filen i rotmappen för STM Devkit. Blinkande startar automatiskt och slutförs om några sekunder.

    Kommentar

    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.

  1. Starta Termite.

    Dricks

    Om du inte kan ansluta Termite till din devkit installerar du ST-LINK-drivrutinen och försöker igen. Mer information finns i Felsökning.

  2. Välj Inställningar.

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

    Skärmbild av inställningarna för serieporten i termitappen.

  4. Välj OK.

  5. Tryck på knappen Återställ på enheten. Knappen är svart och är märkt på enheten.

  6. I Termite-appen kontrollerar du följande kontrollpunktsvärden för att bekräfta att enheten har initierats och anslutits till Azure IoT.

    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:

  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 standardkomponenten STM DevKit 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.

    Kommentar

    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:

  1. Välj fliken Egenskaper (skrivskyddad). Det finns en enda skrivskyddad egenskap som anger om lysdioderna är på eller av.

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

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

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

  4. IoT Explorer svarar med ett meddelande. Du kan också se uppdateringen i Termite.

  5. Ange telemetriintervallet tillbaka till 10.

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.

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.

    Kommentar

    Du kan också övervaka telemetri från enheten med hjälp av Termite-appen.

  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:eclipsethreadx:devkit:gsgmxchip;1",
            "component": "",
            "payload": "{\"humidity\":41.21,\"temperature\":31.37,\"pressure\":1005.18}"
        }
    }
    
  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 setLedState anger du tillståndet till true.

  3. Välj Kommandot Skicka. Du bör se ett meddelande i IoT Explorer och den gröna LED-lampan på enheten ska aktiveras.

    Skärmbild av att anropa metoden setLedState i IoT Explorer.

  4. Ange tillståndet till false och välj sedan Kommandot Skicka. Lysdioderna ska stängas av.

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

  1. Kör kommandot az iot hub invoke-device-method och ange metodnamnet och nyttolasten. För den här metoden aktiverar du method-payload true lysdioderna och ställer in den så att false den inaktiveras.

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

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

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

  3. Visa Termite-terminalen för att bekräfta utdatameddelandena:

    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.

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
    

Gå vidare

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.

Viktigt!

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.