Ćwiczenie — łączenie i przesyłanie strumieniowe danych usługi Azure Digital Twin do zasobów turbiny wiatrowej

Ukończone

Usługa Azure SignalR Service została udostępniona w ramach wdrożonego szablonu usługi ARM. Ta usługa i skojarzona konfiguracja umożliwiają nawiązywanie połączenia z usługą Azure Digital Twins. Utworzyliśmy potok danych do pobierania danych z cyfrowych reprezentacji bliźniaczych, który jest abstrahowany od aplikacji klienckiej działającej w rzeczywistości mieszanej.

Omówienie usługi Azure SignalR Service

Usługa Azure SignalR Service upraszcza proces dodawania funkcji internetowych w czasie rzeczywistym do aplikacji za pośrednictwem protokołu HTTP. Ta funkcja w czasie rzeczywistym umożliwia usłudze wypychanie aktualizacji zawartości do połączonych klientów, takich jak pojedyncza strona internetowa lub aplikacja mobilna. W związku z tym klienci są aktualizowani bez konieczności sondowania serwera lub przesyłania nowych żądań HTTP dotyczących aktualizacji. Każdy scenariusz, który wymaga wypychania danych z serwera do klienta w czasie rzeczywistym, może korzystać z usługi Azure SignalR Service. Tradycyjne funkcje czasu rzeczywistego, które często wymagają sondowania z serwera, mogą również używać usługi Azure SignalR Service.

Usługę Azure SignalR Service można łatwo zintegrować z innymi usługami platformy Azure, co otwiera inne możliwe scenariusze. Na przykład usługa Azure Functions może używać interfejsu API REST do wypychania powiadomień do usługi Azure SignalR Service, która następnie wypycha dane do połączonych klientów w czasie rzeczywistym. Usługa Azure SignalR Service używana w usłudze IoT Hub umożliwia przesyłanie danych czujników w czasie rzeczywistym do połączonych klientów w celu obsługi scenariuszy monitorowania w czasie rzeczywistym.

Scenariusze w czasie rzeczywistym często korzystają z przepływów danych o wysokiej częstotliwości i dużych ilości współbieżnych połączeń między klientem a serwerem. Wymagają one konfiguracji infrastruktury nietrivial, aby uzyskać funkcjonalność uruchomioną na dużą skalę. Konfigurowanie tej infrastruktury na dużą skalę jest trudne. Konfiguracja zwykle wymaga logiki specyficznej dla aplikacji w różnych warstwach sieciowych. Usługa Azure SignalR Service obsługuje te problemy, dzięki czemu można skoncentrować się na logice aplikacji, która zapewnia środowiska połączone w czasie rzeczywistym. Funkcje w czasie rzeczywistym można skalować dynamicznie, płacąc tylko za to, czego używasz. Usługa dziedziczy również możliwości usługi Azure SignalR Service dla połączeń trwałych w różnych transportach.

Wiele różnych branż używało usługi Azure SignalR Service dla dowolnego typu aplikacji, które wymagają aktualizacji zawartości w czasie rzeczywistym. Oto kilka przykładów, które warto użyć usługi Azure SignalR Service:

  • Aktualizacje danych o wysokiej częstotliwości: gry, głosowania, sondowania i aukcji
  • Pulpity nawigacyjne i monitorowanie: pulpit nawigacyjny firmy, dane rynku finansowego, natychmiastowa aktualizacja sprzedaży, wieloosobowa tablica liderów gier i monitorowanie IoT
  • Lokalizacja w czasie rzeczywistym na mapie: śledzenie logistyczne, śledzenie stanu dostawy, aktualizacje stanu transportu i aplikacje GPS
  • Reklamy ukierunkowane w czasie rzeczywistym: spersonalizowane reklamy wypychane i oferty w czasie rzeczywistym oraz interaktywne reklamy
  • Aplikacje do współpracy: współtworzenie, aplikacje tablicy i oprogramowanie do spotkań zespołowych
  • Powiadomienia wypychane: sieć społecznościowa, poczta e-mail, gra i alerty dotyczące podróży
  • Transmisje w czasie rzeczywistym: transmisje audio/wideo na żywo, transkrypacja na żywo, tłumaczenie i wydarzenia/transmisje wiadomości
  • Urządzenia IoT i połączone: metryki IoT w czasie rzeczywistym, zdalne sterowanie, stan czasu rzeczywistego i śledzenie lokalizacji
  • Automatyzacja: wyzwalacz w czasie rzeczywistym ze zdarzeń nadrzędnych

W przypadku użycia turbiny wiatrowej warstwa komunikacji między danymi turbiny wiatrowej usługi Azure Digital Twins a urządzeniem rzeczywistości mieszanej korzysta z usługi Azure SignalR Service i klienta SignalR osadzonego w aplikacji rzeczywistości mieszanej.

Aby uwidocznić dane w aplikacji klienckiej przy użyciu usługi Azure Digital Twins, musisz nawiązać połączenie z usługą Azure SignalR Service. Utworzona aplikacja rzeczywistości mieszanej implementuje klienta usługi SignalR w celu nawiązania połączenia z usługą SignalR. Nawiązanie komunikacji między klientem signalR a usługą Azure SignalR wymaga, aby klient wywołał negotiate funkcję w usłudze SignalR.

Skonfiguruj element DeviceSimulator przy użyciu parametrów połączenia usługi Azure Digital Twins i szczegółów uwierzytelniania przechwyconych w poprzednim ćwiczeniu.

Pobieranie poświadczeń aplikacji

  1. Otwórz DeviceSimulator.sln w programie Visual Studio i skonfiguruj DeviceSimulator element z nazwą hosta dla typu zasobu usługi Azure Digital Twins utworzonego przez szablon usługi ARM.

  2. Otwórz plik tekstowy Azure_config_settings.txt utworzony w ostatnim ćwiczeniu zawierający kluczowe parametry konfiguracji usługi Azure Digital Twins przy użyciu edytora tekstów. Alternatywnie, jeśli sesja programu PowerShell pozostaje aktywna, poszukaj danych wyjściowych polecenia get-content .

  3. Z pliku Azure_config_settings.txt lub z danych wyjściowych get-content polecenia w programie PowerShell znajdź parę klucz/wartość dla adtHostName klucza i skopiuj wartość. Powinien wyglądać podobnie do następującego:

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

    Zrzut ekranu przedstawiający interfejs wiersza polecenia z wierszem polecenia get-content.

  4. W rozwiązaniu DeviceSimulator programu Visual Studio otwórz plik AzureIoTHub.cs w edytorze, klikając dwukrotnie plik z Eksplorator rozwiązań. Wklej wartość klucza adtHostName /pary skopiowaną z kroku 2 do zmiennej ciągu adtInstanceUrl .

    Zrzut ekranu przedstawiający rozwiązanie Symulator urządzenia z dodanymi wartościami pliku cs usługi Azure IoT Hub i nazwy hosta oraz adresu URL wystąpienia.

Konfigurowanie symulatora urządzenia przy użyciu parametry połączenia podstawowego

Skonfiguruj element DeviceSimulator przy użyciu parametry połączenia podstawowej dla usługi IoT Hub utworzonej przez szablon usługi ARM.

Ważne

Ten moduł zawiera kroki łączenia urządzenia przy użyciu sygnatury dostępu współdzielonego, nazywanej również uwierzytelnianiem klucza symetrycznego. Ta metoda uwierzytelniania jest wygodna do testowania i oceny, ale uwierzytelnianie urządzenia przy użyciu certyfikatów X.509 jest bardziej bezpieczne. Aby dowiedzieć się więcej, zobacz Zabezpieczenia najlepszych rozwiązań > zabezpieczeń Zabezpieczenia zabezpieczeń Zabezpieczenia zabezpieczeń.

  1. Z pliku Azure_config_settings.txt lub z danych wyjściowych get-content polecenia w programie PowerShell znajdź parę klucz/wartość dla connectionString klucza i skopiuj wartość. Powinien wyglądać podobnie do następującego:

    HostName=myprojHubxxxxxxxxxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
    
  2. W rozwiązaniu programu Visual Studio DeviceSimulator otwórz plik AzureIoTHub.cs w edytorze i wklej connectionString wartość skopiowaną w poprzednim kroku do zmiennej ciągu iotHubConnectionString.

    Zrzut ekranu przedstawiający rozwiązanie symulatora urządzeń z otwartym plikiem cs usługi Azure IoT Hub i dodaną wartością parametry połączenia usługi IoT Hub.

