Dela via


Självstudie: Generera simulerade enhetsdata

gäller för:ja-ikonen IoT Edge 1.1

Viktigt!

IoT Edge 1.1 supportdatumet upphör var den 13 december 2022. I informationen om Microsoft-produktens livscykel hittar du fler uppgifter om vilken support som gäller för denna produkt, tjänst, teknik eller detta API. Mer information om hur du uppdaterar till den senaste versionen av IoT Edge finns i Uppdatera IoT Edge-.

I den här artikeln använder vi maskininlärningsträningsdata för att simulera en enhet som skickar telemetri till Azure IoT Hub. Som anges i introduktionen använder handledningen datauppsättningen för turbofanmotorns nedbrytningssimulering för att simulera data från ett antal flygplansmotorer för att träna och testa.

I vårt experimentella scenario vet vi att:

  • Data består av flera multivariata tidsserier.
  • Varje datauppsättning är indelad i tränings- och testdeluppsättningar.
  • Varje tidsserie kommer från en annan motor.
  • Varje motor börjar med olika grader av initialt slitage och tillverkningsvariant.

I den här självstudien använder vi delmängden träningsdata från ett enskilt dataset (FD003).

I verkligheten skulle varje motor vara en oberoende IoT-enhet. Förutsatt att du inte har en samling internet-anslutna turbofanmotorer tillgängliga, kommer vi att bygga ett programvaruersättare för dessa enheter.

Simulatorn är ett C#-program som använder IoT Hub-API:erna för att programmatiskt registrera virtuella enheter med IoT Hub. Sedan läser vi data för varje enhet från den NASA-tillhandahållna datadelmängden och skickar dem till din IoT-hubb med hjälp av en simulerad IoT-enhet. All kod för den här delen av handledningen finns i katalogen DeviceHarness på lagringsplatsen.

DeviceHarness-projektet är ett .NET Core-projekt skrivet i C# som består av fyra klasser:

  • Program: Startpunkten för körningen som ansvarar för att hantera användarinmatning och den övergripande samordningen.
  • TrainingFileManager: Ansvarar för att läsa och parsa den valda datafilen.
  • CycleData: Representerar en enskild rad med data i en fil som konverterats till meddelandeformat.
  • TurbofanDevice: Ansvarig för att skapa en IoT-enhet, som motsvarar en enda enhet (tidsserie) i data och för att överföra data till IoT Hub.

De uppgifter som beskrivs i den här artikeln bör ta cirka 20 minuter att slutföra.

Den verkliga motsvarigheten till arbetet i det här steget skulle sannolikt utföras av enhetsutvecklare och molnutvecklare.

I det här avsnittet av självstudien lär du dig att:

  • Införliva ett externt projekt i utvecklingsmiljön.
  • Använd deviceHarness-exempelprojektet för att generera simulerade IoT-enhetsdata.
  • Visa genererade data i din IoT Hub.

Förutsättningar

Den här artikeln är en del av en serie för en självstudie om hur du använder Azure Machine Learning på IoT Edge. Varje artikel i serien bygger på arbetet i föregående artikel. Om du har kommit direkt till den här artikeln kan du gå till den första artikeln i serien.

Konfigurera Visual Studio Code och skapa DeviceHarness-projekt

  1. Öppna en fjärrskrivbordssession på den virtuella utvecklingsdatorn.

  2. I Visual Studio Code, öppna C:\source\IoTEdgeAndMlSample\DeviceHarness-mappen.

  3. Eftersom du använder tillägg på den här datorn för första gången kommer vissa tillägg att uppdatera och installera deras beroenden. Du kan uppmanas att uppdatera tillägget. I så fall väljer du Läs in fönstret igen.

    Om OmniSharp-fel visas i utdatafönstret måste du avinstallera C#-tillägget.

  4. Du uppmanas att lägga till nödvändiga tillgångar för DeviceHarness. Välj Ja för att lägga till dem.

    • Det kan ta några sekunder innan meddelandet visas.
    • Om du missade det här meddelandet kontrollerar du klockikonen i det nedre högra hörnet.

    Popupfönster för VS Code-tillägg

  5. Välj Återställ för att återställa paketberoendena.

    Återställningsprompt för VS Code

    Om du inte får dessa meddelanden stänger du Visual Studio Code, tar bort bin- och obj-katalogerna i C:\source\IoTEdgeAndMlSample\DeviceHarness, öppnar Visual Studio Code och öppnar mappen DeviceHarness igen.

  6. Kontrollera att din miljö har konfigurerats korrekt genom att starta en build, Ctrl + Skift + B, eller Terminal>Kör bygguppgift.

  7. Du uppmanas att välja den bygguppgift som ska köras. Välj Bygg.

  8. Bygget körs och ett framgångsmeddelande visas.

    Utdatameddelande som har skapats har slutförts

  9. Du kan göra den här kompileringsuppgiften till standardversion genom att välja Terminal>Configure Default Build Task... och välja Skapa i kommandotolken.

Anslut till IoT Hub och kör DeviceHarness

