Udostępnij za pośrednictwem


Samouczek: generowanie danych symulowanego urządzenia

Dotyczy: Ikona tak IoT Edge 1.1

Ważne

Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Aktualizowanie usługi IoT Edge.

W tym artykule użyjemy danych uczenia maszynowego do symulowania urządzenia wysyłającego dane telemetryczne do usługi Azure IoT Hub. Zgodnie z wprowadzeniem w tym samouczku dane symulacji degradacji silnika Turbofan są używane do symulowania danych z zestawu silników samolotowych do trenowania i testowania.

W naszym scenariuszu eksperymentalnym wiemy, że:

  • Dane składają się z wielu wielowariancji szeregów czasowych.
  • Każdy zestaw danych jest podzielony na podzestawy trenowania i testowania.
  • Każda seria czasowa pochodzi z innego silnika.
  • Każdy silnik zaczyna się od różnych stopni początkowego zużycia i odmiany produkcyjnej.

Na potrzeby tego samouczka używamy podzestawu danych treningowych pojedynczego zestawu danych (FD003).

W rzeczywistości każdy aparat będzie niezależnym urządzeniem IoT. Zakładając, że nie masz dostępnej kolekcji połączonych z Internetem silników turbofanowych, utworzymy oprogramowanie stand-in dla tych urządzeń.

Symulator to program języka C#, który program używa interfejsów API usługi IoT Hub do programowego rejestrowania urządzeń wirtualnych w usłudze IoT Hub. Następnie odczytujemy dane dla każdego urządzenia z podzestawu danych dostarczonego przez NASA i wyślemy je do centrum IoT przy użyciu symulowanego urządzenia IoT. Cały kod tego samouczka można znaleźć w katalogu DeviceHarness repozytorium.

Projekt DeviceHarness to projekt platformy .NET Core napisany w języku C# składający się z czterech klas:

  • Program: punkt wejścia do wykonania odpowiedzialny za obsługę danych wejściowych użytkownika i ogólną koordynację.
  • TrainingFileManager: odpowiedzialny za odczytywanie i analizowanie wybranego pliku danych.
  • CycleData: reprezentuje pojedynczy wiersz danych w pliku przekonwertowanym na format komunikatu.
  • TurbofanDevice: Odpowiedzialny za tworzenie urządzenia IoT, które odpowiada jednemu urządzeniu (szeregowi czasowemu) w danych i przesyłaniu danych do usługi IoT Hub.

Ukończenie zadań opisanych w tym artykule powinno potrwać około 20 minut.

Rzeczywisty odpowiednik pracy w tym kroku prawdopodobnie będzie wykonywany przez deweloperów urządzeń i deweloperów chmury.

W tej sekcji samouczka dowiesz się, jak wykonywać następujące działania:

  • Dołączanie projektu zewnętrznego do środowiska projektowego.
  • Przykładowy projekt DeviceHarness umożliwia generowanie symulowanych danych urządzenia IoT.
  • Wyświetlanie wygenerowanych danych w usłudze IoT Hub.

Wymagania wstępne

Ten artykuł jest częścią serii samouczka dotyczącego korzystania z usługi Azure Machine Learning w usłudze IoT Edge. Każdy artykuł z serii opiera się na pracy w poprzednim artykule. Jeśli dotarłeś bezpośrednio do tego artykułu, odwiedź pierwszy artykuł z serii.

Konfigurowanie programu Visual Studio Code i kompilowanie projektu DeviceHarness

  1. Otwórz sesję pulpitu zdalnego na maszynie wirtualnej dewelopera.

  2. W programie Visual Studio Code otwórz C:\source\IoTEdgeAndMlSample\DeviceHarness folder .

  3. Ponieważ używasz rozszerzeń na tym komputerze po raz pierwszy, niektóre rozszerzenia zaktualizują i zainstalują ich zależności. Może zostać wyświetlony monit o zaktualizowanie rozszerzenia. Jeśli tak, wybierz pozycję Załaduj ponownie okno.

    Jeśli w oknie danych wyjściowych pojawią się błędy OmniSharp, należy odinstalować rozszerzenie języka C#.

  4. Zostanie wyświetlony monit o dodanie wymaganych zasobów dla urządzeniaHarness. Wybierz pozycję Tak , aby je dodać.

    • Wyświetlenie powiadomienia może potrwać kilka sekund.
    • Jeśli pominięto to powiadomienie, sprawdź ikonę dzwonka w prawym dolnym rogu.

    Rozszerzenie programu VS Code — menu podręczne

  5. Wybierz pozycję Przywróć, aby przywrócić zależności pakietu.

    Monit o przywrócenie programu VS Code

    Jeśli te powiadomienia nie zostaną wyświetlone, zamknij program Visual Studio Code, usuń katalogi bin i obj w C:\source\IoTEdgeAndMlSample\DeviceHarnessprogramie , otwórz program Visual Studio Code i otwórz ponownie folder DeviceHarness.

  6. Sprawdź, czy środowisko jest prawidłowo skonfigurowane, wyzwalając kompilację, Ctrl + Shift + B lub Zadanie kompilacji przebiegu terminalu.>

  7. Zostanie wyświetlony monit o wybranie zadania kompilacji do uruchomienia. Wybierz pozycję Kompilacja.

  8. Kompilacja uruchamia i generuje komunikat o powodzeniu.

    Komunikat wyjściowy kompilacji zakończył się pomyślnie

  9. Możesz ustawić tę kompilację jako domyślne zadanie kompilacji, wybierając pozycję Terminal>Konfiguruj domyślne zadanie kompilacji... i wybierając pozycję Kompiluj w wierszu polecenia.

Nawiązywanie połączenia z usługą IoT Hub i uruchamianie urządzeniaHarness

Po utworzeniu projektu połącz się z centrum IoT, aby uzyskać dostęp do parametry połączenia i monitorować postęp generowania danych.

Logowanie do platformy Azure w programie Visual Studio Code

  1. Zaloguj się do subskrypcji platformy Azure w programie Visual Studio Code, Ctrl + Shift + P otwierając paletę poleceń lub Wyświetl>paletę poleceń.

  2. Wyszukaj polecenie Azure: Sign In (Azure: Zaloguj się).

    Zostanie otwarte okno przeglądarki z monitem o podanie poświadczeń. Po przekierowaniu do strony sukcesu możesz zamknąć przeglądarkę.

Nawiązywanie połączenia z centrum IoT i pobieranie centrum parametry połączenia

  1. W dolnej sekcji Eksploratora programu Visual Studio Code wybierz ramkę usługi Azure IoT Hub , aby ją rozwinąć.

  2. W rozwiniętej ramce kliknij pozycję Wybierz centrum IoT Hub.

  3. Po wyświetleniu monitu wybierz subskrypcję platformy Azure, a następnie centrum IoT Hub.

  4. Kliknij pozycję ... po prawej stronie usługi Azure IoT Hub , aby uzyskać więcej akcji. Wybierz pozycję Kopiuj parametry połączenia usługi IoT Hub.

    Kopiowanie parametry połączenia usługi IoT Hub

Uruchamianie projektu DeviceHarness

  1. Wybierz pozycję Wyświetl>terminal, aby otworzyć terminal programu Visual Studio Code.

    Jeśli nie widzisz monitu, naciśnij Enter.

  2. Wprowadź w terminalu polecenie dotnet run.

  3. Po wyświetleniu monitu o parametry połączenia usługi IoT Hub wklej parametry połączenia skopiowaną w poprzedniej sekcji.

  4. W ramce urządzeń usługi Azure IoT Hub kliknij przycisk odświeżenia.

    Odświeżanie listy urządzeń usługi IoT Hub

  5. Należy pamiętać, że urządzenia są dodawane do usługi IoT Hub i że urządzenia są wyświetlane na zielono, aby wskazać, że dane są wysyłane za pośrednictwem tego urządzenia. Gdy urządzenia wysyłają komunikaty do centrum IoT Hub, rozłączają się i pojawiają się na niebiesko.

  6. Komunikaty wysyłane do centrum można wyświetlić, klikając prawym przyciskiem myszy dowolne urządzenie i wybierając pozycję Rozpocznij monitorowanie wbudowanego punktu końcowego zdarzeń. Komunikaty będą wyświetlane w okienku danych wyjściowych w programie Visual Studio Code.

  7. Zatrzymaj monitorowanie, klikając okienko danych wyjściowych usługi Azure IoT Hub , a następnie wybierz pozycję Zatrzymaj monitorowanie wbudowanego punktu końcowego zdarzeń.

  8. Niech aplikacja zostanie uruchomiona do ukończenia, co potrwa kilka minut.

