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.
A következőkre vonatkozik:
IoT Edge 1.1
Fontos
Az IoT Edge 1.1 támogatási dátumának vége 2022. december 13.,. A termék, szolgáltatás, technológia vagy API támogatásáról a Microsoft-termékek életciklusa című leírásból tájékozódhat. További információ az IoT Edge legújabb verziójára való frissítésről: IoT Edge frissítése.
Ebben a cikkben ismét szimulált eszközként használjuk a fejlesztési virtuális gépet. Ahelyett azonban, hogy közvetlenül az IoT Hubra küldené az adatokat, az eszköz transzparens átjáróként konfigurált IoT Edge-eszköznek küld adatokat.
Figyeljük az IoT Edge-eszköz működését, miközben a szimulált eszköz adatokat küld. Miután az eszköz fut, a tárfiókban lévő adatokat megvizsgálva ellenőrizhetjük, hogy minden a várt módon működött-e.
Ezt a lépést általában egy felhő- vagy eszközfejlesztő hajtja végre.
Az oktatóanyag ezen szakaszában a következőket sajátíthatja el:
- Alsóbb rétegbeli eszköz létrehozása és futtatása.
- Ellenőrizze, hogy a létrehozott adatok tárolása az Azure Blob Storage-ban történik-e.
- Ellenőrizze, hogy a gépi tanulási modell besorolta-e az eszközadatokat.
Előfeltételek
Ez a cikk az Azure Machine Learning IoT Edge-en való használatával kapcsolatos oktatóanyagok sorozatának része. A sorozat minden cikke az előző cikkben szereplő munkára épül. Ha közvetlenül ehhez a cikkhez jutott, először látogasson el a első cikkére a sorozatban.
Eszköz csatlakozó áttekintése
Használja újra a DeviceHarness-projektet az alsóbb rétegbeli eszköz szimulálásához. Az átlátszó átjáróhoz való csatlakozáshoz két további dolog szükséges:
- Regisztrálja a tanúsítványt, hogy a lejjebb lévő IoT-eszköz megbízzon az IoT Edge futtatási környezet által használt hitelesítésszolgáltatóban. Esetünkben az alsóbb rétegbeli eszköz a fejlesztési virtuális gép.
- Adja hozzá az edge gateway teljes tartománynevét (FQDN) az eszköz kapcsolati karakterláncához.
Tekintse meg a kódot, és nézze meg, hogyan implementálják ezt a két elemet.
A fejlesztői gépen nyissa meg a Visual Studio Code-ot.
Fájl>Mappa megnyitása... a C:\source\IoTEdgeAndMlSample\DeviceHarness megnyitásához.
Tekintse meg az InstallCertificate() metódust Program.cs.
Vegye figyelembe, hogy ha a kód megtalálja a tanúsítvány elérési útját, meghívja a CertificateManager.InstallCACert metódust a tanúsítvány számítógépre való telepítéséhez.
Most tekintse meg a GetIotHubDevice metódust a TurbofanDevice osztályban.
Amikor a felhasználó a "-g" beállítással megadja az átjáró teljes tartománynevét, a rendszer ezt az értéket változóként adja át ennek a
gatewayFqdnmetódusnak, amely hozzá lesz fűzve az eszköz kapcsolati sztringéhez.connectionString = $"{connectionString};GatewayHostName={gatewayFqdn.ToLower()}";
Alsóbb rétegbeli eszköz létrehozása és futtatása
Ha a DeviceHarness projekt továbbra is nyitva van a Visual Studio Code-ban, hozza létre a projektet. A Terminál menüben válassza a Build feladat futtatása , majd a Build lehetőséget.
Keresse meg a peremhálózati átjáró teljes tartománynevét (FQDN) az IoT Edge-eszközére (Linux rendszerű virtuális gépre) az Azure Portalon, és másolja át a DNS-név értékét az áttekintési oldalról.
Indítsa el az IoT-eszközt (Linux rendszerű virtuális gépet), ha még nem fut.
Nyissa meg a Visual Studio Code terminált. A Terminál menüben válassza az Új terminál lehetőséget, és futtassa a következő parancsot az IoT Edge-eszközről (Linux rendszerű virtuális gépről) másolt DNS-névre cserélve
<edge_device_fqdn>:dotnet run -- --gateway-host-name "<edge_device_fqdn>" --certificate C:\edgecertificates\certs\azure-iot-test-only.root.ca.cert.pem --max-devices 1Az alkalmazás megpróbálja telepíteni a tanúsítványt a fejlesztői gépre. Ha igen, fogadja el a biztonsági figyelmeztetést.
Amikor a rendszer kéri az IoT Hub kapcsolati sztringjének megadását, kattintson a három pontra (...) az Azure IoT Hub-eszközök panelén, és válassza az IoT Hub kapcsolati sztringjének másolása lehetőséget. Illessze be az értéket a terminálba.
A kimenet a következőképpen jelenik meg:
Found existing device: Client_001 Using device connection string: HostName=<your hub>.azure-devices.net;DeviceId=Client_001;SharedAccessKey=xxxxxxx; GatewayHostName=iotedge-xxxxxx.<region>.cloudapp.azure.com Device: 1 Message count: 50 Device: 1 Message count: 100 Device: 1 Message count: 150 Device: 1 Message count: 200 Device: 1 Message count: 250Vegye figyelembe a "GatewayHostName" hozzáadását az eszköz kapcsolati sztringjére, amely miatt az eszköz az IoT Hubon keresztül kommunikál az IoT Edge transzparens átjárón keresztül.
Kimenet ellenőrzése
IoT Edge-eszköz kimenete
Az avroFileWriter modul kimenete könnyen megfigyelhető az IoT Edge-eszköz megvizsgálásával.
Kapcsolódjon SSH-n keresztül az IoT Edge virtuális gépre.
Keresse meg a lemezre írt fájlokat.
find /data/avrofiles -type fA parancs kimenete a következő példához hasonlóan fog kinézni:
/data/avrofiles/2019/4/18/22/10.avroA futtatás időzítésétől függően több fájl is lehet.
Ügyeljen az időbélyegekre. Az avroFileWriter modul feltölti a fájlokat a felhőbe, ha az utolsó módosítási idő több mint 10 perc a múltban (lásd az MODIFIED_FILE_TIMEOUT uploader.py az avroFileWriter modulban).
A 10 perc eltelte után a modulnak fel kell töltenie a fájlokat. Ha a feltöltés sikeres, törli a fájlokat a lemezről.
Azure Storage
Az alsóbb rétegbeli eszköz adatainak küldésével azokat a tárfiókokat tekinthetjük meg, ahol az adatok átirányítására számítunk.
A fejlesztői gépen nyissa meg a Visual Studio Code-ot.
A tárterület ablakának "AZURE STORAGE" paneljén navigáljon a fára a tárfiók megkereséséhez.
Bontsa ki a Blob Containers csomópontot.
Az oktatóanyag előző részében végzett munkából arra számítunk, hogy a ruldata-tárolónak tartalmaznia kell az RUL-jal rendelkező üzeneteket. Bontsa ki a ruldata csomópontot.
Egy vagy több blobfájl neve a következő lesz:
<IoT Hub Name>/<partition>/<year>/<month>/<day>/<hour>/<minute>.Kattintson a jobb gombbal az egyik fájlra, és válassza a Blob letöltése lehetőséget a fájl fejlesztői gépre való mentéséhez.
Ezután bontsa ki az uploadturbofanfiles csomópontot . Az előző cikkben ezt a helyet állítottuk be célként az avroFileWriter modul által feltöltött fájlok számára.
Kattintson a jobb gombbal a fájlokra, és a Blob letöltése gombra kattintva mentse a fájlt a fejlesztőgépre.
Az Avro-fájl tartalmának olvasása
Tartalmaztunk egy egyszerű parancssori segédprogramot egy Avro-fájl olvasásához és a fájlban lévő üzenetek JSON-sztringjének visszaadására. Ebben a szakaszban telepítjük és futtatjuk.
Nyisson meg egy terminált a Visual Studio Code-ban (Terminál>új terminál).
Telepítse a HubAvroReadert:
pip install c:\source\IoTEdgeAndMlSample\HubAvroReaderA hubavroreader használatával olvassa el a ruldata-ból letöltött Avro-fájlt.
hubavroreader <avro file with ath> | moreVegye figyelembe, hogy az üzenet törzse a vártnak megfelelően néz ki az eszközazonosítóval és az előrejelzett RUL-val.
{ "Body": { "ConnectionDeviceId": "Client_001", "CorrelationId": "3d0bc256-b996-455c-8930-99d89d351987", "CycleTime": 1.0, "PredictedRul": 170.1723693909444 }, "EnqueuedTimeUtc": "<time>", "Properties": { "ConnectionDeviceId": "Client_001", "CorrelationId": "3d0bc256-b996-455c-8930-99d89d351987", "CreationTimeUtc": "01/01/0001 00:00:00", "EnqueuedTimeUtc": "01/01/0001 00:00:00" }, "SystemProperties": { "connectionAuthMethod": "{\"scope\":\"module\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}", "connectionDeviceGenerationId": "636857841798304970", "connectionDeviceId": "aaTurbofanEdgeDevice", "connectionModuleId": "turbofanRouter", "contentEncoding": "utf-8", "contentType": "application/json", "correlationId": "3d0bc256-b996-455c-8930-99d89d351987", "enqueuedTime": "<time>", "iotHubName": "mledgeiotwalkthroughhub" } }Futtassa ugyanazt a parancsot, amely az uploadturbofanfiles fájlból letöltött Avro-fájlt adja át.
A vártnak megfelelően ezek az üzenetek tartalmazzák az eredeti üzenet érzékelőadatait és működési beállításait. Ezek az adatok felhasználhatók az RUL-modell továbbfejlesztésére a peremeszközön.
{ "Body": { "CycleTime": 1.0, "OperationalSetting1": -0.0005000000237487257, "OperationalSetting2": 0.00039999998989515007, "OperationalSetting3": 100.0, "PredictedRul": 170.17236328125, "Sensor1": 518.6699829101562, "Sensor10": 1.2999999523162842, "Sensor11": 47.29999923706055, "Sensor12": 522.3099975585938, "Sensor13": 2388.010009765625, "Sensor14": 8145.31982421875, "Sensor15": 8.424599647521973, "Sensor16": 0.029999999329447746, "Sensor17": 391.0, "Sensor18": 2388.0, "Sensor19": 100.0, "Sensor2": 642.3599853515625, "Sensor20": 39.11000061035156, "Sensor21": 23.353700637817383, "Sensor3": 1583.22998046875, "Sensor4": 1396.8399658203125, "Sensor5": 14.619999885559082, "Sensor6": 21.610000610351562, "Sensor7": 553.969970703125, "Sensor8": 2387.9599609375, "Sensor9": 9062.169921875 }, "ConnectionDeviceId": "Client_001", "CorrelationId": "70df0c98-0958-4c8f-a422-77c2a599594f", "CreationTimeUtc": "0001-01-01T00:00:00+00:00", "EnqueuedTimeUtc": "<time>" }
Erőforrások tisztítása
Ha az ebben a végpontok közötti oktatóanyagban használt erőforrásokat szeretné megismerni, várjon, amíg el nem végzi a létrehozott erőforrások törlését. Ellenkező esetben a következő lépésekkel törölheti őket:
Törölje a fejlesztői virtuális gép, az IoT Edge virtuális gép, az IoT Hub, a tárfiók, a gépi tanulási munkaterület szolgáltatás (és a létrehozott erőforrások: tárolóregisztrációs adatbázis, Application Insights, key vault, tárfiók) tárolásához létrehozott erőforráscsoport(ok) törlését.
Törölje a gépi tanulási projektet az Azure Notebooksban.
Ha helyileg klónozta az adattárat, zárja be a helyi adattárra hivatkozó Bármely PowerShell- vagy VS Code-ablakot, majd törölje az adattár könyvtárát.
Ha helyileg hozott létre tanúsítványokat, törölje a c:\edgeCertificates mappát.
Következő lépések
Ebben a cikkben a fejlesztési virtuális gépünkkel szimuláltunk egy alsóbb rétegbeli eszközt, amely érzékelőt és működési adatokat küld az IoT Edge-eszköznek. Ellenőriztük, hogy az eszközön lévő modulok átirányították, besorolták, megőrizték és feltöltötte az adatokat a peremeszköz valós idejű működésének vizsgálatával, valamint a tárfiókba feltöltött fájlok megtekintésével.
Az IoT Edge képességeinek megismeréséhez próbálkozzon a következő oktatóanyagkal: