Compartilhar via


Transformar dados externamente para o IoT Central

Os dispositivos IoT enviam dados em vários formatos. Para usar os dados do dispositivo com o aplicativo do IoT Central, talvez seja necessário usar uma transformação para:

  • Tornar o formato dos dados compatível com o aplicativo do IoT Central.
  • Converter unidades.
  • Computar novas métricas.
  • Enriquecer os dados de outras fontes.

Este artigo mostra como transformar os dados do dispositivo fora do IoT Central tanto na entrada quanto na saída.

Observação

O IoT Central também pode transformar dados internamente. Para saber mais, consulte a Telemetria de mapa na entrada para o IoT Central e Transformar dados dentro de seu aplicativo IoT Central para exportação.

O seguinte diagrama mostra três rotas para os dados que incluem transformações:

Resumo das rotas de transformação de dados na entrada e na saída

A seguinte tabela mostra três exemplos de tipos de transformação:

Transformação Descrição Exemplo Observações
Formato da mensagem Converter em mensagens JSON ou processá-las. CSV para JSON Na entrada. O IoT Central aceita apenas mensagens com o valor JSON. Para saber mais, confira Cargas de telemetria, propriedade e comando.
Computações Funções matemáticas que podem ser executadas pelo Azure Functions. Conversão de unidade de Fahrenheit para Celsius. Faça a transformação com o padrão de saída para aproveitar a entrada escalonável do dispositivo por meio da conexão direta com o IoT Central. A transformação dos dados permite que você use recursos do IoT Central como visualizações e trabalhos.
Melhoramento da mensagem Enriquecimentos de fontes de dados externas não encontrados nas propriedades do dispositivo ou na telemetria. Para saber mais sobre os enriquecimentos internos, confira Exportar dados de IoT para destinos de nuvem usando o Armazenamento de Blobs. Adicione informações de clima a mensagens usando dados de localização dos dispositivos. Faça a transformação com o padrão de saída para aproveitar a entrada escalonável do dispositivo por meio da conexão direta com o IoT Central.

Pré-requisitos

Para concluir as etapas neste guia de instruções, você precisará de:

Transformação de dados na entrada

Para transformar os dados do dispositivo na entrada, há duas opções:

  • IoT Edge: use um módulo do IoT Edge para transformar dados de dispositivos downstream antes de enviá-los para o aplicativo do IoT Central.

  • Ponte do dispositivo do IoT Central: a ponte do dispositivo do IoT Central conecta outras nuvens de dispositivo IoT, como o Sigfox, o Particle e o The Things Network, ao IoT Central. A ponte do dispositivo usa uma função do Azure para encaminhar os dados, e você pode personalizar a função para transformar os dados do dispositivo.

Usar o IoT Edge para transformar os dados do dispositivo

Transformação de dados na entrada usando o IoT Edge

Nesse cenário, um módulo do IoT Edge transforma os dados de dispositivos downstream antes de encaminhá-los para o aplicativo do IoT Central. Em um alto nível, as etapas necessárias para configurar esse cenário são:

  1. Configurar um dispositivo do IoT Edge: instale e provisione um dispositivo do IoT Edge como um gateway e conecte o gateway ao aplicativo do IoT Central.

  2. Conectar o dispositivo downstream ao dispositivo do IoT Edge: conecte dispositivos downstream ao dispositivo do IoT Edge e provisione-os no aplicativo do IoT Central.

  3. Transformar dados do dispositivo no IoT Edge: crie um módulo do IoT Edge para transformar os dados. Implante o módulo no dispositivo de gateway do IoT Edge que encaminha os dados do dispositivo transformados para o aplicativo do IoT Central.

  4. Verificar: envie dados de um dispositivo downstream para o gateway e verifique se os dados do dispositivo transformados chegam ao aplicativo do IoT Central.

No exemplo descrito nas seguintes seções, o dispositivo downstream envia dados JSON no seguinte formato para o dispositivo de gateway do IoT Edge:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "celsius",
  }
}