Nu när vi har projektbyggnaden ansluter du till din IoT-hubb för att komma åt anslutningssträngen och övervaka förloppet för datagenereringen.

Logga in på Azure i Visual Studio Code

  1. Logga in på din Azure-prenumeration i Visual Studio Code genom att öppna kommandopaletten Ctrl + Shift + P eller visa>kommandopaletten.

  2. Sök efter kommandot Azure: Sign In .

    Ett webbläsarfönster öppnas och du uppmanas att ange dina autentiseringsuppgifter. När du omdirigeras till en lyckad sida kan du stänga webbläsaren.

Ansluta till din IoT-hubb och hämta hubbanslutningssträngen

  1. I det nedre avsnittet i Visual Studio Code-utforskaren väljer du Azure IoT Hub-ramen för att expandera den.

  2. I den expanderade ramen klickar du på Välj IoT Hub.

  3. När du uppmanas till det väljer du din Azure-prenumeration och sedan din IoT-hubb.

  4. Klicka på ... till höger om Azure IoT Hub för fler åtgärder. Välj Kopiera IoT Hub-anslutningssträng.

    Kopiera IoT Hub-anslutningssträng

Kör DeviceHarness-projektet

  1. Välj Visa>terminal för att öppna Visual Studio Code-terminalen.

    Om du inte ser en uppmaning, tryck på Retur.

  2. Ange dotnet run i terminalen.

  3. När du uppmanas att ange anslutningssträngen för IoT Hub klistrar du in anslutningssträngen som kopierades i föregående avsnitt.

  4. I ramen för Azure IoT Hub-enheter klickar du på uppdateringsknappen.

    Uppdatera enhetslistan för IoT Hub

  5. Observera att enheter läggs till i IoT Hub och att enheterna visas i grönt för att indikera att data skickas via den enheten. När enheterna har skickat meddelanden till IoT-hubben kopplar de från och ser blå ut.

  6. Du kan visa meddelanden som skickas till hubben genom att högerklicka på valfri enhet och välja Starta övervakning inbyggd händelseslutpunkt. Meddelandena visas i utdatafönstret i Visual Studio Code.

  7. Stoppa övervakningen genom att klicka i utdatafönstret för Azure IoT Hub och välj Stoppa övervakning inbyggd händelseslutpunkt.

  8. Låt programmet köras klart, vilket tar några minuter.

Kontrollera IoT Hub för aktivitet

Data som skickas av DeviceHarness gick till din IoT-hubb, där du kan verifiera i Azure-portalen.

  1. Öppna Azure-portalen och gå till den IoT-hubb som skapats för den här självstudien.

  2. Välj Mått i den vänstra menyn under Övervakning.

  3. På diagramdefinitionssidan klickar du på listrutan Mått, bläddrar ned i listan och väljer Ruttning: data som levereras till lagring. Diagrammet bör visa en topp när data dirigerades till lagring.

    Diagrammet visar en topp när data levereras till lagringsenheten

Verifiera data i Azure Storage

De data som vi just skickade till din IoT-hubb dirigerades till lagringscontainern som vi skapade i föregående artikel. Nu ska vi titta på data i vårt lagringskonto.

  1. Navigera till ditt lagringskonto på Azure-portalen.

  2. Välj Storage Explorer (förhandsversion) i navigatören för lagringskontot.

  3. I lagringsutforskaren väljer du BlobContainrar och sedan devicedata.

  4. I innehållsfönstret klickar du på mappen för namnet på IoT-hubben följt av år, månad, dag och timme. Du ser flera mappar som representerar de minuter då data skrevs.

    Visa mappar i Blob Storage

  5. Klicka i någon av dessa mappar för att hitta datafiler märkta 00 och 01 som motsvarar partitionen.

  6. Filerna är skrivna i Avro-format . Dubbelklicka på en av dessa filer för att öppna en annan webbläsarflik och delvis återge data. Om du uppmanas att öppna filen i ett program kan du välja VS Code så renderas den korrekt.

  7. Du behöver inte försöka läsa eller tolka data just nu. vi kommer att göra det i nästa artikel.

Rensa resurser

Den här handledningen är en del av en serie där varje artikel bygger vidare på det arbete som gjorts i de föregående. Vänta med att rensa systemresurser tills du har slutfört den sista guiden.

Nästa steg

I den här artikeln använde vi ett .NET Core-projekt för att skapa en uppsättning virtuella IoT-enheter och skicka data via dem till vår IoT-hubb och till en Azure Storage-container. Det här projektet simulerar ett verkligt scenario där fysiska IoT-enheter skickar data till en IoT Hub och vidare till en kuraterad lagring. Dessa data omfattar sensoravläsningar, driftinställningar, felsignaler och lägen och så vidare. När tillräckligt med data har samlats in använder vi dem för att träna modeller som förutsäger den återstående livslängden (RUL) för enheten. Vi demonstrerar den här maskininlärningen i nästa artikel.

Fortsätt till nästa artikel för att träna en maskininlärningsmodell med data.