Konfigurowanie symulatora urządzenia przy użyciu kluczy uwierzytelniania

Skonfiguruj moduł DeviceSimulator przy użyciu kluczy uwierzytelniania utworzonych przez szablon usługi ARM.

  1. Otwórz plik tekstowy AppCredentials.txt utworzony w poprzednim ćwiczeniu.

  2. W rozwiązaniu DeviceSimulator programu Visual Studio otwórz plik PropUpdater.cs w edytorze. Skopiuj i wklej globalnie unikatowe identyfikatory (GUID) z pliku tekstowego do pliku .cs . Użyj następujących mapowań ze zmiennych .cs do danych wyjściowych danych JSON w pliku tekstowym:

    AppCredentials.txt PropUpdater.cs
    appId clientId
    hasło clientSecret
    tenant tenantId

    Zrzut ekranu przedstawiający rozwiązanie Symulator urządzenia z dodanymi wartościami otwierania pliku PropUpdater.cs i klienta, wpisu tajnego i identyfikatora dzierżawy.

  3. Wybierz pozycję Plik>Zapisz wszystko, aby zapisać pracę w programie Visual Studio.

Połącz prefab usługi Azure Digital Twins w a środowisku Unity z cyfrowymi reprezentacjami bliźniaczymi, aby móc odbierać symulowane dane telemetryczne z elementu DeviceSimulator.

Dodawanie prefab połączenia usługi Azure Digital Twins

Dodaj zasób prefab połączenia usługi Azure Digital Twins do sceny aparatu Unity i skonfiguruj go.

  1. Wróć do projektu aparatu Unity.

  2. ADTConnection Wybierz obiekt gry w hierarchii. Jeśli brakuje go w hierarchii, przeciągnij >>ADTConnection prefab do hierarchii sceny.

    Zrzut ekranu przedstawiający hierarchię aparatu Unity z wyróżnioną sceną główną.

  3. Otwórz plik tekstowy utworzony w ostatnim ćwiczeniu, Azure_config_settings.txt w edytorze tekstów. Plik zawiera kluczowe parametry konfiguracji usługi Azure Digital Twins. Alternatywnie, jeśli sesja programu PowerShell pozostaje aktywna, poszukaj danych wyjściowych polecenia get-content .

  4. Z pliku Azure_config_settings.txt lub z danych wyjściowych get-content polecenia w programie PowerShell znajdź parę klucz/wartość dla signalRNegotiatePath klucza i skopiuj wartość. Powinien wyglądać podobnie do następującego:

    https://myprojfuncappxxxxxxxxxx.azurewebsites.net/api/negotiate
    
  5. Dodaj tę wartość do parametru Url w obszarze Program obsługi danych ADT (skrypt) przy użyciu adresu URL funkcji uzyskanego w kroku 1. Uwzględnij wszystkie elementy w adresie URL do adresu URL i dołącz element …/api. Nie dołączaj ostatniego ukośnika odwrotnego ani słowa negocjowanego.

    Zrzut ekranu edytora aparatu Unity z wybraną prefabą połączenia usługi Azure Digital Twins i dodanym skryptem obsługi danych usługi ADT.

  6. Zapisz scenę.

Teraz, gdy usługi platformy Azure są skonfigurowane i odpowiednie wskaźniki znajdują się w scenie aparatu Unity, możesz utworzyć interfejs użytkownika w celu wizualizacji danych operacji.