Kurz: Použití Eclipse ThreadX k připojení sady STMicroelectronics B-L475E-IOT01A Discovery kit k IoT Hubu

Procházet kód

V tomto kurzu použijete Eclipse ThreadX k připojení sady STMicroelectronics B-L475E-IOT01A Discovery Kit (od této chvíle stM DevKit) k Azure IoT.

Provedete následující úkoly:

  • Instalace sady integrovaných vývojových nástrojů pro programování sady STM DevKit v jazyce C
  • Sestavení image a jeho flash na STM DevKit
  • Použití Azure CLI k vytvoření a správě centra Azure IoT, ke kterému se stM DevKit bezpečně připojuje
  • Použití Azure IoT Exploreru k registraci zařízení ve službě IoT Hub, zobrazení vlastností zařízení, zobrazení telemetrie zařízení a volání přímých příkazů na zařízení

Požadavky

  • Počítač s Windows 10 nebo Windows 11

  • Aktivní předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

  • Git pro klonování úložiště

  • Rozhraní příkazového řádku Azure. V tomto kurzu máte dvě možnosti spouštění příkazů Azure CLI:

    • Použijte Azure Cloud Shell, interaktivní prostředí, které spouští příkazy rozhraní příkazového řádku v prohlížeči. Tato možnost se doporučuje, protože nemusíte nic instalovat. Pokud Cloud Shell používáte poprvé, přihlaste se k webu Azure Portal. Postupujte podle kroků v rychlém startu pro Cloud Shell a spusťte Cloud Shell a vyberte prostředí Bash.
    • Volitelně můžete na místním počítači spustit Azure CLI. Pokud je azure CLI už nainstalované, spusťte az upgrade upgrade rozhraní příkazového řádku a rozšíření na aktuální verzi. Pokud chcete nainstalovat Azure CLI, přečtěte si téma Instalace Azure CLI.
  • Hardware

    • Sada B-L475E-IOT01A (STM DevKit)
    • Wi-Fi 2,4 GHz
    • USB 2.0 Muž na kabel Micro USB

Příprava vývojového prostředí

Pokud chcete nastavit vývojové prostředí, nejprve naklonujete úložiště GitHub, které obsahuje všechny prostředky potřebné pro tento kurz. Pak nainstalujete sadu programovacích nástrojů.

Klonování úložiště

Naklonujte následující úložiště a stáhněte si veškerý ukázkový kód zařízení, instalační skripty a offline verze dokumentace. Pokud jste toto úložiště naklonovali dříve v jiném kurzu, nemusíte to udělat znovu.

Pokud chcete naklonovat úložiště, spusťte následující příkaz:

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

Instalace nástrojů

Klonované úložiště obsahuje instalační skript, který nainstaluje a nakonfiguruje požadované nástroje. Pokud jste tyto nástroje nainstalovali v jiném kurzu k vloženým zařízením, nemusíte to dělat znovu.

Poznámka:

Instalační skript nainstaluje následující nástroje:

  • CMake: Sestavení
  • ARM GCC: Kompilace
  • Termite: Monitorování výstupu sériového portu pro připojená zařízení

Instalace nástrojů:

  1. V Průzkumník souborů přejděte do následující cesty v úložišti a spusťte instalační skript s názvem get-toolchain.bat:

    getting-started\tools\get-toolchain.bat

  2. Po instalaci otevřete nové okno konzoly, abyste rozpoznali změny konfigurace provedené instalačním skriptem. Pomocí této konzoly dokončete zbývající programovací úlohy v kurzu. Můžete použít windows CMD, PowerShell nebo Git Bash pro Windows.

  3. Spuštěním následujícího kódu potvrďte, že je nainstalovaný CMake verze 3.14 nebo novější.

    cmake --version
    

Vytvoření cloudových komponent

Vytvoření centra IoT

Pomocí Azure CLI můžete vytvořit centrum IoT, které zpracovává události a zasílání zpráv pro vaše zařízení.