Você usa um módulo do IoT Edge para transformar os dados e converter o valor de temperatura de Celsius para Fahrenheit antes de enviá-los ao IoT Central:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "fahrenheit"
  }
}

Procurar código

As seguintes etapas mostram como configurar esse cenário:

Compilar o módulo personalizado

Neste cenário, o dispositivo do IoT Edge executa um módulo personalizado que transforma os dados do dispositivo downstream. Antes de implantar e configurar o dispositivo do IoT Edge, você precisará:

  • Compilar o módulo personalizado.
  • Adicionar o módulo personalizado a um registro de contêiner.

O runtime do IoT Edge baixa módulos personalizados de um registro de contêiner, como um registro de contêiner do Azure ou um Docker Hub. O Azure Cloud Shell tem todas as ferramentas de que você precisa para criar um registro de contêiner, compilar o módulo e carregá-lo no registro:

Para criar um registro de contêiner:

  1. Abra o Azure Cloud Shell e entre na sua assinatura do Azure.

  2. Selecione o shell do Bash.

  3. Execute os seguintes comandos para criar um registro de contêiner do Azure:

    REGISTRY_NAME="{your unique container registry name}"
    az group create --name ingress-scenario --location eastus
    az acr create -n $REGISTRY_NAME -g ingress-scenario --sku Standard --admin-enabled true
    az acr credential show -n $REGISTRY_NAME
    

    Anote os valores username e password, pois você os usará mais tarde. Você só precisa de uma das senhas mostradas na saída do comando.

Para compilar o módulo personalizado no Azure Cloud Shell:

  1. No Azure Cloud Shell, clone o repositório GitHub que contém o código-fonte do módulo:

    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  2. Para compilar o módulo personalizado, execute os seguintes comandos no Azure Cloud Shell:

    cd iot-central-transform-with-iot-edge/custommodule/transformmodule
    az acr build --registry $REGISTRY_NAME --image transformmodule:0.0.1-amd64 -f Dockerfile.amd64 .
    

    Os comandos anteriores podem levar alguns minutos para serem executados.

Configurar um dispositivo IoT Edge

Este cenário usa um dispositivo de gateway do IoT Edge para transformar os dados de qualquer dispositivo downstream. Esta seção descreve como criar modelo de dispositivo do IoT Central para o dispositivo de gateway em seu aplicativo do IoT Central. Os dispositivos do IoT Edge usam um manifesto de implantação para configurar os módulos.

Neste exemplo, o dispositivo downstream não precisa de um modelo de dispositivo. O dispositivo downstream é registrado no IoT Central para que você possa gerar as credenciais de que ele precisa para conectar o dispositivo IoT Edge. Como o módulo do IoT Edge transforma os dados, toda a telemetria do dispositivo downstream chega ao IoT Central como se tivesse sido enviada pelo dispositivo IoT Edge.

Para criar um modelo de dispositivo para o dispositivo de gateway do IoT Edge:

  1. Salve uma cópia do manifesto de implantação no computador de desenvolvimento local: moduledeployment.json.

  2. Abra a cópia local do arquivo de manifesto moduledeployment.json em um editor de texto.

  3. Localize a seção registryCredentials e substitua os espaços reservados pelos valores anotados durante a criação do registro de contêiner do Azure. O valor de address é semelhante a {your username}.azurecr.io.

  4. Localize a seção settings para encontrar transformmodule. Substitua {your username} pelo mesmo valor usado na etapa anterior. Salve as alterações.

  5. No aplicativo do IoT Central, navegue até a página Manifestos do Edge.

  6. Selecione + Novo. Insira um nome como Transformer para o manifesto de implantação e carregue o arquivo moduledeployment.json baixado anteriormente. O manifesto de implantação inclui um módulo personalizado chamado transformmodule.

  7. Selecione Avançar e, em seguida, Criar.

  8. No aplicativo do IoT Central, acesse a página Modelos de dispositivos.

  9. Selecione + Novo, Azure IoT Edge e Próximo: Personalizar.

  10. Insira Dispositivo de gateway do IoT Edge como o nome do modelo de dispositivo. Selecione Este é um dispositivo de gateway.

  11. Selecione Avançar: Examinar e selecione Criar.

  12. Na página Criar um modelo, selecione Modelo personalizado.

  13. No modelo, selecione Módulos e, em seguida, Importar módulos do manifesto. Selecione o manifesto de implantação de Transformer e selecione Importar.

