Ćwiczenie — łączenie i przesyłanie strumieniowe danych usługi Azure Digital Twin do zasobów turbiny wiatrowej
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
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.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
.Z pliku Azure_config_settings.txt lub z danych wyjściowych
get-content
polecenia w programie PowerShell znajdź parę klucz/wartość dlaadtHostName
klucza i skopiuj wartość. Powinien wyglądać podobnie do następującego:https://myprojadtxxxxxxxxxx.api.eus.digitaltwins.azure.net
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 .
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ń.
Z pliku Azure_config_settings.txt lub z danych wyjściowych
get-content
polecenia w programie PowerShell znajdź parę klucz/wartość dlaconnectionString
klucza i skopiuj wartość. Powinien wyglądać podobnie do następującego:HostName=myprojHubxxxxxxxxxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
W rozwiązaniu programu Visual Studio
DeviceSimulator
otwórz plik AzureIoTHub.cs w edytorze i wklejconnectionString
wartość skopiowaną w poprzednim kroku do zmiennej ciągu iotHubConnectionString.
Konfigurowanie symulatora urządzenia przy użyciu kluczy uwierzytelniania
Skonfiguruj moduł DeviceSimulator przy użyciu kluczy uwierzytelniania utworzonych przez szablon usługi ARM.
Otwórz plik tekstowy AppCredentials.txt utworzony w poprzednim ćwiczeniu.
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 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.
Wróć do projektu aparatu Unity.
ADTConnection
Wybierz obiekt gry w hierarchii. Jeśli brakuje go w hierarchii, przeciągnij >>ADTConnection prefab do hierarchii sceny.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
.Z pliku Azure_config_settings.txt lub z danych wyjściowych
get-content
polecenia w programie PowerShell znajdź parę klucz/wartość dlasignalRNegotiatePath
klucza i skopiuj wartość. Powinien wyglądać podobnie do następującego:https://myprojfuncappxxxxxxxxxx.azurewebsites.net/api/negotiate
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.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.