Vytvoření centra IoT:

  1. Spusťte aplikaci CLI. Pokud chcete spustit příkazy rozhraní příkazového řádku ve zbytku tohoto rychlého startu, zkopírujte syntaxi příkazu, vložte ho do aplikace CLI, upravte hodnoty proměnných a stiskněte Enter.

    • Pokud používáte Cloud Shell, klikněte pravým tlačítkem myši na odkaz pro Cloud Shell a vyberte možnost otevření na nové kartě.
    • Pokud používáte Azure CLI místně, spusťte konzolovou aplikaci CLI a přihlaste se k Azure CLI.
  2. Spuštěním příkazu az extension add nainstalujte nebo upgradujte rozšíření azure-iot na aktuální verzi.

    az extension add --upgrade --name azure-iot
    
  3. Spuštěním příkazu az group create vytvořte skupinu prostředků. Následující příkaz vytvoří skupinu prostředků MyResourceGroup v oblasti centralus.

    Poznámka:

    Volitelně můžete nastavit alternativní location. Pokud chcete zobrazit dostupná umístění, spusťte příkaz az account list-locations.

    az group create --name MyResourceGroup --location centralus
    
  4. Spuštěním příkazu az iot hub create vytvořte IoT Hub. Vytvoření centra IoT může trvat několik minut.

    YourIotHubName. Nahraďte tento zástupný symbol v kódu názvem, který jste zvolili pro centrum IoT. Název centra IoT musí být v Azure globálně jedinečný. Tento zástupný symbol se používá ve zbývající části tohoto rychlého startu k reprezentaci jedinečného názvu centra IoT.

    Parametr --sku F1 vytvoří centrum IoT na úrovni Free. Rozbočovače úrovně Free mají omezenou sadu funkcí a používají se k testování konceptů aplikací. Další informace o úrovních, funkcích a cenách služby IoT Hub najdete v tématu Ceny služby Azure IoT Hub.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. Po vytvoření centra IoT zobrazte výstup JSON v konzole a zkopírujte hostName hodnotu, kterou použijete v pozdějším kroku. Hodnota hostName vypadá jako v následujícím příkladu:

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

Konfigurace IoT Exploreru

Ve zbývající části tohoto rychlého startu pomocí IoT Exploreru zaregistrujete zařízení do centra IoT, zobrazíte vlastnosti a telemetrii zařízení a odešlete do zařízení příkazy. V této části nakonfigurujete IoT Explorer pro připojení k vytvořenému centru IoT a čtení modelů plug-and play z veřejného úložiště modelů.

Přidání připojení ke službě IoT Hub:

  1. Nainstalujte Azure IoT Explorer. Tento nástroj je multiplatformní nástroj pro monitorování a správu prostředků Azure IoT.

  2. Spuštěním příkazu az iot hub connection-string show v aplikaci CLI získejte připojovací řetězec pro centrum IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. Zkopírujte připojovací řetězec bez okolních uvozovek.

  4. V Azure IoT Exploreru vyberte v levé nabídce službu IoT Hubs .

  5. Vyberte + Add connection (Přidat připojení).

  6. Vložte připojovací řetězec do pole řetězce Připojení ion.

  7. Zvolte Uložit.

    Snímek obrazovky s přidáním připojení v IoT Exploreru

Pokud připojení proběhne úspěšně, IoT Explorer přepne do zobrazení Zařízení .

Přidání úložiště veřejného modelu:

  1. V IoT Exploreru se výběrem možnosti Domů vraťte do domovského zobrazení.

  2. V nabídce vlevo vyberte IoT technologie Plug and Play Nastavení a pak v rozevírací nabídce vyberte +Přidat a vyberte Veřejné úložiště.

  3. Položka se zobrazí pro úložiště veřejného modelu na adrese https://devicemodels.azure.com.

    Snímek obrazovky s přidáním úložiště veřejného modelu v IoT Exploreru

  4. Zvolte Uložit.

Registrace zařízení

V této části vytvoříte novou instanci zařízení a zaregistrujete ji ve službě IoT Hub, kterou jste vytvořili. Informace o připojení pro nově zaregistrované zařízení použijete k bezpečnému připojení fyzického zařízení v další části.

Registrace zařízení:

  1. V domovském zobrazení v IoT Exploreru vyberte IoT Hubs.

  2. Mělo by se zobrazit připojení, které jste přidali dříve. Pod vlastnostmi připojení vyberte Zobrazit zařízení v tomto centru .

  3. Vyberte + Nový a zadejte ID zařízení pro vaše zařízení, mydevicenapříklad . Ponechte všechny ostatní vlastnosti stejné.

  4. Vyberte Vytvořit.

    Snímek obrazovky s identitou zařízení Azure IoT Exploreru

  5. Pomocí tlačítek kopírování zkopírujte pole ID zařízení a primárního klíče .

Než budete pokračovat k další části, uložte všechny následující hodnoty načtené z předchozích kroků do bezpečného umístění. Tyto hodnoty použijete v další části ke konfiguraci zařízení.

  • hostName
  • deviceId
  • primaryKey

Příprava zařízení

