Oefening: Azure Digital Twin-gegevens verbinden en streamen naar windturbineassets

Voltooid

Er is een Azure SignalR-service weergegeven als onderdeel van de ARM-sjabloon die u hebt geïmplementeerd. Met deze service en de bijbehorende installatie kunt u verbinding maken met Azure Digital Twins. We hebben een gegevenspijplijn gemaakt om gegevens op te halen uit digitale dubbels, die wordt geabstraheerd van de client-app die in mixed reality wordt uitgevoerd.

Overzicht van Azure SignalR Service

Met de service Azure SignalR wordt het proces van het toevoegen van realtimewebfunctionaliteit aan toepassingen via HTTP vereenvoudigd. Dankzij deze realtimefunctionaliteit kunnen via de service inhoudsupdates worden gepusht naar verbonden clients, zoals een enkele webpagina of mobiele toepassing. Als gevolg hiervan worden clients bijgewerkt zonder de server te hoeven peilen of nieuwe HTTP-aanvragen voor updates in te dienen. Elk scenario waarvoor het pushen van gegevens van de server naar de client in realtime is vereist, kan Azure SignalR Service gebruiken. Traditionele realtime-functies die vaak polling van een server vereisen, kunnen ook Gebruikmaken van Azure SignalR Service.

U kunt de Azure SignalR-service eenvoudig integreren met andere Azure-services, waarmee andere mogelijke scenario's worden geopend. Azure Functions kan bijvoorbeeld de REST API gebruiken om meldingen naar de Azure SignalR-service te pushen, waardoor gegevens vervolgens in realtime naar verbonden clients worden gepusht. Met de Azure SignalR-service, die wordt gebruikt met IoT Hub, kunnen realtime sensorgegevens worden verzonden naar verbonden clients om realtime bewakingsscenario's te ondersteunen.

Realtime-scenario's worden vaak geleverd met gegevensstromen met een hoge frequentie en grote hoeveelheden gelijktijdige verbindingen tussen de client en de server. Ze vereisen installatie van niet-triviale infrastructuur om de functionaliteit op schaal te kunnen gebruiken. Het configureren van deze infrastructuur op schaal is moeilijk. Voor de configuratie is doorgaans toepassingsspecifieke logica vereist op verschillende netwerklagen. De Azure SignalR-service verwerkt deze problemen, zodat u zich kunt richten op de toepassingslogica die realtime verbonden ervaringen levert. U kunt realtime functionaliteit dynamisch schalen terwijl u alleen betaalt voor wat u gebruikt. De service neemt ook de mogelijkheden van Azure SignalR Service over voor permanente verbindingen via verschillende transporten.

Een groot aantal branches heeft Azure SignalR Service gebruikt voor elk toepassingstype waarvoor realtime inhoudsupdates zijn vereist. Hier volgen enkele voorbeelden die goed zijn om Azure SignalR Service te gebruiken:

  • Updates van gegevens met hoge frequentie: gaming, stemmen, peilen en veilingen
  • Dashboards en bewaking: bedrijfsdashboard, financiële marktgegevens, directe verkoopupdate, leader board voor meerdere spelers en IoT-bewaking
  • Realtime locatie op kaart: logistieke tracering, tracering van leveringsstatussen, updates van transportstatussen en GPS-apps
  • Realtime gerichte advertenties: gepersonaliseerde realtime pushadvertenties en aanbiedingen, en interactieve advertenties
  • Samenwerkings-apps: cocreatie, whiteboard-apps en teamvergaderingsoftware
  • Pushmeldingen: sociaal netwerk, e-mail, game en reiswaarschuwingen
  • Realtime uitzenden: live audio/video uitzenden, live bijschriften, vertalen en gebeurtenissen/nieuws uitzenden
  • IoT- en verbonden apparaten: realtime IoT-metrische gegevens, beheer op afstand, realtime status en locatietracering
  • Automatisering: realtime trigger van upstreamgebeurtenissen

Voor uw gebruiksscenario voor windturbines gebruikt de communicatielaag tussen de gegevens van de Azure Digital Twins-windturbine en uw mixed reality-apparaat de Azure SignalR-service en een SignalR-client die is ingesloten in de mixed reality-app.

Als u de gegevens beschikbaar wilt maken voor uw client-app met behulp van Azure Digital Twins, moet u verbinding maken met de Azure SignalR-service. De mixed reality-app die u bouwt, implementeert een SignalR-client om verbinding te maken met de SignalR-service. Voor het tot stand brengen van communicatie tussen de SignalR-client en de Azure SignalR-service moet de client de negotiate functie in de SignalR-service aanroepen.

Configureer uw DeviceSimulator met uw Azure Digital Twins-verbindingsparameters en verificatiegegevens die in de vorige oefening zijn vastgelegd.

App-referenties ophalen

  1. Open DeviceSimulator.sln in Visual Studio en configureer de DeviceSimulator naam met de hostnaam voor het Azure Digital Twins-resourcetype dat is gemaakt met de ARM-sjabloon.

  2. Open het Azure_config_settings.txt tekstbestand dat u in de laatste oefening hebt gemaakt met de belangrijkste Azure Digital Twins-configuratieparameters met behulp van een teksteditor. Als uw PowerShell-sessie actief blijft, zoekt u ook naar de uitvoer van uw get-content opdracht.

  3. Zoek in het Azure_config_settings.txt-bestand of vanuit de uitvoer van de get-content opdracht in PowerShell het sleutel-/waardepaar voor de adtHostName sleutel en kopieer de waarde. Deze moet er ongeveer als volgt uitzien:

    https://myprojadtxxxxxxxxxx.api.eus.digitaltwins.azure.net
    

    Schermopname van de opdrachtregelinterface waarop de opdrachtprompt get-content wordt uitgevoerd.

  4. Open in uw Visual Studio DeviceSimulator-oplossing het bestand AzureIoTHub.cs in de editor door te dubbelklikken op het bestand in Solution Explorer. Plak de waarde voor uw adtHostName sleutel/paar die u uit stap 2 hebt gekopieerd in de tekenreeksvariabele adtInstanceUrl .

    Schermopname van de apparaatsimulatoroplossing met het cs-bestand van Azure IoT Hub geopend en hostnaam en url-waarden voor exemplaren toegevoegd.

De apparaatsimulator configureren met primaire verbindingsreeks

Configureer de DeviceSimulator met de primaire verbindingsreeks voor de IoT Hub die door de ARM-sjabloon is gemaakt.

Belangrijk

Deze module bevat stappen voor het verbinden van een apparaat met behulp van een Shared Access Signature, ook wel symmetrische sleutelverificatie genoemd. Deze verificatiemethode is handig voor testen en evalueren, maar het verifiëren van een apparaat met X.509-certificaten is een veiligere benadering. Zie Best practices > voor beveiliging voor verbindingsbeveiliging voor meer informatie.

  1. Zoek in het Azure_config_settings.txt-bestand of vanuit de uitvoer van de get-content opdracht in PowerShell het sleutel-/waardepaar voor de connectionString sleutel en kopieer de waarde. Deze moet er ongeveer als volgt uitzien:

    HostName=myprojHubxxxxxxxxxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
    
  2. Open in uw Visual Studio-oplossing DeviceSimulator het bestand AzureIoTHub.cs in de editor en plak de connectionString waarde die u in de vorige stap hebt gekopieerd in de variabele iotHubConnectionString .

    Schermopname van de apparaatsimulatoroplossing met het cs-bestand van Azure IoT Hub geopend en IoT Hub verbindingsreeks toegevoegde waarde.

De apparaatsimulator configureren met verificatiesleutels

Configureer DeviceSimulator met de verificatiesleutels die door de ARM-sjabloon zijn gemaakt.

  1. Open het AppCredentials.txt tekstbestand dat u in de vorige oefening hebt gemaakt.

  2. Open in uw Visual Studio DeviceSimulator-oplossing het PropUpdater.cs-bestand in de editor. Kopieer en plak de GUID's (Globally Unique Identifiers) uit uw tekstbestand in het .cs-bestand . Gebruik de volgende toewijzingen van de .cs variabelen naar de JSON-gegevensuitvoer in uw tekstbestand:

    AppCredentials.txt PropUpdater.cs
    appId clientId
    password clientSecret
    tenant tenantId

    Schermopname van de oplossing Device Simulator met het PropUpdater.cs-bestand geopend en client-, geheim- en tenant-id-waarden toegevoegd.

  3. Selecteer Alles> opslaan om uw werk op te slaan in Visual Studio.

Verbind uw Azure Digital Twins-prefab in Unity met de digitale dubbels, zodat u gesimuleerde telemetriegegevens kunt ontvangen van de DeviceSimulator.

De azure Digital Twins-verbindingsprefab toevoegen

Voeg de Prefab-asset voor de Azure Digital Twins-verbinding toe aan uw Unity-scène en configureer deze.

  1. Ga terug naar uw Unity-project.

  2. Selecteer het ADTConnection gameobject in de hiërarchie. Als deze ontbreekt in uw hiërarchie, sleept u de assets>ADTPrefabs>ADTConnection-prefabasset naar uw scènehiërarchie.

    Schermopname van de Unity-hiërarchie met de hoofdscène gemarkeerd.

  3. Open het tekstbestand dat u in de vorige oefening hebt gemaakt, Azure_config_settings.txt, in een teksteditor. Het bestand bevat de belangrijkste configuratieparameters van Azure Digital Twins. Als uw PowerShell-sessie actief blijft, zoekt u ook naar de uitvoer van uw get-content opdracht.

  4. Zoek in het Azure_config_settings.txt-bestand of vanuit de uitvoer van de get-content opdracht in PowerShell het sleutel-/waardepaar voor de signalRNegotiatePath sleutel en kopieer de waarde. Deze moet er ongeveer als volgt uitzien:

    https://myprojfuncappxxxxxxxxxx.azurewebsites.net/api/negotiate
    
  5. Voeg deze waarde toe aan de URL-parameter onder ADT-gegevenshandler (Script) met de functie-URL die is verkregen in stap 1. Neem alles op in de URL tot en met.…/api Neem de laatste backslash of het woord onderhandelen niet op.

    Schermopname van de Unity-editor met de vooraf gemaakte Azure Digital Twins-verbinding en het ADT-gegevenshandlerscript toegevoegd.

  6. Sla de scène op .

Nu de Azure-services zijn ingesteld en de juiste aanwijzers zich in uw Unity-scène bevinden, kunt u een gebruikersinterface (UI) maken om de bewerkingsgegevens te visualiseren.