Partilhar via


Utilize telemetria dinâmica com a solução pré-configurada de monitorização remota

A telemetria dinâmica permite visualizar qualquer telemetria enviada para a solução pré-configurada de monitorização remota. Os dispositivos simulados que se desdobram com a solução pré-configurada enviam telemetria de temperatura e humidade, que pode visualizar no painel de instrumentos. Se personalizar os dispositivos simulados existentes, criar novos dispositivos simulados ou ligar dispositivos físicos à solução pré-configurada, pode enviar outros valores de telemetria, tais como a temperatura externa, RPM ou velocidade de vento. Em seguida, pode visualizar esta telemetria adicional no painel de instrumentos.

Este tutorial usa um simples dispositivo simulado Node.js que pode facilmente modificar para experimentar com telemetria dinâmica.

Para completar este tutorial, você precisará:

  • Uma subscrição ativa do Azure. Se não tiver uma conta, pode criar uma de avaliação gratuita em apenas alguns minutos. Para obter mais detalhes, consulte Avaliação Gratuita do Azure.
  • Node.js versão 0.12.x ou posterior.

Pode completar este tutorial em qualquer sistema operativo, como Windows ou Linux, onde pode instalar Node.js.

Aprovisionar a solução

Se ainda não aprovisionou a solução pré-configurada de monitorização remota na sua conta:

  1. Inscreva-se para azureiotsuite.com usando as credenciais de conta Azure e clique + para criar uma solução.
  2. Clique em Selecionar no mosaico Monitorização remota.
  3. Introduza o Nome da solução para sua solução pré-configurada de monitorização remota.
  4. Selecione a Região e a Subscrição que pretende utilizar para aprovisionar a solução.
  5. Clique em Criar Solução para iniciar o processo de aprovisionamento. Este processo ação demora vários minutos para ser executado.

Aguarde até a conclusão do processo de aprovisionamento

  1. Clique no mosaico da sua solução com o estado Aprovisionamento.
  2. Tenha em atenção os Estados de aprovisionamento uma vez que os serviços do Azure estão implementados na sua subscrição do Azure.
  3. Depois de ter concluído o aprovisionamento, o estado passa para Pronto.
  4. Clique no mosaico para ver os detalhes da sua solução no painel da direita.

Nota

Se tiver problemas com a implementação da solução pré-configurada, consulte Permissions on the azureiotsuite.com site (Permissões no site azureiotsuite.com) e as FAQ. Se os problemas persistirem, crie um pedido de serviço no portal.

Pretendia ver certos detalhes que não se encontram listados para a sua solução? Dê-nos a suas sugestões de funcionalidades através de A Voz do Utilizador.

Configure o dispositivo simulado Node.js

  1. No painel de monitorização remoto, clique + Adicione um dispositivo e adicione um dispositivo personalizado. Tome nota do nome de hospedeiro Hub IoT, identificação do dispositivo e chave do dispositivo. Precisa deles mais tarde neste tutorial quando preparar a aplicação do cliente do dispositivo remote_monitoring.js.

  2. Certifique-se de que Node.js versão 0.12.x ou posteriormente instalada na sua máquina de desenvolvimento. Corra node --version num pedido de comando ou numa concha para verificar a versão. Para obter informações sobre a utilização de um gestor de pacotes para instalar Node.js no Linux, consulte instalar Node.js através do gestor do pacote.

  3. Quando tiver instalado Node.js, clone a versão mais recente do repositório azure-iot-sdk-node para a sua máquina de desenvolvimento. Utilize sempre o ramo principal para a versão mais recente das bibliotecas e amostras.

  4. A partir da sua cópia local do repositório azure-iot-sdk-node , copie os dois ficheiros seguintes da pasta nó/dispositivo/amostras para uma pasta vazia na sua máquina de desenvolvimento:

    • pacotes.json
    • remote_monitoring.js
  5. Abra o ficheiro remote_monitoring.js e procure a seguinte definição variável:

    var connectionString = "[IoT Hub device connection string]";
    
  6. Substitua [Hub IoT cadeia de ligação do dispositivo] com a cadeia de ligação do dispositivo. Utilize os valores para o seu Hub IoT nome de hospedeiro, id do dispositivo e chave do dispositivo que fez notar no passo 1. Uma cadeia de ligação do dispositivo tem o seguinte formato:

    HostName={your IoT Hub hostname};DeviceId={your device id};SharedAccessKey={your device key}
    

    Se o seu nome de Hub IoT é contoso e o seu dispositivo de id é mydevice, a sua cadeia de ligação parece o seguinte corte:

    var connectionString = "HostName=contoso.azure-devices.net;DeviceId=mydevice;SharedAccessKey=2s ... =="
    
  7. Guarde o ficheiro. Executar os seguintes comandos numa concha ou pedido de comando na pasta que contém estes ficheiros para instalar as embalagens necessárias e, em seguida, executar a aplicação da amostra:

    npm install
    node remote_monitoring.js
    

Observe a telemetria dinâmica em ação

O painel mostra a telemetria de temperatura e humidade dos dispositivos simulados existentes:

The default dashboard

Se selecionar o dispositivo simulado Node.js que executou na secção anterior, vê-se a temperatura, humidade e telemetria de temperatura externa:

Add external temperature to the dashboard

A solução de monitorização remota deteta automaticamente o tipo de telemetria de temperatura externa adicional e adiciona-a à tabela no painel de instrumentos.

Adicione um tipo de telemetria

