Kurz: Připojení sady MXCHIP AZ3166 devkit ke službě IoT Hub pomocí Eclipse ThreadX
V tomto kurzu použijete Eclipse ThreadX k připojení sady MXCHIP AZ3166 IoT DevKit (od této chvíle MXCHIP DevKit) k Azure IoT.
Provedete následující úkoly:
- Instalace sady integrovaných vývojových nástrojů pro programování sady MXChip DevKit v jazyce C
- Sestavení image a jeho flash na MXCHIP DevKit
- Použití Azure CLI k vytvoření a správě centra Azure IoT, ke kterému se MXCHIP 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 MXCHIP AZ3166 IoT DevKit (MXCHIP 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:
Instalace nástrojů:
V úložišti přejděte na následující cestu a spusťte instalační skript s názvem get-toolchain.bat:
getting-started\tools\get-toolchain.bat
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.
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:
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.
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
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
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
Po vytvoření centra IoT zobrazte výstup JSON v konzole a zkopírujte
hostName
hodnotu, kterou použijete v pozdějším kroku. HodnotahostName
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:
Nainstalujte Azure IoT Explorer. Tento nástroj je multiplatformní nástroj pro monitorování a správu prostředků Azure IoT.
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}
Zkopírujte připojovací řetězec bez okolních uvozovek.
V Azure IoT Exploreru vyberte v levé nabídce službu IoT Hubs .
Vyberte + Add connection (Přidat připojení).
Vložte připojovací řetězec do pole Připojovací řetězec.
Zvolte Uložit.
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:
V IoT Exploreru se výběrem možnosti Domů vraťte do domovského zobrazení.
V nabídce vlevo vyberte Nastavení technologie Plug and Play IoT.
Ověřte, že existuje položka veřejného úložiště s koncovým bodem
https://devicemodels.azure.com
.Poznámka:
Pokud není k dispozici položka veřejného úložiště, vyberte +Přidat, v rozevírací nabídce vyberte Veřejné úložiště , zadejte hodnotu koncového
https://devicemodels.azure.com
bodu a pak vyberte Uložit.Dokončená položka veřejného úložiště vypadá jako na následujícím snímku obrazovky:
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í:
V domovském zobrazení v IoT Exploreru vyberte IoT Hubs.
Mělo by se zobrazit připojení, které jste přidali dříve. Pod vlastnostmi připojení vyberte Zobrazit zařízení v tomto centru .
Vyberte + Nový a zadejte ID zařízení pro vaše zařízení,
mydevice
například . Ponechte všechny ostatní vlastnosti stejné.Vyberte Vytvořit.
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 MXCHIP DevKit k Azure, upravíte konfigurační soubor pro nastavení Wi-Fi a Azure IoT, znovu sestavíte image a blikáte image do zařízení.
Přidání konfigurace
V textovém editoru otevřete následující soubor:
začínáme\MXChip\AZ3166\app\azure_config.h
Zakomentujte následující řádek v horní části souboru, jak je znázorněno:
// #define ENABLE_DPS
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} 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 vašeho názvu hostitele} IOT_HUB_DEVICE_ID
{Hodnota ID vašeho zařízení} IOT_DEVICE_SAS_KEY
{Hodnota primárního klíče} Soubor uložte a zavřete.
Sestavení image
V konzole nebo v Průzkumník souborů spusťte skript rebuild.bat na následující cestě k sestavení image:
Začínáme\MXChip\AZ3166\tools\rebuild.bat
Po dokončení sestavení ověřte, že se binární soubor vytvořil v následující cestě:
začínáme\MXChip\AZ3166\build\app\mxchip_azure_iot.bin
Blikající obrázek
V sadě MXCHIP DevKit vyhledejte tlačítko Obnovit a port Micro USB. Tyto komponenty použijete v následujících krocích. Obě jsou zvýrazněné na následujícím obrázku:
Připojte kabel Micro USB k portu Micro USB na MXCHIP DevKitu a pak ho připojte k počítači.
V Průzkumník souborů vyhledejte binární soubor, který jste vytvořili v předchozí části.
Zkopírujte binární soubor mxchip_azure_iot.bin.
V Průzkumník souborů vyhledejte zařízení MXCHIP DevKit připojené k počítači. Zařízení se zobrazí jako jednotka v systému s popiskem jednotky AZ3166.
Vložte binární soubor do kořenové složky sady MXCHIP Devkit. Blikání se spustí automaticky a dokončí se za několik sekund.
Poznámka:
Během blikajícího procesu přepíná zelená led dioda na MXCHIP 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é.
Spusťte termite.
Vyberte Nastavení.
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 váš MXCHIP 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.
Vyberte OK.
Na zařízení stiskněte tlačítko Obnovit. Tlačítko je označeno na zařízení a nachází se v blízkosti konektoru Micro USB.
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 MAC address: ****************** SUCCESS: WiFi initialized Connecting WiFi Connecting to SSID 'iot' Attempt 1... SUCCESS: WiFi connected Initializing DHCP IP address: 192.168.0.49 Mask: 255.255.255.0 Gateway: 192.168.0.1 SUCCESS: DHCP initialized Initializing DNS client DNS address: 192.168.0.1 SUCCESS: DNS client initialized Initializing SNTP time sync SNTP server 0.pool.ntp.org SNTP time update: Jan 4, 2023 22:57:32.658 UTC SUCCESS: SNTP initialized Initializing Azure IoT Hub client Hub hostname: ***.azure-devices.net Device id: mydevice Model id: dtmi:eclipsethreadx:devkit:gsgmxchip;2 SUCCESS: Connected to IoT Hub Receive properties: {"desired":{"$version":1},"reported":{"deviceInformation":{"__t":"c","manufacturer":"MXCHIP","model":"AZ3166","swVersion":"1.0.0","osName":"Eclipse ThreadX","processorArchitecture":"Arm Cortex M4","processorManufacturer":"STMicroelectronics","totalStorage":1024,"totalMemory":128},"ledState":false,"telemetryInterval":{"ac":200,"av":1,"value":10},"$version":4}} Sending property: $iothub/twin/PATCH/properties/reported/?$rid=3{"deviceInformation":{"__t":"c","manufacturer":"MXCHIP","model":"AZ3166","swVersion":"1.0.0","osName":"Eclipse ThreadX","processorArchitecture":"Arm Cortex M4","processorManufacturer":"STMicroelectronics","totalStorage":1024,"totalMemory":128}} Sending property: $iothub/twin/PATCH/properties/reported/?$rid=5{"ledState":false} Sending property: $iothub/twin/PATCH/properties/reported/?$rid=7{"telemetryInterval":{"ac":200,"av":1,"value":10}} Starting Main loop Telemetry message sent: {"humidity":31.01,"temperature":25.62,"pressure":927.3}. Telemetry message sent: {"magnetometerX":177,"magnetometerY":-36,"magnetometerZ":-346.5}. Telemetry message sent: {"accelerometerX":-22.5,"accelerometerY":0.54,"accelerometerZ":1049.01}. Telemetry message sent: {"gyroscopeX":0,"gyroscopeY":0,"gyroscopeZ":0}.
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 této části a v následujících částech použijete možnosti technologie Plug and Play, které se v IoT Exploreru zobrazí ke správě a interakci s sadou MXCHIP DevKit. Tyto funkce spoléhají na model zařízení publikovaný pro sadu MXCHIP 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. Mnoho akcí můžete provádět bez použití modulu plug and play tak, že v IoT Exploreru vyberete akci z levé nabídky podokna zařízení. 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:
V domovském zobrazení v IoT Exploreru vyberte IoT Hubs a pak vyberte Zobrazit zařízení v tomto centru.
Vyberte své zařízení.
Vyberte komponenty technologie Plug and Play IoT.
Vyberte Výchozí komponentu. IoT Explorer zobrazí komponenty ioT technologie Plug and Play implementované na vašem zařízení.
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í.
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í MXCHIP Getting Started Guide
Ukázkový model sady MXCHIP DevKit Vlastnosti (jen pro čtení) Vlastnost ledState
Aktuální stav indikátoru LED 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:
Vyberte kartu Vlastnosti (zapisovatelné). Zobrazí interval odeslání telemetrie.
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.IoT Explorer odpoví oznámením. Můžete také sledovat aktualizaci v termite.
Nastavte interval telemetrie zpět na 10.
Použití Azure CLI k zobrazení vlastností zařízení:
Spusťte příkaz az iot hub device-twin show.
az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
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:
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.
Vyberte Spustit.
Zobrazte telemetrii, když zařízení odesílá zprávy do cloudu.
Poznámka:
Telemetrii ze zařízení můžete také monitorovat pomocí aplikace Termite.
Zaškrtněte políčko Zobrazit modelované události a zobrazte události ve formátu dat určeném modelem zařízení.
Vyberte Zastavit a ukončete příjem událostí.
Použití Azure CLI k zobrazení telemetrie zařízení:
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}
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}" } }
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:
V podokně Komponenty technologie Plug and Play IoT (výchozí komponenta) pro vaše zařízení v IoT Exploreru vyberte kartu Příkazy.
Pro příkaz setLedState nastavte stav na true.
Vyberte příkaz Odeslat. V IoT Exploreru by se mělo zobrazit oznámení a na zařízení by se mělo zapnout žluté světlo LED uživatele.
Nastavte stav na false a pak vyberte Příkaz Odeslat. Žlutá uživatelská dioda LED by měla být vypnutá.
Volitelně můžete zobrazit výstup v termite a monitorovat stav metod.
Použití Azure CLI k volání metody:
Spusťte příkaz az iot hub invoke-device-method a zadejte název metody a datovou část. Pro tuto metodu nastavíte
method-payload
true
zapnutí indikátoru LED a jeho nastavení tak, abyfalse
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 }
Zkontrolujte své zařízení a potvrďte stav LED.
Zobrazte terminál Termite a potvrďte výstupní zprávy:
Receive direct method: setLedState Payload: true LED is turned ON Device twin property sent: {"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:
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
Spuštěním příkazu az group list potvrďte odstranění skupiny prostředků.
az group list
Další kroky
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í MXCHIP DevKit. Také jste pomocí Azure CLI nebo IoT Exploreru vytvořili prostředky Azure, bezpečně připojili MXCHIP DevKit k Azure, zobrazili telemetrii a odesílali zprávy.
V dalším kroku se podívejte na následující článek, kde najdete další informace o možnostech integrovaného vývoje.
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í.