Oktatóanyag: MXCHIP AZ3166 devkit csatlakoztatása az IoT Hubhoz az Eclipse ThreadX használatával
Ebben az oktatóanyagban az Eclipse ThreadX használatával csatlakoztat egy MXCHIP AZ3166 IoT DevKitet (mostantól MXCHIP DevKit) az Azure IoT-hez.
A következő feladatokat hajtja végre:
- Beágyazott fejlesztői eszközök telepítése az MXChip DevKit C-ben való programozásához
- Kép létrehozása és felvillanása az MXCHIP DevKitre
- Az Azure CLI használatával olyan Azure IoT Hubot hozhat létre és kezelhet, amelyhez az MXCHIP DevKit biztonságosan csatlakozik
- Az Azure IoT Explorer használatával regisztrálhat egy eszközt az IoT Hubon, megtekintheti az eszköz tulajdonságait, megtekintheti az eszköz telemetriáját, és közvetlen parancsokat hívhat meg az eszközön
Előfeltételek
Windows 10-et vagy Windows 11-et futtató számítógép
Aktív Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Git az adattár klónozásához
Azure parancssori felület (CLI). Ebben az oktatóanyagban két lehetősége van az Azure CLI-parancsok futtatására:
- Használja az Azure Cloud Shellt, amely egy interaktív rendszerhéj, amely parancssori felületi parancsokat futtat a böngészőben. Ez a beállítás azért ajánlott, mert nem kell semmit telepítenie. Ha először használja a Cloud Shellt, jelentkezzen be az Azure Portalra. Kövesse a Cloud Shell rövid útmutatójának lépéseit a Cloud Shell elindításához és a Bash-környezet kiválasztásához.
- Igény szerint futtassa az Azure CLI-t a helyi gépen. Ha az Azure CLI már telepítve van, futtassa
az upgrade
a parancssori felület és a bővítmények frissítését az aktuális verzióra. Az Azure CLI telepítéséhez lásd az Azure CLI telepítését.
Hardver
- Az MXCHIP AZ3166 IoT DevKit (MXCHIP DevKit)
- Wi-Fi 2,4 GHz
- USB 2.0 A férfi és a Micro USB férfi kábel
A fejlesztési környezet előkészítése
A fejlesztői környezet beállításához először klónoznia kell egy GitHub-adattárat, amely tartalmazza az oktatóanyaghoz szükséges összes eszközt. Ezután programozási eszközöket telepít.
Az adattár klónozása
Klónozza az alábbi adattárat a dokumentáció összes eszközkódjának, beállítási szkriptjének és offline verziójának letöltéséhez. Ha korábban klónozta ezt az adattárat egy másik oktatóanyagban, nem kell újra elvégeznie.
Az adattár klónozásához futtassa a következő parancsot:
git clone --recursive https://github.com/eclipse-threadx/getting-started.git
Az eszközök telepítése
A klónozott adattár egy telepítőszkriptet tartalmaz, amely telepíti és konfigurálja a szükséges eszközöket. Ha ezeket az eszközöket egy másik beágyazott eszköz oktatóanyagában telepítette, nem kell újra elvégeznie.
Feljegyzés
A beállítási szkript a következő eszközöket telepíti:
Az eszközök telepítése:
Lépjen a következő elérési útra az adattárban, és futtassa a get-toolchain.bat nevű telepítőszkriptet:
első lépések\tools\get-toolchain.bat
Nyisson meg egy új konzolablakot a beállítási szkript által végrehajtott konfigurációs módosítások felismeréséhez. Ezzel a konzollal elvégezheti az oktatóanyag többi programozási feladatát. Használhatja a Windows CMD-t, a PowerShellt vagy a Git Basht Windowshoz.
Futtassa a következő kódot annak ellenőrzéséhez, hogy a CMake 3.14-es vagy újabb verziója telepítve van-e.
cmake --version
A felhőösszetevők létrehozása
IoT Hub létrehozása
Az Azure CLI használatával létrehozhat egy IoT Hubot, amely kezeli az eszköz eseményeit és üzenetkezelését.
IoT Hub létrehozása:
Indítsa el a CLI-alkalmazást. A parancssori felület parancsainak a rövid útmutató további részében való futtatásához másolja ki a parancs szintaxisát, illessze be a PARANCSSOR-alkalmazásba, szerkessze a változóértékeket, és nyomja le az Enter billentyűt.
- Ha Cloud Shellt használ, kattintson a jobb gombbal a Cloud Shell hivatkozására, és válassza ki azt a lehetőséget, hogy megnyíljon egy új lapon.
- Ha helyileg használja az Azure CLI-t, indítsa el a CLI-konzolalkalmazást, és jelentkezzen be az Azure CLI-be.
Futtassa az az extension add parancsot az azure-iot bővítmény telepítéséhez vagy frissítéséhez az aktuális verzióra.
az extension add --upgrade --name azure-iot
Futtassa az az group create parancsot egy erőforráscsoport létrehozásához. A következő parancs létrehoz egy MyResourceGroup nevű erőforráscsoportot a centralus régióban.
Feljegyzés
Igény szerint másikat is beállíthat
location
. Az elérhető helyek megtekintéséhez futtassa az az account list-locations parancsot.az group create --name MyResourceGroup --location centralus
Futtassa az az iot hub create parancsot egy IoT Hub létrehozásához. Az IoT Hub létrehozása eltarthat néhány percig.
YourIotHubName. Cserélje le ezt a helyőrzőt a kódban az IoT Hubhoz választott névre. Az IoT Hub nevének globálisan egyedinek kell lennie az Azure-ban. Ez a helyőrző a rövid útmutató többi részében az egyedi IoT Hub-nevet jelöli.
A
--sku F1
paraméter létrehozza az IoT Hubot az ingyenes szinten. Az ingyenes szintű központok korlátozott funkciókészlettel rendelkeznek, és a koncepcióalkalmazások ellenőrzésére szolgálnak. Az IoT Hub szintjeiről, funkcióiról és díjszabásáról további információt az Azure IoT Hub díjszabásában talál.az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
Az IoT Hub létrehozása után tekintse meg a konzol JSON-kimenetét, és másolja a
hostName
használni kívánt értéket egy későbbi lépésben. AzhostName
érték a következő példához hasonlóan néz ki:{Your IoT hub name}.azure-devices.net
Az IoT Explorer konfigurálása
A rövid útmutató további részében az IoT Explorer használatával regisztrálhat egy eszközt az IoT Hubon, megtekintheti az eszköz tulajdonságait és telemetriáját, és parancsokat küldhet az eszköznek. Ebben a szakaszban úgy konfigurálja az IoT Explorert, hogy csatlakozzon a létrehozott IoT Hubhoz, és hogy beolvassa a plug and play modelleket a nyilvános modell adattárából.
Kapcsolat hozzáadása az IoT Hubhoz:
Telepítse az Azure IoT Explorert. Ez az eszköz egy platformfüggetlen segédprogram az Azure IoT-erőforrások monitorozásához és kezeléséhez.
A CLI-alkalmazásban futtassa az az iot hub connection-string show parancsot az IoT Hub kapcsolati sztring lekéréséhez.
az iot hub connection-string show --hub-name {YourIoTHubName}
Másolja a kapcsolati sztring a környező idézőjelek nélkül.
Az Azure IoT Explorerben válassza az IoT Hubs lehetőséget a bal oldali menüben.
Válassza a + Kapcsolat hozzáadása lehetőséget.
Illessze be a kapcsolati sztring a Kapcsolati sztring mezőbe.
Válassza a Mentés lehetőséget.
Ha a kapcsolat sikeres, az IoT Explorer az Eszközök nézetre vált.
A nyilvános modell adattárának hozzáadása:
Az IoT Explorerben válassza a Kezdőlap lehetőséget a kezdőlap nézethez való visszatéréshez.
A bal oldali menüben válassza az IoT Plug and Play beállításai lehetőséget.
Győződjön meg arról, hogy van egy meglévő nyilvános adattárbejegyzés a következő végponttal
https://devicemodels.azure.com
: .Feljegyzés
Ha nincs bejegyzés a nyilvános adattárban, válassza a +Hozzáadás lehetőséget, válassza a Nyilvános adattár lehetőséget a legördülő menüből, adja meg a végpont értékét, majd válassza a
https://devicemodels.azure.com
Mentés lehetőséget.A nyilvános adattár befejezett bejegyzése a következő képernyőképhez hasonlóan néz ki:
Eszköz regisztrálása
Ebben a szakaszban létrehoz egy új eszközpéldányt, és regisztrálja azt a létrehozott IoT Hubon. Az újonnan regisztrált eszköz kapcsolati adataival biztonságosan csatlakoztathatja a fizikai eszközt egy későbbi szakaszban.
Eszköz regisztrálása:
Az IoT Explorer kezdőlap nézetében válassza az IoT Hubs lehetőséget.
A korábban hozzáadott kapcsolatnak meg kell jelennie. Válassza az Eszközök megtekintése a központban a kapcsolat tulajdonságai alatt lehetőséget.
Válassza az + Új lehetőséget, és adjon meg egy eszközazonosítót, például
mydevice
. Az összes többi tulajdonságot hagyja változatlanul.Válassza a Létrehozás lehetőséget.
A másolási gombokkal másolja ki az eszközazonosító és az elsődleges kulcs mezőit.
Mielőtt továbblép a következő szakaszra, mentse az alábbi értékek mindegyikét a korábbi lépésekből egy biztonságos helyre. Ezeket az értékeket a következő szakaszban az eszköz konfigurálásához használhatja.
hostName
deviceId
primaryKey
Az eszköz előkészítése
Az MXCHIP DevKit Azure-hoz való csatlakoztatásához módosítsa a Wi-Fi- és az Azure IoT-beállítások konfigurációs fájlját, építse újra a lemezképet, és villogtasson a rendszerképet az eszközön.
Konfiguráció hozzáadása
Nyissa meg a következő fájlt egy szövegszerkesztőben:
első lépések\MXChip\AZ3166\app\azure_config.h
Az alábbi sor megjegyzése a fájl tetején, az ábrán látható módon:
// #define ENABLE_DPS
Állítsa be a Wi-Fi-állandókat a következő értékekre a helyi környezetből.
Állandó neve Érték WIFI_SSID
{Saját Wi-Fi SSID} WIFI_PASSWORD
{Az Ön Wi-Fi-jelszava} WIFI_MODE
{A számbavételi Wi-Fi mód egyik értéke a fájlban} Állítsa az Azure IoT eszközinformációs állandóit az Azure-erőforrások létrehozása után mentett értékekre.
Állandó neve Érték IOT_HUB_HOSTNAME
{A gazdagépnév értéke} IOT_HUB_DEVICE_ID
{Az eszközazonosító értéke} IOT_DEVICE_SAS_KEY
{Az elsődleges kulcs értéke} Mentse és zárja be a fájlt.
Rendszerkép létrehozása
A rendszerkép létrehozásához futtassa a rebuild.bat szkriptet a konzolon vagy a Fájlkezelő:
első lépések\MXChip\AZ3166\tools\rebuild.bat
A build befejezése után győződjön meg arról, hogy a bináris fájl a következő elérési úton lett létrehozva:
első lépések\MXChip\AZ3166\build\app\mxchip_azure_iot.bin
A kép villogása
Az MXCHIP DevKiten keresse meg az Alaphelyzetbe állítás gombot és a Micro USB-portot. Ezeket az összetevőket a következő lépésekben használhatja. Mindkettő ki van emelve a következő képen:
Csatlakoztassa a Micro USB-kábelt az MXCHIP DevKit micro USB-portjához, majd csatlakoztassa a számítógéphez.
Az Fájlkezelő keresse meg az előző szakaszban létrehozott bináris fájlt.
Másolja ki a bináris fájl mxchip_azure_iot.bin.
A Fájlkezelő keresse meg a számítógéphez csatlakoztatott MXCHIP DevKit eszközt. Az eszköz az AZ3166 meghajtócímkével rendelkező meghajtóként jelenik meg a rendszeren.
Illessze be a bináris fájlt az MXCHIP Devkit gyökérmappájába. A villogás automatikusan elindul, és néhány másodperc alatt befejeződik.
Feljegyzés
A villogó folyamat során az MXCHIP DevKit zöld LED-kapcsolói.
Eszközkapcsolat részleteinek megerősítése
A Termite alkalmazással figyelheti a kommunikációt, és ellenőrizheti, hogy az eszköz megfelelően van-e beállítva.
Indítsa el a Termite-et.
Tipp.
Ha nem tudja csatlakoztatni a Termite-et a devkithez, telepítse az ST-LINK illesztőprogramot , és próbálkozzon újra. További lépésekért tekintse meg a hibaelhárítást .
Válassza a Beállítások lehetőséget.
A Soros port beállításai párbeszédpanelen ellenőrizze a következő beállításokat, és szükség esetén frissítsen:
- Átviteli sebesség: 115 200
- Port: Az a port, amelyhez az MXCHIP DevKit csatlakoztatva van. Ha a legördülő menüben több portbeállítás is található, megtalálhatja a megfelelő portot. Nyissa meg a Windows Eszközkezelő, és tekintse meg a portokat a használni kívánt port azonosításához.
Kattintson az OK gombra.
Nyomja le az Eszköz Alaphelyzetbe állítása gombját. A gomb címkével van ellátva az eszközön, és a Micro USB-összekötő közelében található.
A Termite alkalmazásban ellenőrizze az alábbi ellenőrzőpont-értékeket annak ellenőrzéséhez, hogy az eszköz inicializálva van-e, és csatlakozik-e az Azure IoT-hez.
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}.
Tartsa nyitva a Termite-et az eszköz kimenetének figyeléséhez az alábbi lépésekben.
Eszköztulajdonságok megtekintése
Az Azure IoT Explorerrel megtekintheti és kezelheti az eszközök tulajdonságait. Ebben a szakaszban és a következő szakaszokban az IoT Explorerben megjelenő Plug and Play képességeket használja az MXCHIP DevKit kezeléséhez és kezeléséhez. Ezek a képességek az MXCHIP DevKit nyilvános modell adattárában közzétett eszközmodellre támaszkodnak. Az IoT Explorert úgy konfigurálta, hogy az oktatóanyag korábbi részében eszközmodelleket keressen az adattárban. Az IoT Explorer eszközpaneljének bal oldali menüjében a művelet kiválasztásával számos műveletet hajthat végre plug and play használata nélkül. A plug and play használata azonban gyakran továbbfejlesztett élményt nyújt. Az IoT Explorer beolvassa a plug and play eszköz által megadott eszközmodellt, és be tudja mutatni az adott eszközre vonatkozó információkat.
Az eszköz IoT Plug and Play-összetevőinek elérése az IoT Explorerben:
Az IoT Explorer otthoni nézetében válassza az IoT Hubok lehetőséget, majd válassza az Eszközök megtekintése lehetőséget ebben a központban.
Válassza ki az eszközt.
Válassza ki az IoT Plug and Play-összetevőket.
Válassza az Alapértelmezett összetevő lehetőséget. Az IoT Explorer megjeleníti az eszközön implementált IoT Plug and Play-összetevőket.
A Felület lapon tekintse meg a JSON-tartalmat az eszközmodell leírásában. A JSON az eszközmodell minden IoT Plug and Play-összetevőjének konfigurációs adatait tartalmazza.
Az IoT Explorer minden lapja megfelel az eszközmodell IoT Plug and Play-összetevőinek.
Lap Típus Név Leírás Interfész Interfész MXCHIP Getting Started Guide
Példamodell az MXCHIP DevKithez Tulajdonságok (írásvédett) Tulajdonság ledState
A LED aktuális állapota Tulajdonságok (írható) Tulajdonság telemetryInterval
Az az időköz, amelyet az eszköz telemetriát küld Parancsok Parancs setLedState
A LED be- vagy kikapcsolása
Eszköztulajdonságok megtekintése az Azure IoT Explorerrel:
Válassza a Tulajdonságok (írható) lapot. Megjeleníti a telemetriai adatok küldésének időközét.
Módosítsa az
telemetryInterval
5 értékre, majd válassza a Kívánt érték frissítése lehetőséget. Az eszköz most ezt az időközt használja a telemetriai adatok küldéséhez.Az IoT Explorer egy értesítéssel válaszol. A frissítést a Termite-ben is megfigyelheti.
Állítsa vissza a telemetriai időközt 10-re.
Az Azure CLI használata az eszköztulajdonságok megtekintéséhez:
Futtassa az az iot hub device-twin show parancsot.
az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
Ellenőrizze az eszköz tulajdonságait a konzol kimenetében.
Telemetria megtekintése
Az Azure IoT Explorerrel megtekintheti az eszközről a felhőbe irányuló telemetriai folyamatokat. Igény szerint ugyanezt a feladatot az Azure CLI-vel is elvégezheti.
Telemetria megtekintése az Azure IoT Explorerben:
Az IoT Plug and Play-összetevők (alapértelmezett összetevő) panelen válassza az IoT Explorerben a Telemetria lapot. Győződjön meg arról, hogy a beépített eseményközpont használata igen értékre van állítva.
Válassza az Indítás lehetőséget .
Tekintse meg a telemetriát, amikor az eszköz üzeneteket küld a felhőbe.
Feljegyzés
Az eszköz telemetriáját a Termite alkalmazással is monitorozhatja.
A modellezett események megjelenítése jelölőnégyzet bejelölésével megtekintheti az eseményeket az eszközmodell által megadott adatformátumban.
Válassza a Leállítás gombra az események fogadásának befejezéséhez.
Az Azure CLI használata az eszköz telemetriájának megtekintéséhez:
Futtassa az az iot hub monitor-events parancsot. Használja a korábban az Azure IoT-ben az eszközhöz és az IoT Hubhoz létrehozott neveket.
az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
A JSON-kimenet megtekintése a konzolon.
{ "event": { "origin": "mydevice", "module": "", "interface": "dtmi:eclipsethreadx:devkit:gsgmxchip;1", "component": "", "payload": "{\"humidity\":41.21,\"temperature\":31.37,\"pressure\":1005.18}" } }
Válassza a CTRL+C billentyűkombinációt a figyelés befejezéséhez.
Közvetlen metódus meghívása az eszközön
Az Azure IoT Explorer használatával is meghívhat egy, az eszközön implementált közvetlen metódust. A közvetlen metódusoknak van egy neve, és opcionálisan JSON hasznos adatokkal, konfigurálható kapcsolattal és metódus-időtúllépéssel is rendelkezhetnek. Ebben a szakaszban egy olyan metódust hív meg, amely be- vagy kikapcsol egy LED-et. Igény szerint ugyanezt a feladatot az Azure CLI-vel is elvégezheti.
Metódus meghívása az Azure IoT Explorerben:
Az IoT Explorerben az eszköz IoT Plug and Play-összetevőinek (Alapértelmezett összetevő) paneljén válassza a Parancsok lapot.
A setLedState parancs esetében állítsa az állapotot igaz értékre.
Válassza a Küldés parancsot. Az IoT Explorerben egy értesítésnek kell megjelennie, és az eszköz sárga felhasználói LED-fényének be kell kapcsolnia.
Állítsa az állapotot hamisra, majd válassza a Küldés parancsot. A sárga felhasználói LED-nek ki kell kapcsolnia.
Ha szeretné, megtekintheti a kimenetet a Termite-ben a metódusok állapotának figyeléséhez.
Metódus meghívása az Azure CLI használatával:
Futtassa az az iot hub invoke-device-method parancsot, és adja meg a metódus nevét és hasznos adatait. Ehhez a módszerhez
true
kapcsoljamethod-payload
be a LED-et, és állítsafalse
ki.az iot hub invoke-device-method --device-id mydevice --method-name setLedState --method-payload true --hub-name {YourIoTHubName}
A CLI-konzol megjeleníti a metódushívás állapotát az eszközön, amely
204
a sikerességet jelzi.{ "payload": {}, "status": 200 }
Ellenőrizze az eszközt a LED állapotának megerősítéséhez.
Tekintse meg a Termite terminált a kimeneti üzenetek megerősítéséhez:
Receive direct method: setLedState Payload: true LED is turned ON Device twin property sent: {"ledState":true}
Hibaelhárítás és hibakeresés
Ha problémákat tapasztal az eszközkód létrehozása, az eszköz villogása vagy a csatlakozás során, tekintse meg a hibaelhárítást.
Az alkalmazás hibakereséséhez lásd a Visual Studio Code hibakeresését.
Az erőforrások eltávolítása
Ha már nincs szüksége az ebben a rövid útmutatóban létrehozott Azure-erőforrásokra, az Azure CLI használatával törölheti az erőforráscsoportot és annak összes erőforrását.
Fontos
Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne foglalt erőforrások véglegesen törlődnek. Figyeljen arra, hogy ne töröljön véletlenül erőforráscsoportot vagy erőforrásokat.
Erőforráscsoport törlése név alapján:
Futtassa az az group delete parancsot. Ez a parancs eltávolítja az erőforráscsoportot, az IoT Hubot és a létrehozott eszközregisztrációt.
az group delete --name MyResourceGroup
Futtassa az az group list parancsot az erőforráscsoport törlésének megerősítéséhez.
az group list
Következő lépések
Ebben az oktatóanyagban létrehozott egy egyéni rendszerképet, amely Eclipse ThreadX-mintakódot tartalmaz, majd felvillantotta a képet az MXCHIP DevKit eszközre. Az Azure CLI és/vagy az IoT Explorer használatával azure-erőforrásokat is létrehozott, biztonságosan csatlakoztatta az MXCHIP DevKitet az Azure-hoz, telemetria megtekintésére és üzenetek küldésére.
A következő lépésként tekintse meg a következő cikket, amelyből többet is megtudhat a beágyazott fejlesztési lehetőségekről.
Az Eclipse ThreadX összetevőket biztosít az OEM-eknek a kommunikáció biztonságossá tételéhez, valamint a mögöttes MCU/MPU hardvervédelmi mechanizmusok használatával történő kód- és adatelkülönítés létrehozásához. Azonban minden oem végső soron felelős annak biztosításáért, hogy az eszköz megfeleljen a folyamatosan változó biztonsági követelményeknek.