Pokud chcete připojit sadu STM DevKit k Azure, upravíte konfigurační soubor pro nastavení Wi-Fi a Azure IoT, znovu sestavíte image a blikáte na zařízení.

Přidání konfigurace

  1. V textovém editoru otevřete následující soubor:

    začínáme\STMicroelectronics\B-L475E-IOT01A\app\azure_config.h

  2. Zakomentujte následující řádek v horní části souboru, jak je znázorněno:

    // #define ENABLE_DPS
    
  3. Nastavte konstanty Wi-Fi na následující hodnoty z místního prostředí.

    Název konstanty Hodnota
    WIFI_SSID {Vaše Wi-Fi SSID}
    WIFI_PASSWORD {Vaše heslo k Wi-Fi}
    WIFI_MODE {Jedna z výčtových hodnot v režimu Wi-Fi v souboru}
  4. Nastavte konstanty informací o zařízení Azure IoT na hodnoty, které jste uložili po vytvoření prostředků Azure.

    Název konstanty Hodnota
    IOT_HUB_HOSTNAME {Hodnota názvu hostitele služby Iot Hub}
    IOT_HUB_DEVICE_ID {Hodnota ID vašeho zařízení}
    IOT_DEVICE_SAS_KEY {Hodnota primárního klíče}
  5. Soubor uložte a zavřete.

Sestavení image

  1. V konzole nebo v Průzkumník souborů spusťte dávkový soubor rebuild.bat na následující cestě k sestavení image:

    začínáme\STMicroelectronics\B-L475E-IOT01A\tools\rebuild.bat

  2. Po dokončení sestavení ověřte, že se binární soubor vytvořil v následující cestě:

    začínáme\STMicroelectronics\B-L475E-IOT01A\build\app\stm32l475_azure_iot.bin

Blikající obrázek

  1. Na STM DevKit MCU vyhledejte tlačítko Obnovit (1), port Micro USB (2), který je označen USB STLink a číslo dílu desky (3). Tyto položky najdete v dalších krocích. Všechny jsou zvýrazněné na následujícím obrázku:

    Fotka znázorňující klíčové komponenty na panelu STM DevKit

  2. Připojení kabel Micro USB na Port USB STLINK v sadě STM DevKit a pak ho připojte k počítači.

    Poznámka:

    Podrobné informace o nastavení sady STM DevKit najdete v pokynech k balení nebo najdete v materiálech B-L475E-IOT01A.

  3. V Průzkumník souborů vyhledejte binární soubory, které jste vytvořili v předchozí části.

  4. Zkopírujte binární soubor s názvem stm32l475_azure_iot.bin.

  5. V Průzkumník souborů vyhledejte sadu STM Devkit, která je připojená k vašemu počítači. Zařízení se zobrazí jako jednotka v systému s popiskem jednotky DIS_L4IOT.

  6. Vložte binární soubor do kořenové složky sady STM Devkit. Blikání se spustí automaticky a dokončí se za několik sekund.

    Poznámka:

    Během blikajícího procesu přepíná indikátor LED mezi červenou a zelenou barvou sady STM DevKit.

Potvrzení podrobností o připojení zařízení

Pomocí aplikace Termite můžete monitorovat komunikaci a ověřit, že je vaše zařízení správně nastavené.

  1. Spusťte termite.

    Tip

    Pokud se vám nedaří připojit Termite k devkitu, nainstalujte ovladač ST-LINK a zkuste to znovu. Další kroky najdete v tématu Řešení potíží.

  2. Vyberte Nastavení.

  3. V dialogovém okně Nastavení sériového portu zkontrolujte následující nastavení a v případě potřeby aktualizujte:

    • Přenosová rychlost: 115 200
    • Port: Port, ke kterému je sada STM DevKit připojená. Pokud v rozevíracím seznamu existuje více možností portu, najdete správný port, který se má použít. Otevřete windows Správce zařízení a zobrazte porty a určete, který port se má použít.

    Snímek obrazovky s nastavením sériového portu v aplikaci Termite

  4. Vyberte OK.

  5. Na zařízení stiskněte tlačítko Obnovit. Tlačítko je černé a je označené na zařízení.

  6. V aplikaci Termite zkontrolujte následující hodnoty kontrolních bodů a ověřte, že je zařízení inicializované a připojené k 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
    

    Důležité

    Pokud inicializace klienta DNS selže a upozorní vás, že firmware Wi-Fi je zastaralý, budete muset aktualizovat firmware modulu Wi-Fi. Stáhněte a nainstalujte aktualizaci firmwaru modulu Wi-Fi Inventek ISM 43362. Potom stisknutím tlačítka Obnovit na zařízení znovu zkontrolujte připojení a pokračujte v tomto kurzu.

