Exercício - Conecte e transmita dados do Gêmeo Digital do Azure para ativos de turbinas eólicas
Um Serviço SignalR do Azure foi exposto como parte do modelo ARM que você implantou. Este serviço e a configuração associada permitem que você se conecte aos Gêmeos Digitais do Azure. Criamos um pipeline de dados para recuperar dados de gêmeos digitais, que são abstraídos do aplicativo cliente que é executado em realidade mista.
Visão geral do Serviço Azure SignalR
O Azure SignalR Service simplifica o processo de acrescentar a funcionalidade Web de tempo real a aplicações através de HTTP. Esta funcionalidade em tempo real permite que o serviço envie atualizações de conteúdo a clientes ligados, como uma única página Web ou aplicação móvel. Como resultado, os clientes são atualizados sem a necessidade de sondar o servidor ou enviar novas solicitações HTTP para atualizações. Qualquer cenário que exija o envio de dados do servidor para o cliente em tempo real pode usar o Serviço Azure SignalR. Os recursos tradicionais em tempo real que geralmente exigem sondagem de um servidor também podem usar o Serviço Azure SignalR.
Você pode integrar facilmente o Serviço SignalR do Azure com outros serviços do Azure, o que abre outros cenários possíveis. Por exemplo, o Azure Functions pode usar a API REST para enviar notificações por push para o Serviço Azure SignalR, que envia dados por push para clientes conectados em tempo real. O Serviço Azure SignalR, usado com o Hub IoT, pode permitir que dados de sensores em tempo real sejam transmitidos a clientes conectados para dar suporte a cenários de monitoramento em tempo real.
Os cenários em tempo real geralmente vêm com fluxos de dados de alta frequência e grandes quantidades de conexões simultâneas entre o cliente e o servidor. Eles exigem uma configuração de infraestrutura não trivial para colocar a funcionalidade em funcionamento em escala. Configurar essa infraestrutura em escala é difícil. A configuração geralmente requer lógica específica do aplicativo em várias camadas de rede. O Serviço Azure SignalR lida com esses problemas para que você possa se concentrar na lógica do aplicativo que oferece experiências conectadas em tempo real. Você pode dimensionar a funcionalidade em tempo real dinamicamente, pagando apenas pelo que usar. O serviço também herda os recursos do Serviço SignalR do Azure para conexões persistentes em vários transportes.
Uma grande variedade de setores usou o Serviço Azure SignalR para qualquer tipo de aplicativo que exija atualizações de conteúdo em tempo real. Aqui estão alguns exemplos que são bons para usar o Serviço Azure SignalR:
- Atualizações de dados de alta frequência: jogos, votação, votação e leilão
- Painéis e monitoramento: painel da empresa, dados do mercado financeiro, atualização instantânea de vendas, quadro de líderes de jogos multijogador e monitoramento de IoT
- Localização em tempo real no mapa: rastreamento logístico, rastreamento de status de entrega, atualizações de status de transporte e aplicativos de GPS
- Anúncios segmentados em tempo real: ofertas e anúncios push personalizados em tempo real e anúncios interativos
- Aplicativos colaborativos: coautoria, aplicativos de quadro de comunicações e software de reunião de equipe
- Notificações push: alertas de redes sociais, e-mail, jogos e viagens
- Transmissão em tempo real: transmissão de áudio/vídeo ao vivo, legendas ao vivo, tradução e transmissão de eventos/notícias
- IoT e dispositivos conectados: métricas de IoT em tempo real, controle remoto, status em tempo real e rastreamento de localização
- Automação: gatilho em tempo real a partir de eventos upstream
Para seu caso de uso de turbina eólica, a camada de comunicação entre os dados da turbina eólica do Azure Digital Twins e seu dispositivo de realidade mista usa o Serviço SignalR do Azure e um cliente SignalR incorporado no aplicativo de realidade mista.
Para expor os dados ao seu aplicativo cliente usando o Azure Digital Twins, você precisa se conectar ao Serviço Azure SignalR. O aplicativo de realidade mista que você está criando implementa um cliente SignalR para se conectar ao serviço SignalR. Estabelecer comunicação entre o cliente SignalR e o serviço Azure SignalR requer que o cliente invoque a negotiate
função no serviço SignalR.
Configure o seu DeviceSimulator
com os parâmetros de conexão do Azure Digital Twins e os detalhes de autenticação capturados no exercício anterior.
Obter credenciais de aplicativo
Abra DeviceSimulator.sln no Visual Studio e configure o
DeviceSimulator
com o nome do host para o tipo de recurso Gêmeos Digitais do Azure criado pelo modelo ARM.Abra o arquivo de texto Azure_config_settings.txt que você criou no último exercício que contém os principais parâmetros de configuração do Azure Digital Twins usando um editor de texto. Como alternativa, se a sessão do PowerShell permanecer ativa, procure a saída do comando
get-content
.No arquivo Azure_config_settings.txt ou na saída do comando
get-content
no PowerShell, localize o par chave/valor daadtHostName
chave e copie o valor. Deve ser semelhante a:https://myprojadtxxxxxxxxxx.api.eus.digitaltwins.azure.net
Em sua solução Visual Studio DeviceSimulator, abra o arquivo AzureIoTHub.cs no editor clicando duas vezes no arquivo do Gerenciador de Soluções. Cole o valor da
adtHostName
chave/par copiado da Etapa 2 na variável de cadeia de caracteres adtInstanceUrl .
Configurar o simulador de dispositivo com cadeia de conexão primária
Configure o DeviceSimulator
com a cadeia de conexão primária para o Hub IoT que o modelo ARM criou.
Importante
Este módulo inclui etapas para conectar um dispositivo usando uma assinatura de acesso compartilhado, também chamada de autenticação de chave simétrica. Esse método de autenticação é conveniente para testes e avaliações, mas autenticar um dispositivo usando certificados X.509 é uma abordagem mais segura. Para saber mais, consulte Práticas > recomendadas de segurança Segurança de conexão.
No arquivo Azure_config_settings.txt ou na saída do comando
get-content
no PowerShell, localize o par chave/valor daconnectionString
chave e copie o valor. Deve ser semelhante a:HostName=myprojHubxxxxxxxxxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
Em sua solução do Visual Studio
DeviceSimulator
, abra o arquivo AzureIoTHub.cs no editor e cole oconnectionString
valor copiado na etapa anterior na variável de cadeia de caracteres iotHubConnectionString .
Configurar o simulador de dispositivo com chaves de autenticação
Configure o DeviceSimulator com as chaves de autenticação que o modelo ARM criou.
Abra o arquivo de texto AppCredentials.txt que você criou no exercício anterior.
Em sua solução Visual Studio DeviceSimulator , abra o arquivo de PropUpdater.cs no editor. Copie e cole os GUIDs (identificadores globais exclusivos) do arquivo de texto para o arquivo .cs . Use os seguintes mapeamentos das variáveis .cs para a saída de dados JSON em seu arquivo de texto:
AppCredentials.txt PropUpdater.cs appId clientId password clientSecret tenant tenantId Selecione Arquivo>Salvar tudo para salvar seu trabalho no Visual Studio.
Conecte seus gêmeos digitais do Azure pré-fabricados no Unity aos gêmeos digitais para que você possa receber dados de telemetria simulados do DeviceSimulator
.
Adicionar a conexão pré-fabricada do Azure Digital Twins
Adicione o ativo pré-fabricado de conexão do Azure Digital Twins à sua cena Unity e configure.
Volte ao seu projeto Unity.
Selecione o objeto de
ADTConnection
jogo na Hierarquia. Se estiver faltando na sua hierarquia, arraste o ativo pré-fabricado Assets>ADTPrefabs>ADTConnection para sua hierarquia de cena.Abra o arquivo de texto que você criou no último exercício, Azure_config_settings.txt, em um editor de texto. O arquivo contém os principais parâmetros de configuração do Azure Digital Twins. Como alternativa, se a sessão do PowerShell permanecer ativa, procure a saída do comando
get-content
.No arquivo Azure_config_settings.txt ou na saída do comando
get-content
no PowerShell, localize o par chave/valor dasignalRNegotiatePath
chave e copie o valor. Deve ser semelhante a:https://myprojfuncappxxxxxxxxxx.azurewebsites.net/api/negotiate
Adicione esse valor ao parâmetro Url em ADT Data Handler (Script) com a Function Url obtida na Etapa 1. Inclua tudo no URL até e incluindo
…/api
. Não inclua a última barra invertida ou a palavra negociar.Salve a cena.
Agora que os serviços do Azure estão configurados e os ponteiros apropriados estão dentro da sua cena Unity, você pode criar uma interface do usuário (UI) para visualizar os dados de operações.