Ejercicio: Conexión y transmisión de datos de Azure Digital Twins a los recursos de turbina eólica
Se ha expuesto un servicio Azure SignalR como parte de la plantilla de ARM que ha implementado. Este servicio y la configuración asociada le permiten conectarse a Azure Digital Twins. Se ha creado una canalización de datos para recuperar datos de gemelos digitales, que se abstrae de la aplicación cliente que se ejecuta en realidad mixta.
Introducción a Azure SignalR Service
Azure SignalR Service simplifica la incorporación de funcionalidades web en tiempo real a las aplicaciones a través de HTTP. Esta funcionalidad en tiempo real permite al servicio insertar las actualizaciones de contenido en los clientes conectados, como una única página web o aplicaciones móviles. Como resultado, los clientes se actualizan sin necesidad de sondear el servidor ni de enviar nuevas solicitudes HTTP para las actualizaciones. Cualquier escenario que requiera insertar datos del servidor al cliente en tiempo real puede usar Azure SignalR Service. Las características en tiempo real tradicionales en las que normalmente es necesario sondear un servidor también pueden usar Azure SignalR Service.
Azure SignalR Service se puede integrar fácilmente con otros servicios de Azure, lo que abre otros escenarios posibles. Por ejemplo, Azure Functions puede usar la API REST para enviar notificaciones push a Azure SignalR Service, que luego inserta datos en clientes conectados en tiempo real. Azure SignalR Service, que se usa con IoT Hub, puede permitir que los datos del sensor en tiempo real se transmitan a los clientes conectados para admitir escenarios de supervisión en tiempo real.
Los escenarios en tiempo real suelen tener flujos de datos de alta frecuencia y grandes cantidades de conexiones simultáneas entre el cliente y el servidor. Requieren una configuración de infraestructura no trivial para poner en marcha la funcionalidad a escala. La configuración de esta infraestructura a escala es difícil. Normalmente, la configuración requiere lógica específica de la aplicación en varias capas de red. Azure SignalR Service se encarga de estos problemas, por lo que puede centrarse en la lógica de la aplicación que ofrece experiencias conectadas en tiempo real. Puede escalar la funcionalidad en tiempo real de forma dinámica mientras paga solo por lo que usa. El servicio también hereda las funcionalidades de Azure SignalR Service para las conexiones persistentes a través de varios transportes.
Una amplia variedad de sectores han usado Azure SignalR Service para cualquier tipo de aplicación que requiera actualizaciones de contenido en tiempo real. Estos son algunos ejemplos que son buenos para usar Azure SignalR Service:
- Actualizaciones de datos de alta frecuencia: juegos, votaciones, sondeos y subastas
- Paneles y supervisión: panel de la empresa, datos de mercado financiero, actualización instantánea de ventas, tabla de clasificación de juegos multijugador y supervisión de IoT
- Ubicación en tiempo real en el mapa: seguimiento logístico, seguimiento de estado de entrega, actualizaciones de estado de transporte y aplicaciones GPS
- Anuncios dirigidos en tiempo real: anuncios de inserción en tiempo real personalizados y ofertas, y anuncios interactivos
- Aplicaciones de colaboración: aplicaciones de pizarra y coautoría, y software de reuniones de equipo
- Notificaciones push: red social, correo electrónico, juego y alertas de viaje
- Difusión en tiempo real: difusión de audio y vídeo en directo, subtítulos en directo, traducción y difusión de eventos o noticias
- Dispositivos IoT y conectados: métricas de IoT en tiempo real, control remoto, estado en tiempo real y seguimiento de la ubicación
- Automatización: desencadenador en tiempo real de eventos ascendentes
En el caso de uso de las turbinas eólicas, la capa de comunicación entre los datos de las turbinas eólicas de Azure Digital Twins y el dispositivo de realidad mixta utiliza Azure SignalR Service y un cliente de SignalR insertado en la aplicación de realidad mixta.
Para exponer los datos a la aplicación cliente mediante Azure Digital Twins, debe conectarse a Azure SignalR Service. En la aplicación de realidad mixta que va a crear se implementa un cliente de SignalR para conectarse al servicio SignalR. El establecimiento de la comunicación entre el cliente de SignalR y el servicio Azure SignalR requiere que el cliente invoque la función negotiate
en el servicio SignalR.
Configure el DeviceSimulator
con los parámetros de conexión de Azure Digital Twins y los detalles de autenticación capturados en el ejercicio anterior.
Obtención de las credenciales de la aplicación
Abra deviceSimulator.sln en Visual Studio y configure el
DeviceSimulator
con el nombre de host para el tipo de recurso de Azure Digital Twins creado por la plantilla de ARM.Abra el archivo de texto Azure_config_settings.txt que creó en el último ejercicio que contiene los parámetros de configuración clave de Azure Digital Twins mediante un editor de texto. Como alternativa, si la sesión de PowerShell permanece activa, busque la salida del comando
get-content
.En el archivo Azure_config_settings.txt o en la salida del comando
get-content
en PowerShell, busque el par clave-valor de la claveadtHostName
y copie el valor. Debe tener un aspecto similar al siguiente:https://myprojadtxxxxxxxxxx.api.eus.digitaltwins.azure.net
En DeviceSimulator de la solución de Visual Studio, abra el archivo AzureIoTHub.cs en el editor haciendo doble clic en el archivo desde el Explorador de soluciones. Pegue el valor de la
adtHostName
clave o par copiado del paso 2 en la variable de cadena adtInstanceUrl.
Configuración del simulador de dispositivos con la cadena de conexión principal
Configure el DeviceSimulator
con la cadena de conexión principal para ioT Hub que creó la plantilla de ARM.
Importante
En este módulo se incluyen los pasos para conectar un dispositivo mediante una firma de acceso compartido, también denominada autenticación de clave simétrica. Este método de autenticación es cómodo para probar y evaluar, pero autenticar un dispositivo mediante certificados X.509 es un enfoque más seguro. Para obtener más información, consulte Procedimientos recomendados de > Seguridad de la conexión.
En el archivo Azure_config_settings.txt o en la salida del comando
get-content
en PowerShell, busque el par clave-valor de la claveconnectionString
y copie el valor. Debe tener un aspecto similar al siguiente:HostName=myprojHubxxxxxxxxxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
En la solución de Visual Studio
DeviceSimulator
, abra el archivo AzureIoTHub.cs en el editor y pegue el valorconnectionString
copiado en el paso anterior en la variable de cadena iotHubConnectionString.
Configuración del simulador de dispositivos con claves de autenticación
Configure el DeviceSimulator con las claves de autenticación que creó la plantilla de ARM.
Abra el archivo de texto AppCredentials.txt que ha creado en el ejercicio anterior.
En la solución DeviceSimulator de Visual Studio, abra el archivo PropUpdater.cs en el editor. Copie y pegue los identificadores únicos globales (GUID) de su archivo de texto en el archivo .cs. Utilice las siguientes asignaciones de las variables de .cs a la salida de datos JSON en el archivo de texto:
AppCredentials.txt PropUpdater.cs appId clientId password clientSecret tenant tenantId Seleccione Archivo>Guardar todo para guardar el trabajo en Visual Studio.
Conecte el objeto Prefab de Azure Digital Twins en Unity a los gemelos digitales para que pueda recibir datos de telemetría simulados de la DeviceSimulator
.
Adición del objeto Prefab de conexión de Azure Digital Twins
Agregue el recurso Prefab de conexión de Azure Digital Twins a la escena de Unity y configúrelo.
Vuelva al proyecto de Unity.
Seleccione el objeto del juego
ADTConnection
en la Jerarquía. Si falta en la jerarquía, arrastre el recurso Prefab Assets>ADTPrefabs>ADTConnection (Recursos > ADTPrefabs > ADTConnection) a la jerarquía de escenas.Abra el archivo de texto que creó en el último ejercicio, Azure_config_settings.txt, en un editor de texto. El archivo contiene los parámetros de configuración clave de Azure Digital Twins. Como alternativa, si la sesión de PowerShell permanece activa, busque la salida del comando
get-content
.En el archivo Azure_config_settings.txt o en la salida del comando
get-content
en PowerShell, busque el par clave-valor de la clavesignalRNegotiatePath
y copie el valor. Debe tener un aspecto similar al siguiente:https://myprojfuncappxxxxxxxxxx.azurewebsites.net/api/negotiate
Agregue este valor al parámetro dirección URL en Controlador de datos de ADT (Script) con la Dirección URL de la función obtenida en el paso 1. Incluya la dirección URL completa, hasta
…/api
. No incluya la última barra diagonal inversa ni la palabra negotiate.Guarde la escena.
Ahora que los servicios de Azure están configurados y los punteros adecuados están dentro de la escena de Unity, puede crear una interfaz de usuario (UI) para visualizar los datos de las operaciones.