Nechte Termite otevřený pro monitorování výstupu zařízení v následujících krocích.

Zobrazení vlastností zařízení

Pomocí Azure IoT Exploreru můžete zobrazit a spravovat vlastnosti vašich zařízení. V následujících částech použijete možnosti technologie Plug and Play, které jsou viditelné v IoT Exploreru, ke správě a interakci s sadu STM DevKit. Tyto funkce spoléhají na model zařízení publikovaný pro sadu STM DevKit v úložišti veřejného modelu. IoT Explorer jste nakonfigurovali tak, aby v tomto úložišti hledali modely zařízení dříve v tomto kurzu. V mnoha případech můžete provést stejnou akci bez použití modulu plug and play výběrem možností nabídky IoT Exploreru. Použití modulu plug-and play ale často poskytuje vylepšené prostředí. IoT Explorer může číst model zařízení určený zařízením plug and play a prezentovat informace specifické pro dané zařízení.

Přístup k komponentám technologie Plug and Play IoT pro zařízení v IoT Exploreru:

  1. V domovském zobrazení v IoT Exploreru vyberte IoT Hubs a pak vyberte Zobrazit zařízení v tomto centru.

  2. Vyberte své zařízení.

  3. Vyberte komponenty technologie Plug and Play IoT.

  4. Vyberte Výchozí komponentu. IoT Explorer zobrazí komponenty ioT technologie Plug and Play implementované na vašem zařízení.

    Snímek obrazovky s výchozí komponentou STM DevKit v IoT Exploreru

  5. Na kartě Rozhraní zobrazte obsah JSON v popisu modelu zařízení. Json obsahuje podrobnosti konfigurace pro každou komponentu technologie Plug and Play IoT v modelu zařízení.

    Poznámka:

    Název a popis výchozí komponenty odkazují na panel STM L4S5. Model zařízení STM L4S5 plug and play se používá také pro desku STM L475E v tomto kurzu.

    Každá karta v IoT Exploreru odpovídá jedné ze součástí technologie Plug and Play IoT v modelu zařízení.

    Tab Typ Název Popis
    Rozhraní Rozhraní STM Getting Started Guide Ukázkový model sady STM DevKit
    Vlastnosti (jen pro čtení) Vlastnost ledState Bez ohledu na to, jestli je vedení zapnuté nebo vypnuté
    Vlastnosti (zapisovatelné) Vlastnost telemetryInterval Interval, který zařízení odesílá telemetrii
    Příkazy Příkaz setLedState Zapnutí nebo vypnutí indikátoru LED

Zobrazení vlastností zařízení pomocí Azure IoT Exploreru:

  1. Vyberte kartu Vlastnosti (jen pro čtení). Existuje jedna vlastnost určená jen pro čtení, která označuje, jestli je indikátor zapnutý nebo vypnutý.

  2. Vyberte kartu Vlastnosti (zapisovatelné). Zobrazí interval odeslání telemetrie.

  3. telemetryInterval Změňte hodnotu na 5 a pak vyberte Aktualizovat požadovanou hodnotu. Vaše zařízení teď používá tento interval k odesílání telemetrie.

    Snímek obrazovky s nastavením intervalu telemetrie v sadě STM DevKit v IoT Exploreru

  4. IoT Explorer odpoví oznámením. Můžete také sledovat aktualizaci v termite.

  5. Nastavte interval telemetrie zpět na 10.

Použití Azure CLI k zobrazení vlastností zařízení:

  1. Spusťte příkaz az iot hub device-twin show.

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Zkontrolujte vlastnosti vašeho zařízení ve výstupu konzoly.

Zobrazení telemetrických dat

Pomocí Azure IoT Exploreru můžete zobrazit tok telemetrie ze zařízení do cloudu. Volitelně můžete stejnou úlohu provést pomocí Azure CLI.

Zobrazení telemetrie v Azure IoT Exploreru:

  1. V podokně Komponenty technologie Plug and Play IoT (výchozí komponenta) vašeho zařízení v IoT Exploreru vyberte kartu Telemetrie. Ověřte, že je integrované centrum událostí nastavené na Ano.

  2. Vyberte Spustit.

  3. Zobrazte telemetrii, když zařízení odesílá zprávy do cloudu.

    Snímek obrazovky s telemetrií zařízení v IoT Exploreru

    Poznámka:

    Telemetrii ze zařízení můžete také monitorovat pomocí aplikace Termite.

  4. Zaškrtněte políčko Zobrazit modelované události a zobrazte události ve formátu dat určeném modelem zařízení.

    Snímek obrazovky s modelovanými telemetrickými událostmi v IoT Exploreru

  5. Vyberte Zastavit a ukončete příjem událostí.

