Tutorial: Generieren simulierter Gerätedaten
Gilt für: IoT Edge 1.1
Wichtig
IoT Edge 1.1: Datum für das Supportende war der 13. Dezember 2022. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.
In diesem Artikel verwenden wir Machine Learning-Trainingsdaten, um ein Gerät zu simulieren, das Telemetriedaten an Azure IoT Hub sendet. Wie eingangs erwähnt, wird in diesem Tutorial das Turbofan Engine Degradation Simulation-Dataset genutzt, um Flugzeugtriebwerk-Daten für das Trainieren und Testen zu simulieren.
Wir verfügen für unser experimentelles Szenario über das folgende Wissen:
- Die Daten bestehen aus mehreren multivariaten Zeitreihen.
- Jedes Dataset ist in Unterbereiche für das Training und für Tests unterteilt.
- Jede Zeitreihe stammt von einem anderen Triebwerk.
- Bei jedem Triebwerk wird mit unterschiedlich großem Anfangsverschleiß und unterschiedlicher Fertigungsabweichung begonnen.
In diesem Tutorial verwenden wir nur die Trainingsdaten eines Datasets (FD003).
In einer realen Umgebung stellt jedes Triebwerk ein unabhängiges IoT-Gerät dar. Da wir davon ausgehen, dass Sie nicht über eine Sammlung mit Turbofan-Triebwerken mit Internetverbindung verfügen, erstellen wir einen Softwareersatz für diese Geräte.
Der Simulator ist ein C#-Programm, bei dem die IoT Hub-APIs zum programmgesteuerten Registrieren von virtuellen Geräten bei IoT Hub verwendet werden. Anschließend lesen wir die Daten für jedes Gerät aus der Datenteilmenge aus, die von der NASA bereitgestellt wurde, und senden sie über ein simuliertes IoT-Gerät an Ihren IoT-Hub. Den gesamten Code für diesen Teil des Tutorials finden Sie im Verzeichnis „DeviceHarness“ des Repositorys.
Das DeviceHarness-Projekt ist ein .NET Core-Projekt in C#, das aus vier Klassen besteht:
- Program: Der Einstiegspunkt für die Ausführung, der für die Verarbeitung der Benutzereingabe und die allgemeine Koordination zuständig ist.
- TrainingFileManager: Zuständig für das Lesen und Analysieren der ausgewählten Datendatei.
- CycleData: Steht für eine einzelne Zeile mit Daten in einer Datei, die in das Nachrichtenformat konvertiert wurde.
- TurbofanDevice: Zuständig für die Erstellung eines IoT-Geräts, das einem Gerät (Zeitreihe) in den Daten entspricht und die Daten an IoT Hub überträgt.
Die Abarbeitung der in diesem Artikel beschriebenen Aufgaben sollte ungefähr 20 Minuten dauern.
Die realen Abläufe dieses Schritts werden meist von Geräte- und Cloudentwicklern durchgeführt.
In diesem Abschnitt des Tutorials lernen Sie Folgendes:
- Integrieren eines externes Projekt in Ihre Entwicklungsumgebung
- Generieren simulierter IoT-Gerätedaten mithilfe des Beispielprojekts „DeviceHarness“
- Anzeigen generierter Daten in IoT Hub
Voraussetzungen
Dieser Artikel ist Teil einer Tutorialreihe zur Verwendung von Azure Machine Learning für IoT Edge. Jeder Artikel in der Reihe baut auf der Arbeit im vorherigen Artikel auf. Wenn Sie diesen Artikel direkt aufgerufen haben, wechseln Sie zum ersten Artikel in der Reihe.
Konfigurieren von Visual Studio Code und Erstellen des DeviceHarness-Projekts
Öffnen Sie eine Remotedesktopsitzung auf Ihrem virtuellen Entwicklungscomputer.
Öffnen Sie in Visual Studio Code den Ordner
C:\source\IoTEdgeAndMlSample\DeviceHarness
.Da Sie auf diesem Computer zum ersten Mal Erweiterungen nutzen, werden einige Erweiterungen aktualisiert und die zugehörigen Abhängigkeiten installiert. Unter Umständen werden Sie aufgefordert, die Erweiterung zu aktualisieren. Wählen Sie in diesem Fall die Option Fenster erneut laden.
Wenn im Ausgabefenster OmniSharp-Fehler angezeigt werden, müssen Sie die C#-Erweiterung deinstallieren.
Sie werden aufgefordert, die erforderliche Ressourcen für „DeviceHarness“ hinzuzufügen. Wählen Sie Ja, um sie hinzuzufügen.
- Es kann einige Sekunden dauern, bis die Benachrichtigung angezeigt wird.
- Falls Sie diese Benachrichtigung verpasst haben, können Sie über das Glockensymbol in der unteren rechten Ecke darauf zugreifen.
Wählen Sie Wiederherstellen, um die Paketabhängigkeiten wiederherzustellen.
Wenn Sie diese Benachrichtigungen nicht erhalten, sollten Sie Visual Studio Code schließen, die Verzeichnisse „bin“ und „obj“ unter
C:\source\IoTEdgeAndMlSample\DeviceHarness
löschen, Visual Studio Code öffnen und dann wieder den Ordner „DeviceHarness“ öffnen.Überprüfen Sie, ob Ihre Umgebung richtig eingerichtet ist, indem Sie einen Buildvorgang auslösen. Verwenden Sie hierfür entweder STRG + UMSCHALT + B oder die Option Terminal>Buildtask ausführen.
Sie werden aufgefordert, den auszuführenden Buildtask auszuwählen. Wählen Sie Build aus.
Der Buildvorgang wird durchgeführt, und es wird eine Erfolgsmeldung ausgegeben.
Sie können diesen Buildvorgang mit der Standard-Buildtask durchführen, indem Sie Terminal>Configure Default Build Task... (Standard-Buildtask konfigurieren...) und dann in der Eingabeaufforderung die Option Build wählen.
Herstellen einer Verbindung mit dem IoT-Hub und Ausführen von „DeviceHarness“
Da das Projekt jetzt erstellt wird, können Sie eine Verbindung mit Ihrem IoT-Hub herstellen, um auf die Verbindungszeichenfolge zuzugreifen und den Fortschritt bei der Datengenerierung zu überwachen.
Anmelden bei Azure in Visual Studio Code
Melden Sie sich an Ihrem Azure-Abonnement in Visual Studio Code an, indem Sie die Befehlspalette öffnen. Verwenden Sie hierfür
Ctrl + Shift + P
oder Ansicht>Befehlspalette.Suchen Sie nach dem Befehl Azure: Anmelden.
Ein Browserfenster wird geöffnet, und Sie werden zum Eingeben Ihrer Anmeldeinformationen aufgefordert. Sie können den Browser schließen, nachdem Sie auf eine Seite mit einer Erfolgsmeldung geleitet wurden.
Herstellen einer Verbindung mit Ihrem IoT-Hub und Abrufen der Hub-Verbindungszeichenfolge
Wählen Sie im unteren Abschnitt des Visual Studio Code-Explorers den Bereich Azure IoT Hub aus, um ihn zu erweitern.
Klicken Sie im erweiterten Bereich auf IoT-Hub auswählen.
Wählen Sie bei entsprechender Aufforderung Ihr Azure-Abonnement und dann Ihren IoT-Hub aus.
Klicken Sie rechts von Azure IoT Hub auf ... , um weitere Aktionen anzuzeigen. Wählen Sie die Option Copy IoT Hub connection string (IoT Hub-Verbindungszeichenfolge kopieren).
Ausführen des Projekts „DeviceHarness“
Wählen Sie Ansicht>Terminal, um das Visual Studio Code-Terminal zu öffnen.
Drücken Sie die EINGABETASTE, wenn keine Eingabeaufforderung angezeigt wird.
Geben Sie im Terminal
dotnet run
ein.Fügen Sie die Verbindungszeichenfolge ein, die Sie im vorherigen Schritt kopiert haben, wenn Sie zum Eingeben der IoT Hub-Verbindungszeichenfolge aufgefordert werden.
Klicken Sie im Bereich Azure IoT Hub-Geräte auf die Schaltfläche „Aktualisieren“.
Beachten Sie, dass Geräte dem IoT-Hub hinzugefügt und die Geräte grün angezeigt werden, um anzugeben, dass über das jeweilige Gerät Daten gesendet werden. Nachdem Geräte Nachrichten an den IoT-Hub gesendet haben, wird die Verbindung getrennt, und sie werden blau angezeigt.
Sie können an den Hub gesendete Nachrichten anzeigen, indem Sie mit der rechten Maustaste auf ein Gerät klicken und Überwachung des integrierten Ereignisendpunkts starten auswählen. Die Nachrichten werden in Visual Studio Code im Ausgabebereich angezeigt.
Beenden Sie die Überwachung, indem Sie auf den Ausgabebereich Azure IoT Hub klicken und die Option Überwachung des integrierten Ereignisendpunkts beenden auswählen.
Warten Sie, bis die Ausführung der Anwendung abgeschlossen ist. Dies dauert einige Minuten.
Überprüfen des IoT-Hubs auf Aktivität
Die von DeviceHarness gesendeten Daten wurden an Ihren IoT-Hub übertragen. Dies können Sie im Azure-Portal überprüfen.
Öffnen Sie das Azure-Portal, und navigieren Sie zum IoT-Hub, der für dieses Tutorial erstellt wurde.
Wählen Sie im Menü im linken Bereich unter Überwachung die Option Metriken aus.
Klicken Sie auf der Seite mit der Diagrammdefinition auf die Dropdownliste Metrik, scrollen Sie in der Liste nach unten, und wählen Sie Routing: An den Speicher übermittelte Daten aus. Im Diagramm sollte für den Zeitpunkt, zu dem die Daten an den Speicher weitergeleitet wurden, ein Spitzenwert angezeigt werden.
Überprüfen von Daten in Azure Storage
Die Daten, die wir gerade an Ihren IoT-Hub gesendet haben, wurden an den Speichercontainer geleitet, den wir im vorherigen Artikel erstellt haben. Wir sehen uns nun die Daten in unserem Speicherkonto an.
Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.
Wählen Sie im Navigator des Speicherkontos die Option Storage-Explorer (Vorschau) .
Wählen Sie im Storage-Explorer die Option Blobcontainer und dann
devicedata
aus.Klicken Sie im Inhaltsbereich auf den Ordner mit dem Namen des IoT-Hubs (gefolgt von Jahr, Monat, Tag und Stunde). Es werden mehrere Ordner angezeigt. Diese stehen für die Minuten, in denen der Schreibvorgang für die Daten durchgeführt wurde.
Klicken Sie in einen dieser Ordner, um nach Datendateien mit den Bezeichnungen 00 und 01 für die Partition zu suchen.
Die Dateien werden im Avro-Format geschrieben. Doppelklicken Sie auf eine dieser Dateien, um eine weitere Browserregisterkarte zu öffnen und die Daten teilweise zu rendern. Wenn Sie aufgefordert werden, die Datei in einem Programm zu öffnen, können Sie VS Code auswählen. Die Daten werden dann richtig gerendert.
Es ist nicht erforderlich, die Daten jetzt zu lesen oder zu interpretieren. Dies erledigen wir im nächsten Artikel.
Bereinigen von Ressourcen
Dieses Tutorial ist Teil einer Reihe, in der jeder Artikel auf den Schritten aufbaut, die jeweils im vorherigen Artikel ausgeführt wurden. Warten Sie mit dem Bereinigen von Ressourcen, bis Sie das letzte Tutorial abgeschlossen haben.
Nächste Schritte
In diesem Artikel haben wir ein .NET Core-Projekt zum Erstellen einer Reihe von virtuellen IoT-Geräten verwendet, über die Daten an unseren IoT-Hub und in einen Azure Storage-Container gesendet wurden. Mit diesem Projekt wird ein reales Szenario simuliert, bei dem physische IoT-Geräte Daten an einen IoT-Hub und weiter in einen zusammengestellten Speicher senden. Bei diesen Daten handelt es sich um Sensormesswerte, Betriebseinstellungen, Fehlersignale und -modi usw. Nachdem genügend Daten erfasst wurden, verwenden wir diese zum Trainieren von Modellen, mit denen die Restlebensdauer (RUL) des Geräts vorhergesagt wird. Dieser Vorgang für maschinelles Lernen wird im nächsten Artikel veranschaulicht.
Fahren Sie mit dem nächsten Artikel fort, um ein Machine Learning-Modell mit den Daten zu trainieren.