O próximo passo é substituir a telemetria gerada pelo dispositivo simulado Node.js por um novo conjunto de valores:

  1. Pare o dispositivo simulado Node.js digitando Ctrl+C na sua pronta ou concha de comando.

  2. No ficheiro remote_monitoring.js, é possível ver os valores de base para a telemetria de temperatura, humidade e temperatura externa existentes. Adicione um valor base de dados para rpm da seguinte forma:

    // Sensors data
    var temperature = 50;
    var humidity = 50;
    var externalTemperature = 55;
    var rpm = 200;
    
  3. O dispositivo simulado Node.js utiliza a função generateRandomIncrement no ficheiro remote_monitoring.js para adicionar um incremento aleatório aos valores base de dados. Aleatoriamente o valor rpm adicionando uma linha de código após as aleatoriedades existentes da seguinte forma:

    temperature += generateRandomIncrement();
    externalTemperature += generateRandomIncrement();
    humidity += generateRandomIncrement();
    rpm += generateRandomIncrement();
    
  4. Adicione o novo valor rpm à carga útil JSON que o dispositivo envia para Hub IoT:

    var data = JSON.stringify({
      'DeviceID': deviceId,
      'Temperature': temperature,
      'Humidity': humidity,
      'ExternalTemperature': externalTemperature,
      'RPM': rpm
    });
    
  5. Executar o dispositivo simulado Node.js utilizando o seguinte comando:

    node remote_monitoring.js

  6. Observe o novo tipo de telemetria RPM que aparece na tabela no painel de instrumentos:

Add RPM to the dashboard

Nota

Pode ser necessário desativar e, em seguida, ativar o dispositivo Node.js na página dispositivos no painel de instrumentos para ver imediatamente a alteração.

Personalize o ecrã do painel de instrumentos

A mensagem Device-Info pode incluir metadados sobre a telemetria que o dispositivo pode enviar para Hub IoT. Estes metadados podem especificar os tipos de telemetria que o dispositivo envia. Modificar o valor do dispositivoMetaData no ficheiro remote_monitoring.js para incluir uma definição de Telemetria seguindo a definição de Comandos . O seguinte corte de código mostra a definição de Comandos (certifique-se de adicionar uma , após a definição de Comandos ):

'Commands': [{
  'Name': 'SetTemperature',
  'Parameters': [{
    'Name': 'Temperature',
    'Type': 'double'
  }]
},
{
  'Name': 'SetHumidity',
  'Parameters': [{
    'Name': 'Humidity',
    'Type': 'double'
  }]
}],
'Telemetry': [{
  'Name': 'Temperature',
  'Type': 'double'
},
{
  'Name': 'Humidity',
  'Type': 'double'
},
{
  'Name': 'ExternalTemperature',
  'Type': 'double'
}]

Nota

A solução de monitorização remota utiliza uma correspondência insensitada para comparar a definição de metadados com os dados no fluxo de telemetria.

A adição de uma definição de Telemetria , tal como mostrada no corte de código anterior, não altera o comportamento do painel de instrumentos. No entanto, os metadados também podem incluir um atributo DisplayName para personalizar o ecrã no painel de instrumentos. Atualizar a definição de metadados de telemetria , tal como mostrado no seguinte corte:

'Telemetry': [
{
  'Name': 'Temperature',
  'Type': 'double',
  'DisplayName': 'Temperature (C*)'
},
{
  'Name': 'Humidity',
  'Type': 'double',
  'DisplayName': 'Humidity (relative)'
},
{
  'Name': 'ExternalTemperature',
  'Type': 'double',
  'DisplayName': 'Outdoor Temperature (C*)'
}
]

A imagem que se segue mostra como esta alteração modifica a lenda do gráfico no painel de instrumentos:

Customize the chart legend

Nota

Pode ser necessário desativar e, em seguida, ativar o dispositivo Node.js na página dispositivos no painel de instrumentos para ver imediatamente a alteração.

Filtrar os tipos de telemetria

Por predefinição, o gráfico no painel de instrumentos mostra todas as séries de dados na corrente de telemetria. Pode utilizar os metadados Device-Info para suprimir a visualização de tipos específicos de telemetria na tabela.

Para que o gráfico mostre apenas telemetria de temperatura e humidade, omita a temperatura externa dos metadados de telemetriade informação do dispositivo:

'Telemetry': [
{
  'Name': 'Temperature',
  'Type': 'double',
  'DisplayName': 'Temperature (C*)'
},
{
  'Name': 'Humidity',
  'Type': 'double',
  'DisplayName': 'Humidity (relative)'
},
//{
//  'Name': 'ExternalTemperature',
//  'Type': 'double',
//  'DisplayName': 'Outdoor Temperature (C*)'
//}
]

A temperatura exterior já não aparece na tabela:

Filter the telemetry on the dashboard

Esta alteração apenas afeta o visor do gráfico. Os valores de dados externalTemperature ainda são armazenados e disponibilizados para qualquer processamento de backend.

Nota

Pode ser necessário desativar e, em seguida, ativar o dispositivo Node.js na página dispositivos no painel de instrumentos para ver imediatamente a alteração.

Processar erros

Para que um fluxo de dados seja exibido no gráfico, o seu Tipo nos metadados Device-Info deve corresponder ao tipo de dados dos valores da telemetria. Por exemplo, se os metadados especificarem que o tipo de dados de humidade é int e um duplo é encontrado na corrente de telemetria, então a telemetria de humidade não é apresentada na tabela. No entanto, os valores de humidade ainda são armazenados e disponibilizados para qualquer processamento de back-end.

Passos seguintes

Agora que viu como utilizar telemetria dinâmica, pode aprender mais sobre como as soluções pré-configuradas utilizam informações do dispositivo: Metadados de informação do dispositivo na solução pré-configurada de monitorização remota.