Oktatóanyag: Az Eclipse ThreadX használata STMicroelectronics B-L475E-IOT01A discovery kit csatlakoztatásához az IoT Hubhoz
Ebben az oktatóanyagban az Eclipse ThreadX használatával csatlakoztatja az STMicroelectronics B-L475E-IOT01A Discovery készletet (mostantól az STM DevKit) az Azure IoT-hez.
A következő feladatokat hajtja végre:
- Beágyazott fejlesztői eszközök telepítése az STM DevKit C-ben való programozásához
- Rendszerkép létrehozása és felvillanása az STM DevKitre
- Az Azure CLI használatával olyan Azure IoT Hubot hozhat létre és kezelhet, amelyhez az STM 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
- A B-L475E-IOT01A (STM 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 STM 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\STMicroelectronics\B-L475E-IOT01A\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
{Az Iot Hub hostName é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 kötegelt fájlt a konzolon vagy a Fájlkezelő:
első lépések\STMicroelectronics\B-L475E-IOT01A\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\STMicroelectronics\B-L475E-IOT01A\build\app\stm32l475_azure_iot.bin
A kép villogása
Az STM DevKit MCU-n keresse meg az Alaphelyzetbe állítás gombot (1), az USB STLink címkével ellátott Micro USB-portot (2), valamint a tábla cikkszámát (3). Ezekre az elemekre a következő lépésekben fog hivatkozni. Mindegyik ki van emelve a következő képen:
Csatlakoztassa a Micro USB-kábelt az STM DevKit USB STLINK-portjához , majd csatlakoztassa a számítógéphez.
Feljegyzés
Az STM DevKitre vonatkozó részletes beállítási információkért tekintse meg a csomagolás utasításait, vagy tekintse meg a B-L475E-IOT01A-erőforrásokat
Az Fájlkezelő keresse meg az előző szakaszban létrehozott bináris fájlokat.
Másolja ki a stm32l475_azure_iot.bin nevű bináris fájlt.
A Fájlkezelő keresse meg a számítógéphez csatlakoztatott STM Devkitet. Az eszköz meghajtóként jelenik meg a rendszeren a DIS_L4IOT meghajtócímkével.
Illessze be a bináris fájlt az STM 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 egy LED vált a piros és a zöld között az STM DevKiten.
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 STM 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 fekete, és címkével van ellátva az eszközön.
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 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
Fontos
Ha a DNS-ügyfél inicializálása meghiúsul, és értesíti, hogy a Wi-Fi belső vezérlőprogram elavult, frissítenie kell a Wi-Fi modul belső vezérlőprogramját. Töltse le és telepítse az Inventek ISM 43362 Wi-Fi modul belső vezérlőprogramjának frissítését az STMicroelectronicsból. Ezután nyomja le az eszköz Alaphelyzetbe állítás gombját a kapcsolat újraellenőrzéséhez, és folytassa ezt az oktatóanyagot.
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. A következő szakaszokban az IoT Explorerben látható Plug and Play képességeket használja az STM DevKit kezeléséhez és kezeléséhez. Ezek a képességek az STM 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. Sok esetben ugyanezt a műveletet plug and play használata nélkül is végrehajthatja az IoT Explorer menübeállításainak kiválasztásával. 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.
Feljegyzés
Az alapértelmezett összetevő neve és leírása az STM L4S5 táblára vonatkozik. Ebben az oktatóanyagban az STM L4S5 plug and play eszközmodell az STM L475E alaplaphoz is használható.
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 STM Getting Started Guide
Példamodell az STM DevKithez Tulajdonságok (írásvédett) Tulajdonság ledState
Azt jelzi, hogy a led be van-e kapcsolva vagy ki van-e kapcsolva 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 (írásvédett) lapot. Egyetlen írásvédett tulajdonság jelzi, hogy a led be van-e kapcsolva vagy ki van-e kapcsolva.
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 értesítésnek kell megjelennie, és az eszköz zöld LED-lámpájának be kell kapcsolnia.
Állítsa az állapotot hamisra, majd válassza a Küldés parancsot. A 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:
Received command: setLedState Payload: true LED is turned ON Sending property: $iothub/twin/PATCH/properties/reported/?$rid=15{"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és
Ebben az oktatóanyagban létrehozott egy egyéni rendszerképet, amely Eclipse ThreadX-mintakódot tartalmaz, majd felvillantotta a képet az STM DevKit-eszközre. Csatlakoztatta az STM DevKitet az Azure-hoz, és olyan feladatokat hajtott végre, mint a telemetriai adatok megtekintése és egy metódus meghívása az eszközön.
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.
Fontos
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.