Sprawdzanie usługi IoT Hub pod kątem działania

Dane wysyłane przez urządzenieHarness zostały przekazane do centrum IoT Hub, gdzie można zweryfikować w witrynie Azure Portal.

  1. Otwórz witrynę Azure Portal i przejdź do centrum IoT Utworzonego na potrzeby tego samouczka.

  2. W menu okienka po lewej stronie w obszarze Monitorowanie wybierz pozycję Metryki.

  3. Na stronie definicji wykresu kliknij listę rozwijaną Metryka , przewiń listę i wybierz pozycję Routing: dane dostarczane do magazynu. Wykres powinien pokazywać skok, kiedy dane zostały przekierowane do magazynu.

    Wykres pokazuje skok, gdy dane są dostarczane do magazynu

Weryfikowanie danych w usłudze Azure Storage

Dane, które właśnie wysłaliśmy do centrum IoT, zostały przekierowane do kontenera magazynu utworzonego w poprzednim artykule. Przyjrzyjmy się danym na naszym koncie magazynu.

  1. W witrynie Azure Portal przejdź do swojego konta magazynu.

  2. W nawigatorze konta magazynu wybierz pozycję Eksplorator usługi Storage (wersja zapoznawcza)..

  3. W Eksploratorze magazynu wybierz pozycję Kontenery obiektów blob, a następnie devicedata.

  4. W okienku zawartości kliknij folder dla nazwy centrum IoT, a następnie rok, miesiąc, dzień i godzinę. Zobaczysz kilka folderów reprezentujących minuty, w których dane zostały zapisane.

    Wyświetlanie folderów w magazynie obiektów blob

  5. Kliknij jeden z tych folderów, aby znaleźć pliki danych oznaczone etykietą 00 i 01 odpowiadające partycji.

  6. Pliki są zapisywane w formacie Avro . Kliknij dwukrotnie jeden z tych plików, aby otworzyć inną kartę przeglądarki i częściowo renderować dane. Jeśli zostanie wyświetlony monit o otwarcie pliku w programie, możesz wybrać program VS Code i będzie on renderowany poprawnie.

  7. Nie trzeba teraz próbować odczytywać ani interpretować danych; Zrobimy to w następnym artykule.

Czyszczenie zasobów

Ten samouczek jest częścią zestawu, w którym każdy artykuł opiera się na pracy wykonanej w poprzednich. Poczekaj, aż ukończysz ostatni samouczek, zaczekaj na wyczyszczenie wszystkich zasobów.

Następne kroki

W tym artykule użyliśmy projektu platformy .NET Core do utworzenia zestawu wirtualnych urządzeń IoT i wysyłania danych do naszego centrum IoT i kontenera usługi Azure Storage. Ten projekt symuluje rzeczywisty scenariusz, w którym fizyczne urządzenia IoT wysyłają dane do usługi IoT Hub i do wewnątrz do wyselekcjonowanych magazynów. Te dane obejmują odczyty czujników, ustawienia operacyjne, sygnały awarii i tryby itd. Po zebraniu wystarczającej ilości danych użyjemy ich do wytrenowania modeli, które przewidują pozostały okres eksploatacji (RUL) dla urządzenia. W następnym artykule pokażemy to uczenie maszynowe.

Przejdź do następnego artykułu, aby wytrenować model uczenia maszynowego przy użyciu danych.