Esercizio - Connettere e trasmettere i dati di Gemelli digitali di Azure agli asset della turbina eolica
Un Servizio Azure SignalR è stato esposto come parte del modello di ARM distribuito. Questo servizio e la configurazione associata consentono di connettersi a Gemelli digitali di Azure. È stata creata una pipeline di dati per recuperare dati da gemelli digitali, che sono stati astratti dall’app client eseguita in realtà mista.
Panoramica di Servizio Azure SignalR
Il servizio Azure SignalR semplifica il processo di aggiunta di funzionalità Web in tempo reale alle applicazioni tramite HTTP. Questa funzionalità in tempo reale consente al servizio di eseguire il push degli aggiornamenti di contenuto ai client connessi, ad esempio un'applicazione Web o per dispositivi mobili a pagina singola. Di conseguenza, i client vengono aggiornati senza che sia necessario eseguire il polling del server o inviare nuove richieste HTTP per gli aggiornamenti. Qualsiasi scenario che richiede il push dei dati dal server al client in tempo reale può usare il Servizio Azure SignalR. Anche le funzionalità tradizionali in tempo reale che spesso richiedono il polling da un server possono usare il Servizio Azure SignalR.
È possibile integrare facilmente il Servizio Azure SignalR con altri servizi di Azure, questo apre le porte ad altri scenari possibili. Le funzioni di Azure possono, ad esempio, usare l'API REST per eseguire il push delle notifiche al Servizio Azure SignalR, che quindi invia i dati ai client connessi in tempo reale. Il Servizio Azure SignalR, usato insieme all'hub IoT, può consentire la trasmissione dei dati del sensore in tempo reale ai client connessi per supportare scenari di monitoraggio in tempo reale.
Gli scenari in tempo reale spesso sono associati a flussi di dati ad alta frequenza e a grandi quantità di connessioni simultanee tra client e server. Richiedono una configurazione ragionata dell'infrastruttura per applicare la funzionalità e farla funzionare su larga scala. La configurazione di questa infrastruttura su larga scala è complicata. La configurazione richiede in genere una logica specifica dell’applicazione a vari livelli di rete. Il Servizio Azure SignalR gestisce questi problemi e consente quindi di concentrarsi sulla logica dell'applicazione, che offre esperienze di connessione in tempo reale. È possibile dimensionare le funzionalità in tempo reale in modo dinamico, pagando solo per gli elementi usati. Il servizio eredita anche le funzionalità del Servizio Azure SignalR per le connessioni permanenti su vari trasporti.
Un’ampia gamma di settori ha usato il Servizio Azure SignalR per qualsiasi tipo di applicazione che richiede aggiornamenti dei contenuti in tempo reale. Ecco alcuni esempi utili per usare il Servizio Azure SignalR:
- Aggiornamenti dei dati ad alta frequenza: giochi, votazioni, sondaggi e aste
- Dashboard e monitoraggio: dashboard aziendale, dati del mercato finanziario, aggiornamento immediato delle vendite, classifica di giochi multiplayer e monitoraggio IoT
- Posizione in tempo reale sulla mappa: rilevamento logistico, verifica dello stato di spedizione, aggiornamenti dello stato di consegna e app GPS
- Annunci personalizzati in tempo reale: annunci push e offerte personalizzate in tempo reale e annunci pubblicitari interattivi
- App collaborative: creazione condivisa, app lavagna elettronica e software per riunioni di team
- Notifiche push: social network, posta elettronica, giochi e avvisi di viaggio
- Trasmissione in tempo reale: trasmissioni audio/video in diretta, sottotitolazione in diretta, traduzione e trasmissione di eventi/notizie
- IoT e i dispositivi connessi: metriche IoT in tempo reale, controllo remoto, stato in tempo reale e rilevamento della posizione
- Automazione: attivazione in tempo reale da eventi upstream
Per lo Use Case della turbina eolica, il livello di comunicazione tra i dati della turbina eolica di Gemelli digitali di Azure e il dispositivo di realtà mista usa il Servizio Azure SignalR e un client SignalR incorporato nell’app di realtà mista.
Per esporre i dati all'app client usando Gemelli digitali di Azure, devi connetterti al Servizio Azure SignalR. L'app per la realtà mista che si sta creando implementa un client SignalR per connettersi al Servizio SignalR. Per stabilire la comunicazione tra il client SignalR e il Servizio Azure SignalR, il client deve richiamare la funzione negotiate
nel Servizio SignalR.
Configura DeviceSimulator
con i parametri di connessione Gemelli digitali di Azure e i dettagli di autenticazione acquisiti nell'esercizio precedente.
Recuperare le credenziali dell'app
Apri DeviceSimulator.sln in Visual Studio e configura il
DeviceSimulator
con il nome host per il tipo di risorsa Gemelli digitali di Azure creato dal modello di ARM.Apri il file di testo Azure_config_settings.txt creato nell'ultimo esercizio che contiene i parametri di configurazione chiave di Gemelli digitali di Azure usando un editor di testo. In alternativa, se la sessione di PowerShell rimane attiva, cercare l'output nel comando
get-content
.Nel file Azure_config_settings.txt o nell'output del comando
get-content
in PowerShell, individua la coppia chiave/valore per la chiaveadtHostName
e copia il valore. L'aspetto sarà simile al seguente:https://myprojadtxxxxxxxxxx.api.eus.digitaltwins.azure.net
Nella soluzione DeviceSimulator di Visual Studio apri il file AzureIoTHub.cs nell'editor facendo doppio clic sul file da Esplora soluzioni. Incollare il valore per la coppia/chiave
adtHostName
, copiata dal passaggio 2, nella variabile della stringa adtInstanceUrl.
Configura il simulatore di dispositivi con la stringa di connessione primaria
Configurare DeviceSimulator
con la stringa di connessione primaria per l’hub IoT creato dal modello di ARM.
Importante
Questo modulo include i passaggi per connettere un dispositivo usando una firma di accesso condiviso, detta anche autenticazione con chiave simmetrica. Questo metodo di autenticazione è utile per eseguire test e valutazioni, ma l’autenticazione di un dispositivo con certificati X.509 è un approccio più sicuro. Per scoprire di più, vedere Procedure consigliate per la sicurezza > Sicurezza della connessione.
Nel file Azure_config_settings.txt o nell'output del comando
get-content
in PowerShell, individua la coppia chiave/valore per la chiaveconnectionString
e copia il valore. L'aspetto sarà simile al seguente:HostName=myprojHubxxxxxxxxxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
Nella soluzione
DeviceSimulator
di Visual Studio, apri il file AzureIoTHub.cs nell'editor e incolla il valore diconnectionString
copiato nel passaggio precedente nella variabile della stringa iotHubConnectionString.
Configura il simulatore di dispositivi con le chiavi di autenticazione
Configurare DeviceSimulator con le chiavi di autenticazione create dal modello di ARM.
Aprire il file di testo AppCredentials.txt creato nell'esercizio precedente.
Nella soluzione DeviceSimulator di Visual Studio aprire il file PropUpdater.cs nell'editor. Copia e incolla gli identificatori univoci globali (GUID) dal file di testo al file con estensione cs. Usa i mapping seguenti dalle variabili cs all'output dei dati JSON nel file di testo:
AppCredentials.txt PropUpdater.cs appId clientId password clientSecret tenant tenantId Seleziona File>Salva tutto per salvare il lavoro in Visual Studio.
Connetti il prefab di Gemelli digitali di Azure in Unity ai gemelli digitali in modo da poter ricevere dati di telemetria simulati dal DeviceSimulator
.
Aggiungi il prefab di connessione di Gemelli digitali di Azure
Aggiungi l'asset prefab di connessione di Gemelli digitali di Azure alla scena Unity ed esegui la configurazione.
Torna al progetto di Unity.
Seleziona l'oggetto gioco
ADTConnection
nella Gerarchia. Se non è presente nella gerarchia, trascina Assets>ADTPrefabs>ADTConnection asset Prefab nella gerarchia della scena.Apri il file di testo creato nell'ultimo esercizio, Azure_config_settings.txt, in un editor di testo. Il file contiene i parametri di configurazione chiave di Gemelli digitali di Azure. In alternativa, se la sessione di PowerShell rimane attiva, cercare l'output nel comando
get-content
.Nel file Azure_config_settings.txt o nell'output del comando
get-content
in PowerShell, individua la coppia chiave/valore per la chiavesignalRNegotiatePath
e copia il valore. L'aspetto sarà simile al seguente:https://myprojfuncappxxxxxxxxxx.azurewebsites.net/api/negotiate
Aggiungi questo valore al parametro URL in Gestore dati di Gemelli digitali di Azure (Script) con l'URL della funzione ottenuto nel passaggio 1. Includere tutti gli elementi dell'URL, incluso
…/api
. Non includere l’ultima barra rovesciata o la parola negozia.Salva la scena.
Ora che i servizi di Azure sono stati configurati e i puntatori appropriati sono all'interno della scena di Unity, puoi creare un Interfaccia utente (UI) per visualizzare i dati delle operazioni.