O manifesto de implantação não especifica a telemetria que o módulo envia. Para adicionar as definições de telemetria ao modelo de dispositivo:

  1. Selecione Módulo transformmodule na seção Módulos do modelo de dispositivo de gateway do IoT Edge.

  2. Selecione Adicionar funcionalidade e use as informações nas tabelas a seguir para adicionar um novo tipo de telemetria:

    Configuração Valor
    Nome de exibição Dispositivo
    Nome dispositivo
    Tipo de funcionalidade Telemetria
    Tipo semântico Nenhum
    Esquema Objeto

    Definição do objeto:

    Nome de exibição Nome Esquema
    ID do dispositivo deviceId String

    Salve suas alterações.

  3. Selecione Adicionar funcionalidade e use as informações nas tabelas a seguir para adicionar um novo tipo de telemetria:

    Configuração Valor
    Nome de exibição Medidas
    Nome medições
    Tipo de funcionalidade Telemetria
    Tipo semântico Nenhum
    Esquema Objeto

    Definição do objeto:

    Nome de exibição Nome Esquema
    Temperatura temperatura Double
    Pressão pressão Double
    Umidade umidade Double
    Escala scale String

    Salve suas alterações.

  4. No modelo, escolha Relações. Não selecione Relações no módulo transformmodule.

  5. Selecione Adicionar relação.

  6. Insira Sensor Downstream como o nome de exibição, sensor como o nome e Qualquer como o destino. Selecione Salvar.

  7. Escolha Publicar para publicar o modelo de dispositivo.

Para registrar um dispositivo de gateway no IoT Central:

  1. No aplicativo do Azure IoT Central, procure a página Dispositivos.

  2. Selecione Dispositivo de gateway do IoT Edge e + Novo. Insira Dispositivo de gateway do IoT Edge como o nome do dispositivo, insira gateway-01 como a identificação do dispositivo e verifique se Dispositivo de gateway do IoT Edge está selecionado como o modelo de dispositivo e se Não está selecionado como Simular este dispositivo?. Selecione Transformer como o manifesto de borda. Selecione Criar.

  3. Na lista de dispositivos, clique no Dispositivo de gateway do IoT Edge e selecione Conectar.

  4. Anote os valores de Escopo da ID, Identificação do dispositivo e Chave primária do Dispositivo de gateway do IoT Edge. Você os usará mais tarde.

Para registrar um dispositivo downstream no IoT Central:

  1. No aplicativo do Azure IoT Central, procure a página Dispositivos.

  2. Não selecione um modelo de dispositivo. Selecione + Novo. Insira Downstream 01 como o nome do dispositivo, insira downstream-01 como a ID do dispositivo e verifique se o modelo de dispositivo esteja Não atribuído e se Não está selecionado como Simular este dispositivo?. Selecione Criar.

  3. Na lista de dispositivos, clique no dispositivo Downstream 01 e selecione Gerenciar dispositivo > Anexar a um gateway.

  4. Na caixa de diálogo Anexar a um gateway, selecione o modelo de dispositivo Dispositivo de gateway do IoT Edge e a instância de dispositivo Dispositivo de gateway do IoT Edge. Selecionar Anexar.

  5. No dispositivo Downstream 01, selecione Conectar.

  6. Anote os valores de Escopo da ID, Identificação do dispositivo e Chave primária do dispositivo de Downstream 01. Você os usará mais tarde.

Implantar o gateway e os dispositivos downstream

Para sua conveniência, este artigo usa máquinas virtuais do Azure para executar o gateway e os dispositivos downstream. Para criar as duas máquinas virtuais do Azure, selecione o botão Implantar no Azure mostrado após a tabela a seguir. Use as informações da tabela para preencher o formulário de Implantação personalizada:

