Adatok külső átalakítása az IoT Centralhoz
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 konvertálá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.
Feljegyzés
Az IoT Central belsőleg is átalakíthatja az adatokat, így további információt az IoT Centralba való bejövő forgalom telemetriájának leképezése és az adatok átalakítása az IoT Central-alkalmazáson belül az exportáláshoz.
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övő forgalomnál. Az IoT Central csak az érték JSON-üzeneteket fogadja el. További információ: Telemetria, tulajdonság és parancs hasznos adatok. |
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 bővítése | 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 az alkalmazás ismertetése.
Adatátalakítás bejövő forgalom esetén
Az eszközadatok bejövő forgalomnál történő átalakításához két lehetőség közül választhat:
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-modullal átalakíthatja az adatokat, és átalakíthatja a hőmérsékleti értéket Celsius
Fahrenheit
az IoT Centralba való küldés előtt:
{
"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-tárolóregisztrációs adatbázisbó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-rendszerhéjat .
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_NAME
Jegyezze fel az értékeket és
password
azusername
értékeket, majd használja őket később. 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-edge
Az 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 a következőképpen{your username}.azurecr.io
néz ki: .Keresse meg a
settings
szakaszt 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 jegyzékek lapjá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 , majd a Létrehozás lehetőséget.
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 lehetőséget.
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 IoT Edge-átjáró eszközsablonJának Modulok szakaszában válassza a Modul-átalakító modul 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 device 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ó deviceId 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 scale 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-átjáróeszközt az eszköz neveként, adja meg az átjáró-01 azonosítót eszközazonosítóként, győződjön meg arról, hogy az IoT Edge-átjáróeszköz ki van jelölve eszközsablonként, és nem az eszköz szimulálásaként van kiválasztva?. 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 az Eszköz > csatolása az átjáróhoz lehetőséget.
Az Átjáró csatolása párbeszédpanelen válassza ki az IoT Edge-átjáró eszközsablont és az IoT Edge-átjáró eszközpéldányát. 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ója | gateway-01 |
Eszközkulcs IoT Edge-átjárója | 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 a bejövő forgatókönyv erőforráscsoportjában 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-futtatókörnyezet nem indul el, tekintse meg az 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. Lépjen az edgegateway virtuális gépre a bemeneti forgatókönyv 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.
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.toml
A 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 AzureUserként van bejelentkezve, és létrehozott 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 check
Indítsa újra az IoT Edge-futtatókörnyezetet:
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 bejövő forgatókönyv 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-edge
A szükséges tanúsítvány átjáróeszközről való másolásához futtassa az alábbi
scp
parancsokat. Ez ascp
parancs a gazdagépnév használatávaledgegateway
azonosítja az átjáró virtuális gépét. 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/certs
Lépjen a leafdevice mappába, és telepítse a szükséges csomagokat. Ezután futtassa az és
start
abuild
szkripteket 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 start
A parancsok során
sudo apt-get install nodejs
a rendszer megkérheti a telepítés engedélyezésére: nyomjaY
le, ha a rendszer kéri.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 jegyzett azonosító hatókörét . |
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 a kimenő forgatókönyv erőforráscsoportjában.
Eszközadatok átalakítása az eszközhídon
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 Portalon lépjen a függvényalkalmazásra a kimenő forgatókönyv erőforráscsoportjában.
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 a index.js.
Az új index.js frissítse a változófájlt a
openWeatherAppId
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 install
A 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ímhez válassza a beillesztést a függvény URL-címében, amelyről korábban feljegyzést készített. 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 Elem eszközsablont, válassza ki az Egyenlő operátort, és válassza ki a létrehozott számítási modell eszközsablont.
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. A sztring
computed
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. Egy perc múlva az Exportálás állapot kifogástalan állapotúként jelenik meg.
Ellenőrzés
A forgatókönyv teszteléséhez használt mintaeszköz Node.js van 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-compute
A 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.js
A 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 átalakított adatokat tartalmazó stream az eredeti telemetriai adat. A modellezett adatokkal rendelkező adatfolyam a függvény által átalakított adatok:
Az erőforrások eltávolí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 bejövő éskimenő forgatókönyv.
Ö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 adatexportálást használ a bejövő adatok Azure-függvénybe való küldéséhez az átalakításhoz. A függvény visszaküldi az átalakított adatokat az IoT Central-alkalmazásnak.