Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az IoT-eszközök különböző formátumban küldenek adatokat. Ha az eszközadatokat az IoT Central-alkalmazással szeretné használni, előfordulhat, hogy a következő átalakítást kell használnia:
- Az adatok formátumának kompatibilitása az IoT Central-alkalmazással.
- Egységek átváltása.
- Új metrikák kiszámítása.
- Bővítse az adatokat más forrásokból.
Ez a cikk bemutatja, hogyan alakíthatja át az eszközadatokat az IoT Centralon kívül bejövő vagy kimenő forgalom esetén.
Megjegyzés
Az IoT Central belsőleg is átalakíthatja az adatokat, további információért, tekintse meg a bejövő forgalom telemetriájának leképezése az IoT Centralban és az adatok átalakítása exportálás céljából az IoT Central alkalmazáson belül.
Az alábbi diagram az átalakításokat tartalmazó adatok három útvonalát mutatja be:
Az alábbi táblázat három példaátalakítási típust mutat be:
| Átalakítás | Leírás | Példa | Jegyzetek |
|---|---|---|---|
| Üzenetformátum | JSON-üzenetekké alakítható vagy módosítható. | CSV–JSON | Bejáratnál. Az IoT Central csak az érték JSON-üzeneteket fogadja el. További információért, lásd: Telemetria, tulajdonság és parancs adatcsomagok. |
| Számítások | Az Azure Functions által végrehajtható matematikai függvények . | Egységváltás Fahrenheitből Celsius-ra. | Alakítsa át a kimenő minta használatával, hogy kihasználhassa a méretezhető eszközök bejövő forgalmát az IoT Centralhoz való közvetlen kapcsolaton keresztül. Az adatok átalakításával IoT Central-funkciókat, például vizualizációkat és feladatokat használhat. |
| Üzenet gazdagítása | A külső adatforrásokból származó dúsítások nem találhatók az eszköztulajdonságokban vagy a telemetriában. A belső bővítésekkel kapcsolatos további információkért lásd : IoT-adatok exportálása felhőbeli célhelyekre a Blob Storage használatával. | Időjárási adatok hozzáadása az üzenetekhez az eszközök helyadataival. | Alakítsa át a kimenő minta használatával, hogy kihasználhassa a méretezhető eszközök bejövő forgalmát az IoT Centralhoz való közvetlen kapcsolaton keresztül. |
Előfeltételek
Az útmutató lépéseinek elvégzéséhez a következőkre van szüksége:
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.
Az egyéni alkalmazássablonból létrehozott IoT Central-alkalmazás . További információ: IoT Central-alkalmazás létrehozása és Hogyan kaphatok információt az alkalmazásomról?
Adatátalakítás bejövő forgalom esetén
Az eszközadatok bejövő adatforgalomnál történő átalakításához két lehetőség van:
IoT Edge: IoT Edge-modul használatával átalakíthatja az adatokat az alsóbb rétegbeli eszközökről, mielőtt elküldené az adatokat az IoT Central-alkalmazásnak.
IoT Central eszközhíd: Az IoT Central eszközhíd más IoT-eszközfelhőket, például a Sigfoxot, a Részecske- és a The Things Network-et csatlakoztatja az IoT Centralhoz. Az eszközhíd egy Azure-függvény használatával továbbítja az adatokat, és testre szabhatja a függvényt az eszközadatok átalakításához.
Eszközadatok átalakítása az IoT Edge használatával
Ebben a forgatókönyvben egy IoT Edge-modul átalakítja az adatokat az alsóbb rétegbeli eszközökről, mielőtt továbbítanák azokat az IoT Central-alkalmazásnak. Magas szinten a forgatókönyv konfigurálásához a következő lépések szükségesek:
IoT Edge-eszköz beállítása: IoT Edge-eszköz telepítése és kiépítése átjáróként, és az átjáró csatlakoztatása az IoT Central-alkalmazáshoz.
Alsóbb rétegbeli eszköz csatlakoztatása az IoT Edge-eszközhöz: Csatlakoztassa az alsóbb rétegbeli eszközöket az IoT Edge-eszközhöz, és építse ki őket az IoT Central-alkalmazásba.
Eszközadatok átalakítása az IoT Edge-ben: Hozzon létre egy IoT Edge-modult az adatok átalakításához. Telepítse a modult az IoT Edge-átjáróeszközre, amely továbbítja az átalakított eszközadatokat az IoT Central-alkalmazásnak.
Ellenőrzés: Adatok küldése egy alsóbb rétegbeli eszközről az átjáróra, és ellenőrizze, hogy az átalakított eszközadatok elérik-e az IoT Central-alkalmazást.
A következő szakaszokban ismertetett példában az alsóbb rétegbeli eszköz az alábbi formátumban küld JSON-adatokat az IoT Edge-átjáróeszköznek:
{
"device": {
"deviceId": "<downstream-deviceid>"
},
"measurements": {
"temp": <temperature>,
"pressure": <pressure>,
"humidity": <humidity>,
"scale": "celsius",
}
}
Az IoT Edge-modult használja, hogy átalakítsa az adatokat, és a hőmérsékleti értéket a Celsius-ról Fahrenheit-re konvertálja, mielőtt elküldi az IoT Centralba.
{
"device": {
"deviceId": "<downstream-deviceid>"
},
"measurements": {
"temp": <temperature>,
"pressure": <pressure>,
"humidity": <humidity>,
"scale": "fahrenheit"
}
}
Az alábbi lépések bemutatják, hogyan állíthatja be és konfigurálhatja ezt a forgatókönyvet:
Az egyéni modul létrehozása
Ebben a forgatókönyvben az IoT Edge-eszköz egy egyéni modult futtat, amely átalakítja az adatokat az alsóbb rétegbeli eszközről. Az IoT Edge-eszköz üzembe helyezése és konfigurálása előtt a következő műveleteket kell elvégeznie:
- Hozza létre az egyéni modult.
- Adja hozzá az egyéni modult egy tárolóregisztrációs adatbázishoz.
Az IoT Edge-futtatókörnyezet egyéni modulokat tölt le egy tárolóregisztrációs adatbázisból, például egy Azure Container Registryből vagy a Docker Hubból. Az Azure Cloud Shell tartalmazza a tárolóregisztrációs adatbázis létrehozásához, a modul létrehozásához és a modul regisztrációs adatbázisba való feltöltéséhez szükséges összes eszközt:
Tárolóregisztrációs adatbázis létrehozása:
Nyissa meg az Azure Cloud Shellt , és jelentkezzen be az Azure-előfizetésbe.
Válassza ki a Bash shellt.
Futtassa a következő parancsokat egy Azure-tárolóregisztrációs adatbázis létrehozásához:
REGISTRY_NAME="{your unique container registry name}" az group create --name ingress-scenario --location eastus az acr create -n $REGISTRY_NAME -g ingress-scenario --sku Standard --admin-enabled true az acr credential show -n $REGISTRY_NAMEJegyezze fel a
usernameéspasswordértékeket, mert később használni fogja őket. A parancs kimenetében csak az egyik jelszóra van szüksége.
Az egyéni modul létrehozása az Azure Cloud Shellben:
Az Azure Cloud Shellben klónozza a modul forráskódját tartalmazó GitHub-adattárat:
git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edgeAz egyéni modul létrehozásához futtassa a következő parancsokat az Azure Cloud Shellben:
cd iot-central-transform-with-iot-edge/custommodule/transformmodule az acr build --registry $REGISTRY_NAME --image transformmodule:0.0.1-amd64 -f Dockerfile.amd64 .Az előző parancsok futtatása több percet is igénybe vehet.
IoT Edge-eszköz beállítása
Ez a forgatókönyv egy IoT Edge-átjáróeszköz használatával alakítja át az adatokat bármely alsóbb rétegbeli eszközről. Ez a szakasz azt ismerteti, hogyan hozhat létre IoT Central-eszközsablont az átjáróeszközhöz az IoT Central-alkalmazásban. Az IoT Edge-eszközök üzembehelyezési jegyzék használatával konfigurálják a modulokat.
Ebben a példában az alsóbb rétegbeli eszköznek nincs szüksége eszközsablonra. Az alsóbb rétegbeli eszköz regisztrálva van az IoT Centralban, így létrehozhatja az IoT Edge-eszköz csatlakoztatásához szükséges hitelesítő adatokat. Mivel az IoT Edge-modul átalakítja az adatokat, az összes alsóbb rétegbeli eszköztelemetria úgy érkezik az IoT Centralba, mintha az IoT Edge-eszköz küldte volna.
Eszközsablon létrehozása az IoT Edge-átjáróeszközhöz:
Mentse az üzembehelyezési jegyzék másolatát a helyi fejlesztőgépre: moduledeployment.json.
Nyissa meg a moduledeployment.json jegyzékfájl helyi példányát egy szövegszerkesztőben.
Keresse meg a szakaszt
registryCredentials, és cserélje le a helyőrzőket azokra az értékekre, amelyeket az Azure Container Registry létrehozásakor jegyzett. Azaddressérték így néz ki:{your username}.azurecr.io.Keresse meg a
settingsszakaszt atransformmodule. Cserélje le{your username}ugyanazt az értéket, amelyet az előző lépésben használt. Mentse el a módosításokat.Az IoT Central-alkalmazásban lépjen az Edge manifesztumok oldalára.
Válassza a + Új lehetőséget. Adjon meg egy nevet, például a Transformert az üzembehelyezési jegyzékhez, majd töltse fel a korábban letöltött moduledeployment.json fájlt. Az üzembehelyezési jegyzék tartalmaz egy egyéni modult, az úgynevezett átalakító modult.
Válassza a Tovább opciót, majd a Létrehozás opciót.
Az IoT Central-alkalmazásban lépjen az Eszközsablonok lapra.
Válassza az + Új lehetőséget, válassza az Azure IoT Edge lehetőséget, majd válassza a Tovább: Testreszabás lehetőséget.
Adja meg az IoT Edge-átjáróeszközt az eszközsablon neveként. Válassza az Átjáróeszköz-t.
Válassza a Tovább: Véleményezés, majd a Létrehozás lehetőséget.
A Modell létrehozása lapon válassza az Egyéni modell lehetőséget.
A modellben válassza a Modulok lehetőséget, majd importálja a modulokat a jegyzékből. Válassza ki a Transformer üzembehelyezési jegyzékfájlt, majd válassza az Importálás lehetőséget.
Az üzembe helyezési jegyzék nem adja meg a modul által küldött telemetriát. A telemetriai definíciók hozzáadása az eszközsablonhoz:
Az Modulok szakaszában az IoT Edge-átjáró eszköz sablonján válassza a Module transformmodule lehetőséget.
Válassza a Képesség hozzáadása lehetőséget , és használja az alábbi táblázatokban szereplő információkat egy új telemetriai típus hozzáadásához:
Beállítás Érték Megjelenített név Eszköz Név eszköz Képesség típusa Telemetria Szemantikai típus Egyik sem Séma Objektum Objektumdefiníció:
Megjelenített név Név Séma Eszközazonosító eszközazonosító Sztring Mentse a módosításokat.
Válassza a Képesség hozzáadása lehetőséget , és használja az alábbi táblázatokban szereplő információkat egy új telemetriai típus hozzáadásához:
Beállítás Érték Megjelenített név Mérések Név Mérések Képesség típusa Telemetria Szemantikai típus Egyik sem Séma Objektum Objektumdefiníció:
Megjelenített név Név Séma Hőmérséklet hőmérséklet Kétszeres Nyomás nyomás Kétszeres Páratartalom páratartalom Kétszeres Méretezés méret Sztring Mentse a módosításokat.
A modellben válassza a Kapcsolatok lehetőséget. Ne válassza a Kapcsolatok lehetőséget a transformmodule modulban.
Válassza a Kapcsolat hozzáadása lehetőséget.
Adja meg az Alsóbb rétegbeli érzékelőt a megjelenítendő névként, az érzékelőt a névként, és válassza az Any (Bármely) lehetőséget célként. Válassza a Mentés lehetőséget.
Az eszközsablon közzétételéhez válassza a Közzététel lehetőséget.
Átjáróeszköz regisztrálása az IoT Centralban:
Az IoT Central-alkalmazásban lépjen az Eszközök lapra.
Válassza az IoT Edge-átjáróeszközt , és válassza az + Új lehetőséget. Adja meg az IoT Edge gateway device nevet az eszköz neveként, adja meg a gateway-01 azonosítót mint eszközazonosító, győződjön meg arról, hogy a IoT Edge gateway device van kiválasztva eszközsablonként, és a Nem van kiválasztva az Eszközt szimulálja? kérdésre. Válassza a Transformer elemet éljegyzékként. Válassza a Létrehozás lehetőséget.
Az eszközök listájában kattintson az IoT Edge-átjáró eszközére, majd válassza a Csatlakozás lehetőséget.
Jegyezze fel az IoT Edge-átjáróeszköz azonosító hatókörét, eszközazonosítóját és elsődleges kulcsértékeit. Később használhatja őket.
Alsóbb rétegbeli eszköz regisztrálása az IoT Centralban:
Az IoT Central-alkalmazásban lépjen az Eszközök lapra.
Ne válasszon eszközsablont. Válassza a + Új lehetőséget. Az eszköz neveként adja meg a Downstream 01 értéket, az eszközazonosítóként adja meg a downstream-01 értéket, győződjön meg arról, hogy az eszközsablon nincs hozzárendelve, a Nem pedig az eszköz szimulálásaként van kiválasztva? Válassza a Létrehozás lehetőséget.
Az eszközök listájában kattintson a Downstream 01 eszközre, majd válassza a > lehetőséget.
A Átjáróhoz csatolás párbeszédpanelen válassza ki az IoT Edge-átjáró eszköz sablont és az IoT Edge-átjáró eszköz példányt. Válassza a Csatolás elemet.
A Downstream 01 eszközön válassza a Csatlakozás lehetőséget.
Jegyezze fel a Downstream 01 eszköz azonosító hatókörét, eszközazonosítóját és elsődleges kulcsértékét. Később használhatja őket.
Az átjáró és az alsóbb rétegbeli eszközök üzembe helyezése
A kényelem érdekében ez a cikk Azure-beli virtuális gépeket használ az átjáró és az alsóbb rétegbeli eszközök futtatásához. A két Azure-beli virtuális gép létrehozásához válassza a következő táblázat után megjelenő Üzembe helyezés az Azure-ban gombot. Az egyéni üzembehelyezési űrlap kitöltéséhez használja a táblázatban található információkat:
| Mező | Érték |
|---|---|
| Erőforráscsoport | ingress-scenario |
| DNS-címke előtag átjárója | A gép egyedi DNS-neve, például <your name>edgegateway |
| DNS-címke előtagja alsóbb rétegben | A gép egyedi DNS-neve, például <your name>downstream |
| Hatókör-azonosító | A korábban jegyzett azonosító hatóköre |
| IoT Edge átjáró eszközazonosító | gateway-01 |
| IoT Edge átjáró eszközkulcs | A korábban jegyzett elsődleges kulcsérték |
| Hitelesítés típusa | Jelszó |
| Rendszergazdai jelszó vagy kulcs | Az AzureUser-fiókhoz választott jelszó mindkét virtuális gépen. |
Válassza a Véleményezés + Létrehozás, majd a Létrehozás lehetőséget. A virtuális gépek létrehozása az ingress-scenario erőforráscsoportban néhány percet vesz igénybe.
Annak ellenőrzése, hogy az IoT Edge-átjáróeszköz megfelelően fut-e:
Nyissa meg az IoT Central-alkalmazást. Ezután lépjen az IoT Edge Gateway-eszközre az Eszközök lapon található eszközök listájában.
Válassza a Modulok lapot, és ellenőrizze a három modul állapotát. Néhány percig tart, amíg az IoT Edge-futtatókörnyezet elindul a virtuális gépen. Amikor a virtuális gép fut, a három modul állapota fut. Ha az IoT Edge runtime nem indul el, lásd a IoT Edge-eszköz hibaelhárítását.
Ahhoz, hogy az IoT Edge-eszköz átjáróként működjön, szüksége van néhány tanúsítványra, hogy igazolhassa identitását az alsóbb rétegbeli eszközökön. Ez a cikk demótanúsítványokat használ. Éles környezetben használjon tanúsítványokat a hitelesítésszolgáltatótól.
A demótanúsítványok létrehozásához és az átjáróeszközre való telepítéséhez:
Az SSH használatával csatlakozhat és bejelentkezhet az átjáróeszköz virtuális gépére. A virtuális gép DNS-nevét az Azure Portalon találja. Navigáljon az edgegateway virtuális gépre a ingress-scenario erőforrás csoportjában.
Tipp.
Előfordulhat, hogy meg kell nyitnia a 22-s portot az SSH-hozzáféréshez mindkét virtuális gépen, mielőtt az SSH használatával csatlakozhat a helyi gépről vagy az Azure Cloud Shellből.
Futtassa az alábbi parancsokat az IoT Edge-adattár klónozásához és a bemutató tanúsítványok létrehozásához:
# Clone the repo cd ~ git clone https://github.com/Azure/iotedge.git # Generate the demo certificates mkdir certs cd certs cp ~/iotedge/tools/CACertificates/*.cnf . cp ~/iotedge/tools/CACertificates/certGen.sh . ./certGen.sh create_root_and_intermediate ./certGen.sh create_edge_device_ca_certificate "mycacert"Az előző parancsok futtatása után a következő fájlok használhatók a következő lépésekben:
- ~/certs/certs/azure-iot-test-only.root.ca.cert.pem – Az összes többi demótanúsítvány létrehozásához használt legfelső szintű hitelesítésszolgáltatói tanúsítvány egy IoT Edge-forgatókönyv teszteléséhez.
- ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem – A config.yaml fájl által hivatkozott eszköz ca-tanúsítványa. Átjáróforgatókönyvekben ez a hitelesítésszolgáltatói tanúsítvány azt jelenti, hogy az IoT Edge-eszköz hogyan ellenőrzi az identitását az alsóbb rétegbeli eszközökön.
- ~/certs/private/iot-edge-device-mycacert.key.pem – Az eszköz hitelesítésszolgáltatói tanúsítványához társított titkos kulcs.
Ezekről a demótanúsítványokról további információt az IoT Edge eszközfunkcióinak teszteléséhez szükséges demótanúsítványok létrehozása című témakörben talál.
Nyissa meg a config.toml fájlt egy szövegszerkesztőben. Példa:
sudo nano /etc/aziot/config.tomlA tanúsítványbeállítások kibontása és módosítása az alábbiak szerint:
trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem" ... [edge_ca] cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem" pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"Az előző példa feltételezi, hogy be van jelentkezve AzureUserként, és létrehoz egy "mycacert" nevű eszköz hitelesítésszolgáltatói tanúsítványt.
Mentse a módosításokat, és futtassa a következő parancsot a config.toml fájl helyességének ellenőrzéséhez:
sudo iotedge checkIndítsa újra az IoT Edge rendszert.
sudo iotedge config apply
Ha az IoT Edge-futtatókörnyezet a módosítások után sikeresen elindul, a $edgeAgent és a $edgeHub modulok állapota futásra változik. Ezeket az állapotértékeket az IoT Central átjáróeszközének Modulok lapján tekintheti meg.
Ha a futtatókörnyezet nem indul el, ellenőrizze a config.toml fájlban végrehajtott módosításokat, és tekintse meg az IoT Edge-eszköz hibaelhárítását.
Alsóbb rétegbeli eszköz csatlakoztatása az IoT Edge-eszközhöz
Alsóbb rétegbeli eszköz csatlakoztatása az IoT Edge-átjáróeszközhöz:
Az SSH használatával csatlakozhat és bejelentkezhet az alsóbb rétegbeli eszköz virtuális gépére. A virtuális gép DNS-nevét az Azure Portalon találja. Lépjen a leafdevice virtuális gépre a ingress-scenario erőforráscsoportjában.
Tipp.
Előfordulhat, hogy meg kell nyitnia a 22-s portot az SSH-hozzáféréshez mindkét virtuális gépen, mielőtt az SSH használatával csatlakozhat a helyi gépről vagy az Azure Cloud Shellből.
Ha klónozni szeretné a GitHub-adattárat a minta alsóbb rétegbeli eszköz forráskódjával, futtassa a következő parancsot:
cd ~ git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edgeA szükséges tanúsítvány átjáróeszközről való másolásához futtassa az alábbi
scpparancsokat. Ez ascpparancs aedgegatewaygazdagépnévvel azonosítja az átjáró virtuális gépet. A rendszer a következő jelszót kéri:cd ~/iot-central-transform-with-iot-edge scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certsLépjen a leafdevice mappába, és telepítse a szükséges csomagokat. Ezután futtassa a
buildés astartszkripteket az eszköz átjáróhoz való kiépítéséhez és csatlakoztatásához.cd ~/iot-central-transform-with-iot-edge/leafdevice sudo apt update curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt-get install nodejs npm install npm run-script build npm run-script startParancsok végrehajtása esetén
sudo apt-get install nodejsa rendszer kérheti a telepítés engedélyezését: ilyenkor nyomja meg aYbillentyűt.Adja meg a korábban létrehozott alsóbb rétegbeli eszköz eszközazonosítóját, hatókör-azonosítóját és SAS-kulcsát. A gazdagépnévhez írja be a következőt:
edgegateway. A parancs kimenete a következőképpen néz ki:Registering device downstream-01 with scope 0ne00284FD9 Registered device downstream-01. Connecting device downstream-01 Connected device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01
Az egyszerűség kedvéért az alsóbb rétegbeli eszköz kódja az IoT Centralban helyezi el az eszközt. Az alsóbb rétegbeli eszközök általában átjárón keresztül csatlakoznak, mert nem tudnak csatlakozni az internethez, ezért nem tudnak csatlakozni a Device Provisioning Service végponthoz. További információ: Eszközök csatlakoztatása IoT Edge transzparens átjárón keresztül.
Ellenőrzés
A forgatókönyv futtatásának ellenőrzéséhez lépjen az IoT Edge-átjáró eszközére az IoT Centralban:
Válassza ki a modulokat. Ellenőrizze, hogy a három IoT Edge-modul $edgeAgent, $edgeHub és átalakítómodul fut-e .
Válassza a Nyers adatok lehetőséget. Az Eszköz oszlop telemetriai adatai a következőképpen néznek ki:
{"deviceId":"downstream-01"}A Mérések oszlop telemetriai adatai a következőképpen néznek ki:
{"temperature":85.21208,"pressure":59.97321,"humidity":77.718124,"scale":"fahrenheit"}
A hőmérsékletet Fahrenheitben küldik el. Mivel az IoT Edge-eszköz átalakítja az adatokat az alsóbb rétegbeli eszközről, a telemetria az IoT Central átjáróeszközéhez van társítva. Az átalakított telemetriai adatok megjelenítéséhez hozzon létre egy nézetet az IoT Edge-átjáró eszközsablonjában , és tegye közzé újra.
Adatátalakítás a kimenő forgalomnál
Csatlakoztathatja az eszközöket az IoT Centralhoz, exportálhatja az eszközadatokat egy számítási motorba, hogy átalakítsa azokat, majd visszaküldheti az átalakított adatokat az IoT Centralnak az eszközkezelés és -elemzés céljából. Példa:
- Az eszközei helyadatokat küldenek az IoT Centralnak.
- Az IoT Central exportálja az adatokat egy számítási motorba, amely időjárási adatokkal javítja a helyadatokat.
- A számítási motor visszaküldi a továbbfejlesztett adatokat az IoT Centralnak.
Az IoT Central eszközhíd számítási motorként használható az IoT Centralból exportált adatok átalakításához.
A kimenő adatok átalakításának egyik előnye, hogy az eszközök közvetlenül az IoT Centralhoz csatlakoznak, így könnyen küldhet parancsokat az eszközöknek, vagy frissítheti az eszköz tulajdonságait. Ezzel a módszerrel azonban több üzenetet használhat, mint a havi kiosztott, és növelheti az Azure IoT Central használatának költségeit.
Az IoT Central eszközhídjának használata az eszközadatok átalakításához
Ebben a forgatókönyvben a számítási motor átalakítja az IoT Centralból exportált eszközadatokat, mielőtt visszaküldené azokat az IoT Central-alkalmazásnak. Magas szinten a forgatókönyv konfigurálásához a következő lépések szükségesek:
A számítási motor beállítása: Hozzon létre egy IoT Central-eszközhidat, amely számítási motorként szolgál az adatátalakításhoz.
Eszközadatok átalakítása az eszközhídon: Az eszközhídban lévő adatok átalakítása az adatátalakítási használati eset eszközhíd-függvénykódjának módosításával.
Adatfolyam engedélyezése az IoT Centralról az eszközhídra: Az adatok exportálása az IoT Centralból az eszközhídra átalakítás céljából. Ezután továbbítsa az átalakított adatokat az IoT Centralnak. Az adatexportálás létrehozásakor az üzenettulajdonság-szűrőkkel csak a nem formázott adatokat exportálhatja.
Ellenőrzés: Csatlakoztassa az eszközt az IoT Central alkalmazáshoz, és ellenőrizze a nyers eszközadatokat és az átalakított adatokat az IoT Centralban.
A következő szakaszokban ismertetett példában az eszköz az alábbi formátumban küld CSV-adatokat az IoT Edge-átjáróeszköznek:
"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"
Az eszközhíd használatával átalakíthatja az eszközadatokat a következővel:
- A hőmérséklet mértékegységének módosítása centigrade-ról fahrenheitre.
- Az eszköz adatainak bővítése az Open Weather szolgáltatásból lekért időjárási adatokkal a szélességi és hosszúsági értékekhez.
Az eszközhíd ezután a következő formátumban küldi el az átalakított adatokat az IoT Centralnak:
{
"temp": <temperature in degrees F>,
"humidity": <humidity>,
"lat": <latitude>,
"lon": <longitude>,
"weather": {
"weather_temp": <temperature at lat/lon>,
"weather_humidity": <humidity at lat/lon>,
"weather_pressure": <pressure at lat/lon>,
"weather_windspeed": <wind speed at lat/lon>,
"weather_clouds": <cloud cover at lat/lon>,
"weather_uvi": <UVI at lat/lon>
}
}
Az alábbi lépések bemutatják, hogyan állíthatja be és konfigurálhatja ezt a forgatókönyvet:
Az IoT Central kapcsolati beállításainak lekérése
A forgatókönyv beállítása előtt be kell szereznie néhány kapcsolati beállítást az IoT Central-alkalmazásból:
Jelentkezzen be az IoT Central-alkalmazásba.
Navigáljon az Engedélyek > eszköz kapcsolatcsoportjaihoz.
Jegyezze fel az azonosító hatókörét. Ezt az értéket később fogja használni.
Válassza ki az SaS-IoT-Devices regisztrációs csoportot. Jegyezze fel a közös hozzáférésű jogosultságkód elsődleges kulcsát. Ezt az értéket később fogja használni.
Számítási motor beállítása
Ez a forgatókönyv ugyanazt az Azure Functions-üzembe helyezést használja, mint az IoT Central eszközhídja. Az eszközhíd üzembe helyezéséhez válassza a következő táblázat után megjelenő Üzembe helyezés az Azure-ban gombot. Az egyéni üzembehelyezési űrlap kitöltéséhez használja a táblázatban található információkat:
| Mező | Érték |
|---|---|
| Erőforráscsoport | Új, úgynevezett erőforráscsoport létrehozása egress-scenario |
| Régió | Válassza ki az Önhöz legközelebb eső régiót. |
| Hatókör-azonosító | Használja a korábban feljegyzett azonosító hatókört. |
| IoT Central SAS-kulcs | Használja a közös hozzáférésű jogosultságkód elsődleges kulcsát az SaS-IoT-Devices regisztrációs csoporthoz. Korábban már jegyezte fel ezt az értéket. |
Válassza a Véleményezés + Létrehozás, majd a Létrehozás lehetőséget. Néhány percig tart az Azure-függvény és a kapcsolódó erőforrások létrehozása az egress-scenario erőforráscsoportban.
Eszközadatok átalakítása az eszközhíd segítségével
Az eszközhíd konfigurálása az exportált eszközadatok átalakításához:
Szerezze be az alkalmazás API-kulcsát az Open Weather szolgáltatásból. A fiók ingyenes, és korlátozottan használja a szolgáltatást. Alkalmazás API-kulcs létrehozásához hozzon létre egy fiókot az Open Weather service portálon , és kövesse az utasításokat. Később használhatja az Open Weather API-kulcsot.
Az Azure portálon az Function App elemre navigáljon a egress-scenario erőforráscsoportban.
A bal oldali navigációs sáv Fejlesztési eszközök területén válassza az App Service Editor (előzetes verzió) lehetőséget.
Az App Service-szerkesztő lap megnyitásához válassza a Go → lehetőséget. Hajtsa végre a következő módosításokat:
Nyissa meg a wwwroot/IoTCIntegration/index.js fájlt. Cserélje le a fájl összes kódját az index.js fájl kódjára.
Az új index.js fájlban frissítsd a
openWeatherAppIdváltozófájlt a korábban beszerzett Open Weather API-kulccsal.const openWeatherAppId = '<Your Open Weather API Key>'Adjon hozzá egy üzenettulajdonságot a függvény által az IoT Centralnak küldött adatokhoz. Az IoT Central ezt a tulajdonságot használja az átalakított adatok exportálásának megakadályozására. A módosítás elvégzéséhez nyissa meg a wwwroot/IoTCIntegration/lib/engine.js fájlt. Keresse meg a következő kódot:
if (timestamp) { message.properties.add('iothub-creation-time-utc', timestamp); }Adja hozzá a következő kódot az előző kódrészletben lévő kód után:
// add a message property that we can look for in data export to not re-compute computed telemetry message.properties.add('computed', true);Hivatkozásként megtekintheti a engine.js fájl egy befejezett példáját.
Az App Service Editor bal oldali navigációs sávján válassza a Konzol lehetőséget. Futtassa a következő parancsokat a szükséges csomagok telepítéséhez:
cd IoTCIntegration npm installA parancs futtatása eltarthat néhány percig.
Térjen vissza az Azure-függvények áttekintési oldalára, és indítsa újra a függvényt:
Válassza a Függvények lehetőséget a bal oldali navigációs sávon. Ezután válassza az IoTCIntegration lehetőséget. Válassza a Code + Test lehetőséget.
Jegyezze fel a függvény URL-címét, később szüksége lesz erre az értékre:
Adatfolyam engedélyezése az IoT Centralról az eszközhídra
Ez a szakasz az Azure IoT Central-alkalmazás beállítását ismerteti.
Először mentse az eszközmodell-fájlt a helyi gépre.
Ha eszközsablont szeretne hozzáadni az IoT Central-alkalmazáshoz, keresse meg az IoT Central-alkalmazást, majd:
Jelentkezzen be az IoT Central-alkalmazásba, és lépjen az Eszközsablonok lapra.
Válassza az + Új lehetőséget, válassza az IoT-eszköz lehetőséget, majd a Tovább: Testreszabás lehetőséget, írja be a számítási modellt sablonnévként. Válassza a Következő: Véleményezés lehetőséget. Válassza a Létrehozás parancsot.
Válassza a Modell importálása lehetőséget, és keresse meg a korábban letöltött model.json fájlt.
A modell importálása után válassza a Közzététel lehetőséget a számítási modell eszközsablonjának közzétételéhez.
Állítsa be az adatexportálást úgy, hogy adatokat küldjön az eszközhídra:
Az IoT Central-alkalmazásban válassza az Adatexportálás lehetőséget.
Válassza az + Új cél lehetőséget az eszközhídhoz használni kívánt cél létrehozásához. Hívja meg a cél számítási függvényt, a céltípushoz válassza a Webhook lehetőséget. A visszahívási URL-cím mezőbe illessze be azt a függvény URL-címet, amelyet korábban feljegyzett. Hagyja meg az engedélyezésthitelesítés nélkül.
Mentse el a módosításokat.
Válassza ki az + Új exportálás lehetőséget, és hozzon létre egy számítási exportálás nevű adatexportálást.
Adjon hozzá egy szűrőt, amely csak a használt eszközsablon eszközadatait exportálja. Válassza a + Szűrés lehetőséget, válassza ki az Eszközsablont, válassza ki az „Egyenlő” operátort, és válassza ki a számítási modell eszközsablont, amelyet létrehozott.
Adjon hozzá egy üzenetszűrőt az átalakított és a nem transzformált adatok megkülönböztetéséhez. Ez a szűrő megakadályozza az átalakított értékek visszaküldését az eszközhídra. Válassza az + Üzenet tulajdonságszűrőt, és adja meg a kiszámított névértéket, majd válassza ki a Nem létezik operátort. Az
computedkarakterlánc kulcsszóként használatos az eszközhíd példakódjában.A célhelynél válassza ki a korábban létrehozott Számítási függvény célhelyét.
Mentse el a módosításokat. Körülbelül egy perc múlva az Exportállapot kifogástalan jelenik meg.
Ellenőrzés
A forgatókönyv teszteléséhez használt mintaeszköz Node.js-ben lett megírva. Győződjön meg arról, hogy telepítve van Node.js és npm a helyi gépen. Ha nem szeretné telepíteni ezeket az előfeltételeket, használja az Azure Cloud Shellt , ahol előre telepítve vannak.
A forgatókönyvet tesztelő mintaeszköz futtatása:
Klónozza a mintakódot tartalmazó GitHub-adattárat, majd futtassa a következő parancsot:
git clone https://github.com/Azure/iot-central-computeA mintaeszköz IoT Central-alkalmazáshoz való csatlakoztatásához szerkessze az iot-central-compute/device/device.js fájl kapcsolati beállításait. Cserélje le a hatókör-azonosítót és a csoport SAS-kulcsát a korábban jegyzett értékekre:
// These values need to be filled in from your Azure IoT Central application // const scopeId = "<IoT Central Scope Id value>"; const groupSasKey = "<IoT Central Group SAS key>"; //Mentse el a módosításokat.
A szükséges csomagok telepítéséhez és az eszköz futtatásához használja az alábbi parancsokat:
cd ~/iot-central-compute/device npm install node device.jsA parancs eredménye a következő kimenethez hasonlóan néz ki:
registration succeeded assigned hub=iotc-2bd611b0....azure-devices.net deviceId=computeDevice Client connected send status: MessageEnqueued [{"data":"33.23, 69.09, 30.7213, -61.1192"}] send status: MessageEnqueued [{"data":"2.43, 75.86, -2.6358, 162.935"}] send status: MessageEnqueued [{"data":"6.19, 76.55, -14.3538, -82.314"}] send status: MessageEnqueued [{"data":"33.26, 48.01, 71.9172, 48.6606"}] send status: MessageEnqueued [{"data":"40.5, 36.41, 14.6043, 14.079"}]Az IoT Central-alkalmazásban lépjen a computeDevice nevű eszközre. A Nyers adatnézetben két különböző telemetriai stream látható, amelyek körülbelül öt másodpercenként jelennek meg. A nem modellált adatokkal rendelkező adatfolyam az eredeti telemetriai adatok. A modellezett adatokkal rendelkező adatfolyam a függvény által átalakított adatok:
Erőforrások takarítása
Ha már nincs szüksége a létrehozott Azure-erőforrásokra az útmutató lépéseinek követésével, törölje az erőforráscsoportokat az Azure Portalon.
Az útmutatóban használt két erőforráscsoport a ingress-scenario és a egress-scenario.
Összegzés
Ebben a cikkben megismerhette az IoT Central eszközadatainak átalakításának különböző lehetőségeit mind a bejövő, mind a kimenő forgalom esetében. A cikk két konkrét forgatókönyvhöz tartalmazott bemutatókat:
- Az IoT Edge-modullal átalakíthatja az adatokat az alsóbb rétegbeli eszközökről, mielőtt az adatokat elküldené az IoT Central-alkalmazásnak.
- Az Azure Functions használatával átalakíthatja az adatokat az IoT Centralon kívül. Ebben a forgatókönyvben az IoT Central adatexportot használ a bejövő adatok átalakításához, amelyeket egy Azure-függvénybe küld. A függvény visszaküldi az átalakított adatokat az IoT Central-alkalmazásnak.