Campo Valor
Grupo de recursos ingress-scenario
Prefixo do rótulo DNS do gateway Um nome DNS exclusivo para este computador, como <your name>edgegateway
Prefixo do rótulo DNS do dispositivo downstream Um nome DNS exclusivo para este computador, como <your name>downstream
ID do escopo O escopo da ID anotado anteriormente
Identificação do dispositivo do gateway do IoT Edge gateway-01
Chave do dispositivo do gateway do IoT Edge O valor da chave primária anotado anteriormente
Tipo de autenticação Senha
Senha ou chave de administrador A senha escolhida para a conta AzureUser nas duas máquinas virtuais.

Botão Implantar no Azure

Selecione Examinar + Criar e depois Criar. São necessários alguns minutos para criar as máquinas virtuais no grupo de recursos ingress-scenario.

Para verificar se o dispositivo de gateway do IoT Edge está sendo executado corretamente:

  1. Abra o aplicativo do IoT Central. Em seguida, procure o Dispositivo de gateway do IoT Edge na lista de dispositivos na página Dispositivos.

  2. Selecione a guia Módulos e verifique o status dos três módulos. São necessários alguns minutos para que o runtime do IoT Edge seja iniciado na máquina virtual. Quando a máquina virtual está em execução, o status dos três módulos é Executando. Se o runtime do IoT Edge não for iniciado, confira Solução de problemas do dispositivo do IoT Edge.

Para que o dispositivo do IoT Edge funcione como um gateway, ele precisará de alguns certificados para provar a identidade para todos os dispositivos downstream. Este artigo usa certificados de demonstração. Em um ambiente de produção, use certificados da sua autoridade de certificação.