Použití Azure CLI k zobrazení telemetrie zařízení:

  1. Spusťte příkaz az iot hub monitor-events. Použijte názvy, které jste vytvořili dříve v Azure IoT pro vaše zařízení a Centrum IoT.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Zobrazte výstup JSON v konzole.

    {
        "event": {
            "origin": "mydevice",
            "module": "",
            "interface": "dtmi:eclipsethreadx:devkit:gsgmxchip;1",
            "component": "",
            "payload": "{\"humidity\":41.21,\"temperature\":31.37,\"pressure\":1005.18}"
        }
    }
    
  3. Výběrem kombinace kláves CTRL+C ukončíte monitorování.

Volání přímé metody na zařízení

Pomocí Azure IoT Exploreru můžete také volat přímou metodu, kterou jste na svém zařízení implementovali. Přímé metody mají název a můžou volitelně mít datovou část JSON, konfigurovatelné připojení a časový limit metody. V této části zavoláte metodu, která zapne nebo vypne indikátor LED. Volitelně můžete stejnou úlohu provést pomocí Azure CLI.

Volání metody v Azure IoT Exploreru:

  1. V podokně Komponenty technologie Plug and Play IoT (výchozí komponenta) pro vaše zařízení v IoT Exploreru vyberte kartu Příkazy.

  2. Pro příkaz setLedState nastavte stav na true.

  3. Vyberte příkaz Odeslat. V IoT Exploreru by se mělo zobrazit oznámení a zelené led světlo na zařízení by mělo být zapnuté.

    Snímek obrazovky volání metody setLedState v IoT Exploreru

  4. Nastavte stav na false a pak vyberte Příkaz Odeslat. Indikátor LED by měl být vypnutý.

  5. Volitelně můžete zobrazit výstup v termite a monitorovat stav metod.

Použití Azure CLI k volání metody:

  1. Spusťte příkaz az iot hub invoke-device-method a zadejte název metody a datovou část. Pro tuto metodu nastavíte method-payloadtrue zapnutí indikátoru LED a jeho nastavení tak, aby false se vypnulo.

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

    Konzola rozhraní příkazového řádku zobrazuje stav volání metody na zařízení, kde 204 značí úspěch.

    {
        "payload": {},
        "status": 200
    }
    
  2. Zkontrolujte své zařízení a potvrďte stav LED.

  3. Zobrazte terminál Termite a potvrďte výstupní zprávy:

    Received command: setLedState
        Payload: true
        LED is turned ON
    Sending property: $iothub/twin/PATCH/properties/reported/?$rid=15{"ledState":true}
    

Řešení problémů a ladění

Pokud máte problémy s sestavením kódu zařízení, blikajícím zařízením nebo připojením, přečtěte si téma Řešení potíží.

Ladění aplikace naleznete v tématu Ladění pomocí editoru Visual Studio Code.

Vyčištění prostředků

Pokud už prostředky Azure vytvořené v tomto rychlém startu nepotřebujete, můžete pomocí Azure CLI odstranit skupinu prostředků a všechny její prostředky.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků i všechny prostředky v ní obsažené se trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky.

Odstranění skupiny prostředků podle názvu:

  1. Spusťte příkaz az group delete. Tento příkaz odebere skupinu prostředků, IoT Hub a registraci zařízení, kterou jste vytvořili.

    az group delete --name MyResourceGroup
    
  2. Spuštěním příkazu az group list potvrďte odstranění skupiny prostředků.

    az group list
    

Další krok

V tomto kurzu jste vytvořili vlastní image, která obsahuje ukázkový kód Eclipse ThreadX, a pak jste obrázek blikli na zařízení STM DevKit. Připojili jste sadu STM DevKit k Azure a provedli jste úlohy, jako je zobrazení telemetrie a volání metody na zařízení.

V dalším kroku se podívejte na následující článek, kde najdete další informace o možnostech integrovaného vývoje.

Důležité

Eclipse ThreadX poskytuje OEM s komponentami pro zabezpečení komunikace a vytváření kódu a izolace dat pomocí základních mechanismů hardwarové ochrany MCU/MPU. Každý výrobce OEM je ale nakonec zodpovědný za zajištění toho, aby jejich zařízení splňovalo měnící se požadavky na zabezpečení.