Para gerar os certificados de demonstração e instalá-los em seu dispositivo de gateway:

  1. Use o SSH para se conectar e entrar na máquina virtual do dispositivo de gateway. Encontre o nome DNS da máquina virtual no portal do Azure. Procure a máquina virtual edgegateway no grupo de recursos ingress-scenario.

    Dica

    Talvez você precise abrir a porta 22 para o acesso SSH nas duas máquinas virtuais para usar o SSH e se conectar no computador local ou no Azure Cloud Shell.

  2. Execute os seguintes comandos para clonar o repositório do IoT Edge e gerar os certificados de demonstração:

    # Clone the repo
    cd ~
    git clone https://github.com/Azure/iotedge.git
    
    # Generate the demo certificates
    mkdir certs
    cd certs
    cp ~/iotedge/tools/CACertificates/*.cnf .
    cp ~/iotedge/tools/CACertificates/certGen.sh .
    ./certGen.sh create_root_and_intermediate
    ./certGen.sh create_edge_device_ca_certificate "mycacert"
    

    Depois que você executar os comandos anteriores, os seguintes arquivos estarão prontos para uso nas próximas etapas:

    • ~/certs/certs/azure-iot-test-only.root.ca.cert.pem: o Certificado de Autoridade de Certificação raiz usado para criar todos os outros certificados de demonstração para testar um cenário do IoT Edge.
    • ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem: um Certificado de Autoridade de Certificação do dispositivo que é referenciado no arquivo config.yaml. Em um cenário de gateway, esse Certificado de Autoridade de Certificação é como o dispositivo do IoT Edge confirma a identidade para dispositivos downstream.
    • ~/certs/private/iot-edge-device-mycacert.key.pem: a chave privada associada ao Certificado de Autoridade de Certificação do dispositivo.

    Para saber mais sobre esses certificados de demonstração, confira Criar certificados de demonstração para testar recursos do dispositivo do IoT Edge.

  3. Abra o arquivo config.toml em um editor de texto. Por exemplo:

    sudo nano /etc/aziot/config.toml
    
  4. Remova a marca de comentário das configurações do certificado e modifique-as da seguinte maneira:

    trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem"
    
    ...
    
    [edge_ca]
    cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem"
    pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
    

    O exemplo anterior pressupõe que você esteja conectado como AzureUser e tenha criado um Certificado de Autoridade de Certificação do dispositivo chamado "mycacert".

  5. Salve as alterações e execute o seguinte comando para verificar se o arquivo config.toml está correto:

    sudo iotedge check
    
  6. Reinicie o runtime do IoT Edge:

    sudo iotedge config apply
    

Se o runtime do IoT Edge for iniciado com êxito após as alterações, o status dos módulos $edgeAgent e $edgeHub será alterado para Em execução. Veja esses valores de status na página Módulos do dispositivo de gateway no IoT Central.

Se o runtime não for iniciado, verifique as alterações feitas em config.toml e confira Solução de problemas do dispositivo IoT Edge.

Conectar um dispositivo downstream ao dispositivo do IoT Edge

Para conectar um dispositivo downstream ao dispositivo de gateway do IoT Edge:

  1. Use o SSH para se conectar e entrar na sua máquina virtual do dispositivo downstream. Encontre o nome DNS da máquina virtual no portal do Azure. Procure a máquina virtual leafdevice no grupo de recursos ingress-scenario.

    Dica

    Talvez você precise abrir a porta 22 para o acesso SSH nas duas máquinas virtuais para usar o SSH e se conectar no computador local ou no Azure Cloud Shell.

  2. Para clonar o repositório do GitHub com o código-fonte do dispositivo downstream de exemplo, execute o seguinte comando:

    cd ~
    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  3. Para copiar o certificado necessário do dispositivo de gateway, execute os comandos scp a seguir. Esse comando scp usa o nome do host edgegateway para identificar a máquina virtual do gateway. Você precisará fornecer sua senha:

    cd ~/iot-central-transform-with-iot-edge
    scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certs
    
  4. Procure a pasta leafdevice e instale os pacotes necessários. Em seguida, execute os scripts build e start para provisionar e conectar o dispositivo ao gateway:

    cd ~/iot-central-transform-with-iot-edge/leafdevice
    sudo apt update
    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get install nodejs
    npm install
    npm run-script build
    npm run-script start
    

    Durante os comandos sudo apt-get install nodejs, pode ser solicitado que você permita as instalações: pressione Y se solicitado.

  5. Insira a identificação do dispositivo, a ID do escopo e a chave SAS para o dispositivo downstream criado anteriormente. Para o nome do host, insira edgegateway. A saída do comando é semelhante a:

    Registering device downstream-01 with scope 0ne00284FD9
    Registered device downstream-01.
    Connecting device downstream-01
    Connected device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    

Para simplificar, o código do dispositivo downstream provisiona o dispositivo IoT Central. Normalmente, os dispositivos downstream se conectam por meio de um gateway porque não podem se conectar à Internet e, portanto, não podem se conectar ao ponto de extremidade do Serviço de Provisionamento de Dispositivos. Para saber mais, consulte Como conectar dispositivos por meio de um gateway IoT Edge transparente.

Verificar

Para verificar se o cenário está em execução, procure o Dispositivo de gateway do IoT Edge no IoT Central:

Captura de tela que mostra os dados transformados na página dos dispositivos.

  • Escolha Módulos. Verifique se os três módulos do IoT Edge, $edgeAgent, $edgeHub e transformmodule, estão em execução.

  • Selecione Dados brutos. Os dados telemétricos da coluna Dispositivo têm a seguinte aparência:

    {"deviceId":"downstream-01"}
    

    Os dados telemétricos da coluna Medidas têm a seguinte aparência:

    {"temperature":85.21208,"pressure":59.97321,"humidity":77.718124,"scale":"farenheit"}
    

A temperatura é enviada em Fahrenheit. Como o dispositivo do IoT Edge está transformando os dados do dispositivo downstream, a telemetria está associada ao dispositivo de gateway no IoT Central. Para visualizar a telemetria transformada, crie uma exibição no modelo de dispositivo de gateway do IoT Edge e republicá-la.

Transformação de dados na saída

Você pode conectar seus dispositivos ao IoT Central, exportar os dados do dispositivo para um mecanismo de computação para transformá-los e enviar os dados transformados novamente ao IoT Central para análise e gerenciamento de dispositivo. Por exemplo:

  • Seus dispositivos enviam dados de localização para o IoT Central.
  • O IoT Central exporta os dados para um mecanismo de computação que aprimora os dados de localização com informações de clima.
  • O mecanismo de computação envia os dados aprimorados novamente para o IoT Central.

Use a ponte do dispositivo do IoT Central como o mecanismo de computação para transformar os dados exportados do IoT Central.

Uma vantagem de transformar os dados na saída é que os seus dispositivos se conectam diretamente ao IoT Central, o que facilita o envio de comandos para dispositivos ou a atualização das propriedades do dispositivo. No entanto, com esse método, você pode usar mais mensagens do que a sua alocação mensal e aumentar o custo do uso do Azure IoT Central.

Usar a ponte do dispositivo do IoT Central para transformar os dados do dispositivo

Transformação de dados na saída usando o IoT Edge

Neste cenário, um mecanismo de computação transforma os dados do dispositivo exportados do IoT Central antes de enviá-los novamente para o aplicativo do IoT Central. Em um alto nível, as etapas necessárias para configurar esse cenário são:

  1. Configurar o mecanismo de computação: crie uma ponte do dispositivo do IoT Central para que ela funcione como um mecanismo de computação para a transformação de dados.

  2. Transformar os dados do dispositivo na ponte do dispositivo: transforme os dados na ponte do dispositivo modificando o código da função da ponte do dispositivo para o seu caso de uso de transformação de dados.

  3. Habilitar o fluxo de dados do IoT Central para a ponte do dispositivo: exporte os dados do IoT Central para a ponte do dispositivo para transformação. Em seguida, encaminhe os dados transformados novamente para o IoT Central. Quando você criar a exportação de dados, use filtros de propriedade de mensagem para exportar somente os dados não transformados.

  4. Verificar: conecte seu dispositivo ao aplicativo do IoT Central e verifique os dados brutos e os dados transformados do dispositivo no IoT Central.

No exemplo descrito nas próximas seções, o dispositivo envia dados CSV no seguinte formato para o dispositivo de gateway do IoT Edge:

"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"

Use a ponte do dispositivo para transformar os dados do dispositivo:

  • Alterando a unidade de temperatura de centígrados para Fahrenheit.
  • Enriquecendo os dados do dispositivo com os dados meteorológicos extraídos do serviço Open Weather para os valores de latitude e longitude.

Em seguida, a ponte do dispositivo envia os dados transformados para o IoT Central no seguinte formato:

{
  "temp": <temperature in degrees F>,
  "humidity": <humidity>,
  "lat": <latitude>,
  "lon": <logitude>,
  "weather": {
    "weather_temp": <temperature at lat/lon>,
    "weather_humidity": <humidity at lat/lon>,
    "weather_pressure": <pressure at lat/lon>,
    "weather_windspeed": <wind speed at lat/lon>,
    "weather_clouds": <cloud cover at lat/lon>,
    "weather_uvi": <UVI at lat/lon>
  }
}

As seguintes etapas mostram como configurar esse cenário:

Recuperar as configurações de conexão do IoT Central

Antes de configurar esse cenário, você precisará obter algumas configurações de conexão do aplicativo do IoT Central:

  1. Entre no aplicativo IoT Central.

  2. Navegue até Permissões > Grupos de conexão de dispositivo.

  3. Anote o Escopo da ID. Você usará esse valor mais tarde.

  4. Selecione o grupo de registro SaS-IoT-Devices. Anote o valor da chave primária da Assinatura de Acesso Compartilhado. Você usará esse valor mais tarde.

Configurar um mecanismo de computação

Esse cenário usa a mesma implantação do Azure Functions da ponte do dispositivo do IoT Central. Para implantar a ponte do dispositivo, selecione o botão Implantar no Azure mostrado após a tabela a seguir. Use as informações da tabela para preencher o formulário de Implantação personalizada:

Campo Valor
Grupo de recursos Crie um grupo de recursos chamado egress-scenario
Region Selecione a região mais próxima de você.
ID do escopo Use o Escopo da ID anotado anteriormente.
Chave SAS do IoT Central Use a chave primária da Assinatura de Acesso Compartilhado para o grupo de registro SaS-IoT-Devices. Você anotou esse valor anteriormente.

Implantar no Azure.

Selecione Examinar + Criar e depois Criar. São necessários alguns minutos para criar a função do Azure e os recursos relacionados no grupo de recursos egress-scenario.

Transformar dados do dispositivo na ponte do dispositivo

Para configurar a ponte do dispositivo para transformar os dados do dispositivo exportado:

  1. Obtenha uma chave de API do aplicativo do serviço do Open Weather. Uma conta é gratuita com o uso limitado do serviço. Para criar uma chave de API do aplicativo, crie uma conta no portal do serviço do Open Weather e siga as instruções. Você usará a chave de API do Open Weather mais tarde.

  2. No portal do Azure, procure Aplicativo de Funções no grupo de recursos egress-scenario.

  3. No painel de navegação à esquerda, em Ferramentas de Desenvolvimento, selecione Editor do Serviço de Aplicativo (versão prévia).

  4. Selecione Ir → para abrir a página Editor do Serviço de Aplicativo. Faça as seguintes alterações:

    1. Abra o arquivo wwwroot/IoTCIntegration/index.js. Substitua todo o código desse arquivo pelo código localizado em index.js.

    2. No novo index.js, atualize o arquivo de variável openWeatherAppId com a chave de API do Open Weather obtida anteriormente.

      const openWeatherAppId = '<Your Open Weather API Key>'
      
    3. Adicione uma propriedade de mensagem aos dados enviados pela função para o IoT Central. O IoT Central usa essa propriedade para impedir a exportação dos dados transformados. Para fazer essa alteração, abra o arquivo wwwroot/IoTCIntegration/lib/engine.js. Localize o seguinte código:

      if (timestamp) {
        message.properties.add('iothub-creation-time-utc', timestamp);
      }
      

      Adicione o seguinte código logo após o código do snippet anterior:

      // add a message property that we can look for in data export to not re-compute computed telemetry
      message.properties.add('computed', true);
      

      Para referência, veja um exemplo completo do arquivo engine.js.

  5. No Editor do Serviço de Aplicativo, selecione Console no painel de navegação à esquerda. Execute os seguintes comandos para instalar os pacotes necessários:

    cd IoTCIntegration
    npm install
    

    Esse comando pode demorar um pouco para ser executado.

  6. Volte à página Visão Geral da Função do Azure e reinicie a função:

    Reiniciar a função

  7. Selecione Funções no painel de navegação à esquerda. Em seguida, selecione IoTCIntegration. Selecione Código + Teste.

  8. Anote a URL da função, pois você precisará desse valor mais tarde:

    Obter a URL da função

Habilitar o fluxo de dados do IoT Central para a ponte do dispositivo

Esta seção descreve como configurar o aplicativo do Azure IoT Central.

Primeiro, salve o arquivo de modelo de dispositivo no computador local.

Para adicionar um modelo de dispositivo ao aplicativo do IoT Central, procure o aplicativo do IoT Central e:

  1. Entre no aplicativo do IoT Central e procure a página Modelos de dispositivos.

  2. Selecione + Novo, Dispositivo IoT, Próximo: Personalizar e insira Modelo de computação como o nome do modelo. Selecione Avançar: Análise. Em seguida, selecione Criar.

  3. Selecione Importar um modelo e procure o arquivo model.json baixado anteriormente.

  4. Depois que o modelo for importado, selecione Publicar para publicar o modelo de dispositivo Modelo de computação.

Configure a exportação de dados para enviar dados à ponte do dispositivo:

  1. No aplicativo do IoT Central, selecione Exportação de dados.

  2. Selecione + Novo destino para criar um destino que será usado com a ponte do dispositivo. Chame a Função de computação de destino e, em Tipo de destino, selecione Webhook. Para a URL de Retorno de Chamada, selecione Colar na URL da função anotada anteriormente. Mantenha a Autorização como Sem Autenticação.

  3. Salve as alterações.

  4. Selecione + Nova exportação e crie uma exportação de dados chamada Exportação de computação.

  5. Adicione um filtro para exportar somente os dados do dispositivo para o modelo de dispositivo que você está usando. Selecione + Filtro, Modelo de dispositivo do item, o operador Igual a e o modelo de dispositivo Modelo de computação criado.

  6. Adicione um filtro de mensagem para diferenciar os dados transformados dos não transformados. Esse filtro impede o envio de valores transformados novamente para a ponte do dispositivo. Selecione + Filtro da propriedade de mensagem, insira o valor do nome computado e escolha o operador Não existe. A cadeia de caracteres computed é usada como uma palavra-chave no código de exemplo da ponte do dispositivo.

  7. Para o destino, selecione o destino da Função de computação criado anteriormente.

  8. Salve as alterações. Após alguns minutos, o Status de exportação será mostrado como Íntegro.

Verificar

O dispositivo de exemplo usado para testar o cenário foi escrito em Node.js. Verifique se você tem o Node.js e o npm instalados no computador local. Se você não quiser instalar esses pré-requisitos, use o Azure Cloud Shell onde estiverem pré-instalados.

Para executar um dispositivo de exemplo que testa o cenário:

  1. Clone o repositório GitHub que contém o código de exemplo executando o seguinte comando:

    git clone https://github.com/Azure/iot-central-compute
    
  2. Para conectar o dispositivo de exemplo ao aplicativo do IoT Central, edite as configurações de conexão no arquivo iot-central-compute/device/device.js. Substitua a ID do escopo e a chave SAS do grupo pelos valores anotados anteriormente:

    // These values need to be filled in from your Azure IoT Central application
    //
    const scopeId = "<IoT Central Scope Id value>";
    const groupSasKey = "<IoT Central Group SAS key>";
    //
    

    Salve as alterações.

  3. Use os seguintes comandos para instalar os pacotes necessários e execute o dispositivo:

    cd ~/iot-central-compute/device
    npm install
    node device.js
    
  4. O resultado desse comando é semelhante à seguinte saída:

    registration succeeded
    assigned hub=iotc-2bd611b0....azure-devices.net
    deviceId=computeDevice
    Client connected
    send status: MessageEnqueued [{"data":"33.23, 69.09, 30.7213, -61.1192"}]
    send status: MessageEnqueued [{"data":"2.43, 75.86, -2.6358, 162.935"}]
    send status: MessageEnqueued [{"data":"6.19, 76.55, -14.3538, -82.314"}]
    send status: MessageEnqueued [{"data":"33.26, 48.01, 71.9172, 48.6606"}]
    send status: MessageEnqueued [{"data":"40.5, 36.41, 14.6043, 14.079"}]
    
  5. No aplicativo do IoT Central, procure o dispositivo chamado computeDevice. Na exibição de Dados brutos, há dois fluxos de telemetria diferentes que exibidos aproximadamente a cada cinco segundos. O fluxo com os dados não modelados é a telemetria original, e o fluxo com os dados modelados são os dados transformados pela função:

    Captura de tela que mostra os dados brutos originais e transformados.

Limpar os recursos

Caso não precise mais dos recursos do Azure criados ao seguir as etapas neste guia, exclua os grupos de recursos no portal do Azure.

Os dois grupos de recursos usados neste guia são ingress-scenario e egress-scenario.

Próximas etapas

Neste artigo, você conheceu as diferentes opções para transformar dados do dispositivo para o IoT Central, tanto na entrada quanto na saída. O artigo incluiu instruções passo a passo para dois cenários específicos:

  • Usar um módulo do IoT Edge para transformar dados de dispositivos downstream antes de os dados serem enviados ao aplicativo do IoT Central.
  • Usar o Azure Functions para transformar dados fora do IoT Central. Nesse cenário, o IoT Central usa uma exportação de dados para enviar os dados de entrada a uma função do Azure para que eles sejam transformados. A função envia os dados transformados novamente ao aplicativo do IoT Central.

Agora que você aprendeu a transformar os dados do dispositivo fora do aplicativo do Azure IoT Central, saiba Como usar o data explorer para analisar dados do dispositivo no IoT Central.