Transforme dados externamente para o IoT Central
Os dispositivos IoT enviam dados em vários formatos. Para usar os dados do dispositivo com seu aplicativo IoT Central, talvez seja necessário usar uma transformação para:
- Torne o formato dos dados compatível com seu aplicativo IoT Central.
- Converta unidades.
- Calcule novas métricas.
- Enriqueça os dados de outras fontes.
Este artigo mostra como transformar dados de dispositivos fora do IoT Central, seja na entrada ou na saída.
Nota
O IoT Central também pode transformar dados internamente, para saber mais, consulte Mapear telemetria na entrada no IoT Central e Transformar dados dentro do seu aplicativo IoT Central para exportação.
O diagrama a seguir mostra três rotas para dados que incluem transformações:
A tabela a seguir mostra três tipos de transformação de exemplo:
Transformação | Description | Exemplo | Notas |
---|---|---|---|
Formato da mensagem | Converter ou manipular mensagens JSON. | CSV para JSON | Na entrada. O IoT Central só aceita mensagens JSON de valor. Para saber mais, consulte Telemetria, propriedade e cargas úteis de comando. |
Cálculos | Funções matemáticas que o Azure Functions pode executar. | Conversão de unidades de Fahrenheit para Celsius. | Transforme usando o padrão de saída para aproveitar a entrada de dispositivos escaláveis por meio de 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. |
Enriquecimento de mensagens | Enriquecimento de fontes de dados externas não encontradas nas propriedades do dispositivo ou na telemetria. Para saber mais sobre enriquecimento interno, consulte Exportar dados de IoT para destinos na nuvem usando o Armazenamento de Blob. | Adicione informações meteorológicas a mensagens usando dados de localização de dispositivos. | Transforme usando o padrão de saída para aproveitar a entrada de dispositivos escaláveis por meio de conexão direta com o IoT Central. |
Pré-requisitos
Para concluir as etapas neste guia de instruções, você precisa:
Uma subscrição ativa do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Um aplicativo IoT Central criado a partir do modelo de aplicativo personalizado. Para saber mais, consulte Criar um aplicativo do IoT Central e Sobre seu aplicativo.
Transformação de dados na entrada
Para transformar os dados do dispositivo na entrada, há duas opções:
IoT Edge: use um módulo IoT Edge para transformar dados de dispositivos downstream antes de enviar os dados para seu aplicativo IoT Central.
Ponte de dispositivo do IoT Central: a ponte de dispositivo do IoT Central conecta outras nuvens de dispositivos IoT, como Sigfox, Partícula e The Things Network, ao IoT Central. A ponte de 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 dados do dispositivo
Nesse cenário, um módulo IoT Edge transforma os dados de dispositivos downstream antes de encaminhá-los para seu aplicativo IoT Central. Em um alto nível, as etapas para configurar esse cenário são:
Configurar um dispositivo IoT Edge: instale e provisione um dispositivo IoT Edge como um gateway e conecte o gateway ao seu aplicativo IoT Central.
Conectar dispositivo downstream ao dispositivo IoT Edge: conecte dispositivos downstream ao dispositivo IoT Edge e provisione-os para seu aplicativo IoT Central.
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 IoT Edge que encaminha os dados do dispositivo transformado para seu aplicativo IoT Central.
Verificar: envie dados de um dispositivo downstream para o gateway e verifique se os dados do dispositivo transformado chegam ao seu aplicativo IoT Central.
No exemplo descrito nas seções a seguir, o dispositivo downstream envia dados JSON no seguinte formato para o dispositivo de gateway 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 da temperatura de para antes Fahrenheit
de Celsius
enviá-lo para o IoT Central:
{
"device": {
"deviceId": "<downstream-deviceid>"
},
"measurements": {
"temp": <temperature>,
"pressure": <pressure>,
"humidity": <humidity>,
"scale": "fahrenheit"
}
}
As etapas a seguir mostram como instalar e configurar esse cenário:
Criar o módulo personalizado
Nesse cenário, o dispositivo IoT Edge executa um módulo personalizado que transforma os dados do dispositivo downstream. Antes de implantar e configurar o dispositivo IoT Edge, você precisa:
- Crie o módulo personalizado.
- Adicione o módulo personalizado a um registro de contêiner.
O tempo de execução do IoT Edge baixa módulos personalizados de um registro de contêiner, como um registro de contêiner do Azure ou o Docker Hub. O Azure Cloud Shell tem todas as ferramentas necessárias para criar um registo de contentor, criar o módulo e carregar o módulo para o registo:
Para criar um registro de contêiner:
Abra o Azure Cloud Shell e inicie sessão na sua subscrição do Azure.
Selecione o shell Bash .
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
username
valores epassword
e você os usa mais tarde. Você só precisa de uma das senhas mostradas na saída do comando.
Para criar o módulo personalizado no Azure Cloud Shell:
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
Para criar 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 vários minutos para serem executados.
Configurar um dispositivo IoT Edge
Este cenário usa um dispositivo de gateway IoT Edge para transformar os dados de qualquer dispositivo downstream. Esta seção descreve como criar um modelo de dispositivo do IoT Central para o dispositivo de gateway em seu aplicativo do IoT Central. Os dispositivos IoT Edge usam um manifesto de implantação para configurar seus 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 necessárias para conectar o dispositivo IoT Edge. Como o módulo IoT Edge transforma os dados, toda a telemetria do dispositivo downstream chega ao IoT Central como se o dispositivo IoT Edge o tivesse enviado.
Para criar um modelo de dispositivo para o dispositivo de gateway IoT Edge:
Salve uma cópia do manifesto de implantação em sua máquina de desenvolvimento local: moduledeployment.json.
Abra sua cópia local do arquivo de manifesto moduledeployment.json em um editor de texto.
Localize a
registryCredentials
seção e substitua os espaços reservados pelos valores que você anotou quando criou o Registro de contêiner do Azure. Oaddress
valor se parece com{your username}.azurecr.io
.Encontre a
settings
secção para otransformmodule
. Substitua{your username}
pelo mesmo valor usado na etapa anterior. Guarde as alterações.Em seu aplicativo IoT Central, navegue até a página Manifestos de Borda.
Selecione + Novo. Insira um nome como Transformer para seu manifesto de implantação e carregue o arquivo de moduledeployment.json que você baixou anteriormente. O manifesto de implantação inclui um módulo personalizado chamado transformmodule.
Selecione Avançar e, em seguida, Criar.
Em seu aplicativo IoT Central, navegue até a página Modelos de dispositivo.
Selecione + Novo, selecione Azure IoT Edge e, em seguida, selecione Seguinte: Personalizar.
Insira o dispositivo de gateway IoT Edge como o nome do modelo de dispositivo. Selecione Este é um dispositivo de gateway.
Selecione Seguinte: Rever e, em seguida, selecione Criar.
Na página Criar um modelo, selecione Modelo personalizado.
No modelo, selecione Módulos e, em seguida, Importar módulos do manifesto. Selecione o manifesto de implantação do Transformer e, em seguida, selecione Importar.
O manifesto de implantação não especifica a telemetria enviada pelo módulo. Para adicionar as definições de telemetria ao modelo de dispositivo:
Selecione Module transformmodule na seção Modules do modelo de dispositivo de gateway IoT Edge.
Selecione Adicionar capacidade e use as informações nas tabelas a seguir para adicionar um novo tipo de telemetria:
Definição valor Display name Dispositivo Nome device Capability type Telemetria Semantic type (Tipo de semântica) Nenhuma Esquema Object Definição do objeto:
Nome a apresentar Nome Esquema ID do Dispositivo deviceId String Guardar as suas alterações.
Selecione Adicionar capacidade e use as informações nas tabelas a seguir para adicionar um novo tipo de telemetria:
Definição valor Display name Medidas Nome Medições Capability type Telemetria Semantic type (Tipo de semântica) Nenhuma Esquema Object Definição do objeto:
Nome a apresentar Nome Esquema Temperatura temperatura Duplo Pressão pressão Duplo Humidade humidade Duplo Escala scale String Guardar as suas alterações.
No modelo, selecione Relações. Não selecione Relações no módulo transformmodule .
Selecione Adicionar relação.
Digite Downstream Sensor como o nome de exibição, sensor como o nome e selecione Any como o destino. Selecione Guardar.
Selecione Publicar para publicar o modelo de dispositivo.
Para registrar um dispositivo de gateway no IoT Central:
Em seu aplicativo IoT Central, navegue até a página Dispositivos .
Selecione Dispositivo de gateway IoT Edge e selecione + Novo. Insira dispositivo de gateway IoT Edge como o nome do dispositivo, digite gateway-01 como o ID do dispositivo, verifique se o dispositivo de gateway IoT Edge está selecionado como o modelo de dispositivo e Não está selecionado como Simular este dispositivo?. Selecione Transformer como o manifesto da borda. Selecione Criar.
Na lista de dispositivos, clique no dispositivo de gateway IoT Edge e selecione Conectar.
Anote o escopo de ID, ID do dispositivo e valores de chave primária para o dispositivo de gateway IoT Edge. Você os usa mais tarde.
Para registrar um dispositivo downstream no IoT Central:
Em seu aplicativo IoT Central, navegue até a página Dispositivos .
Não selecione um modelo de dispositivo. Selecione + Novo. Digite Downstream 01 como o nome do dispositivo, digite downstream-01 como o ID do dispositivo, certifique-se de que o modelo de dispositivo é Não atribuído e Não está selecionado como Simular este dispositivo?. Selecione Criar.
Na lista de dispositivos, clique no dispositivo Downstream 01 e, em seguida, selecione Gerenciar dispositivo > Anexar ao gateway.
Na caixa de diálogo Anexar a um gateway, selecione o modelo de dispositivo do gateway IoT Edge e a instância do dispositivo do gateway IoT Edge. Selecione Anexar.
No dispositivo Downstream 01, selecione Conectar.
Anote o escopo da ID, a ID do dispositivo e os valores da chave primária para o dispositivo Downstream 01. Você os usa mais tarde.
Implantar o gateway e os dispositivos downstream
Por conveniência, este artigo usa máquinas virtuais do Azure para executar o gateway e 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 na tabela para preencher o formulário de implantação personalizada:
Campo | Value |
---|---|
Grupo de recursos | ingress-scenario |
Gateway de prefixo de rótulo DNS | Um nome DNS exclusivo para esta máquina, como <your name>edgegateway |
Prefixo de rótulo DNS Downstream | Um nome DNS exclusivo para esta máquina, como <your name>downstream |
ID do Âmbito | O escopo do ID que você anotou anteriormente |
ID do dispositivo: IoT Edge Gateway | gateway-01 |
Chave de dispositivo IoT Edge Gateway | O valor da chave primária que você anotou anteriormente |
Tipo de Autenticação | Palavra-passe |
Palavra-passe ou Chave do Administrador | Sua escolha de senha para a conta AzureUser em ambas as máquinas virtuais. |
Selecione Rever + Criar e, em seguida , Criar. Leva alguns minutos para criar as máquinas virtuais no grupo de recursos do cenário de ingresso.
Para verificar se o dispositivo de gateway IoT Edge está sendo executado corretamente:
Abra seu aplicativo IoT Central. Em seguida, navegue até o dispositivo IoT Edge Gateway na lista de dispositivos na página Dispositivos .
Selecione a guia Módulos e verifique o status dos três módulos. Leva alguns minutos para que o tempo de execução 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 tempo de execução do IoT Edge não iniciar, consulte Solucionar problemas do dispositivo IoT Edge.
Para que seu dispositivo IoT Edge funcione como um gateway, ele precisa de alguns certificados para provar sua identidade para qualquer dispositivo downstream. Este artigo usa certificados de demonstração. Em um ambiente de produção, use certificados de sua autoridade de certificação.
Para gerar os certificados de demonstração e instalá-los em seu dispositivo de gateway:
Use SSH para se conectar e entrar na máquina virtual do dispositivo gateway. Você pode encontrar o nome DNS para essa máquina virtual no portal do Azure. Navegue até a máquina virtual edgegateway no grupo de recursos do cenário de ingresso.
Gorjeta
Talvez seja necessário abrir a porta 22 para acesso SSH em ambas as máquinas virtuais antes de poder usar o SSH para se conectar a partir de sua máquina local ou do Azure Cloud Shell.
Execute os seguintes comandos para clonar o repositório do IoT Edge e gerar seus 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 de executar os comandos anteriores, os seguintes arquivos estão prontos para uso nas próximas etapas:
- ~/certs/certs/azure-iot-test-only.root.ca.cert.pem - O certificado de CA 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 CA de dispositivo referenciado a partir do arquivo config.yaml . Em um cenário de gateway, esse certificado de CA é como o dispositivo IoT Edge verifica sua identidade para dispositivos downstream.
- ~/certs/private/iot-edge-device-mycacert.key.pem - A chave privada associada ao certificado da autoridade de certificação do dispositivo.
Para saber mais sobre esses certificados de demonstração, consulte Criar certificados de demonstração para testar os recursos do dispositivo IoT Edge.
Abra o arquivo config.toml em um editor de texto. Por exemplo:
sudo nano /etc/aziot/config.toml
Descomente e modifique as configurações do certificado 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ê está conectado como AzureUser e criou uma CA de dispositivo certificada chamada "mycacert".
Salve as alterações e execute o seguinte comando para verificar se o arquivo config.toml está correto:
sudo iotedge check
Reinicie o tempo de execução do IoT Edge:
sudo iotedge config apply
Se o tempo de execução do IoT Edge for iniciado com êxito após as alterações, o status dos módulos $edgeAgent e $edgeHub mudará para Execução. Você pode ver esses valores de status na página Módulos do seu dispositivo de gateway no IoT Central.
Se o tempo de execução não iniciar, verifique as alterações feitas em config.toml e consulte Solucionar problemas do dispositivo IoT Edge.
Conectar dispositivo downstream ao dispositivo IoT Edge
Para conectar um dispositivo downstream ao dispositivo de gateway IoT Edge:
Use SSH para se conectar e entrar em sua máquina virtual de dispositivo downstream. Você pode encontrar o nome DNS para essa máquina virtual no portal do Azure. Navegue até a máquina virtual leafdevice no grupo de recursos do cenário de ingresso.
Gorjeta
Talvez seja necessário abrir a porta 22 para acesso SSH em ambas as máquinas virtuais antes de poder usar o SSH para se conectar a partir de sua máquina local ou do Azure Cloud Shell.
Para clonar o repositório 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
Para copiar o certificado necessário do dispositivo gateway, execute os seguintes
scp
comandos. Estescp
comando usa o nomeedgegateway
do host para identificar a máquina virtual do gateway. É-lhe solicitada a sua palavra-passe:cd ~/iot-central-transform-with-iot-edge scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certs
Navegue até a pasta leafdevice e instale os pacotes necessários. Em seguida, execute os
build
scripts estart
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
sudo apt-get install nodejs
os comandos, você pode ser solicitado a permitir instalações: pressioneY
se solicitado.Insira o ID do dispositivo, o ID do escopo e a chave SAS do dispositivo downstream criado anteriormente. Para o nome do host, digite
edgegateway
. A saída do comando tem a seguinte aparência: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 para o dispositivo downstream provisiona o dispositivo no 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 Dispositivo. Para saber mais, consulte Como conectar dispositivos por meio de um gateway transparente do IoT Edge.
Verificar
Para verificar se o cenário está em execução, navegue até o dispositivo de gateway IoT Edge no IoT Central:
Selecione 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 de telemetria na coluna Dispositivo têm a seguinte aparência:
{"deviceId":"downstream-01"}
Os dados de telemetria na coluna Medições 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 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 do gateway IoT Edge e publique-a novamente.
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, em seguida, enviar os dados transformados de volta para o IoT Central para gerenciamento e análise de dispositivos. Por exemplo:
- Os 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 meteorológicas.
- O mecanismo de computação envia os dados aprimorados de volta para o IoT Central.
Você pode usar a ponte de dispositivo do IoT Central como mecanismo de computação para transformar dados exportados do IoT Central.
Uma vantagem de transformar dados na saída é que 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 sua alocação mensal e aumentar o custo de usar o Azure IoT Central.
Usar a ponte de dispositivo do IoT Central para transformar dados do dispositivo
Nesse cenário, um mecanismo de computação transforma os dados do dispositivo exportados do IoT Central antes de enviá-los de volta para seu aplicativo do IoT Central. Em um alto nível, as etapas para configurar esse cenário são:
Configurar o mecanismo de computação: crie uma ponte de dispositivo do IoT Central para atuar como um mecanismo de computação para transformação de dados.
Transformar 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.
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 de volta para o IoT Central. Ao criar a exportação de dados, use filtros de propriedade de mensagem para exportar apenas dados não transformados.
Verificar: conecte seu dispositivo ao aplicativo IoT Central e verifique se há dados brutos do dispositivo e dados transformados no IoT Central.
No exemplo descrito nas seções a seguir, o dispositivo envia dados CSV no seguinte formato para o dispositivo de gateway IoT Edge:
"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"
Use a ponte de dispositivo para transformar os dados do dispositivo ao:
- Alterar a unidade de temperatura de centígrado para fahrenheit.
- Enriquecimento dos dados do dispositivo com 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 etapas a seguir mostram como instalar e configurar esse cenário:
Recuperar suas configurações de conexão do IoT Central
Antes de configurar esse cenário, você precisa obter algumas configurações de conexão do seu aplicativo IoT Central:
Faça login no seu aplicativo IoT Central.
Navegue até Grupos de conexão de Dispositivo de Permissões>.
Anote o escopo da ID. Você usa esse valor mais tarde.
Selecione o grupo de inscrição SaS-IoT-Devices . Anote a chave primária da assinatura de acesso compartilhado. Você usa esse valor mais tarde.
Configurar um mecanismo de computação
Este cenário usa a mesma implantação do Azure Functions que a ponte de dispositivo do IoT Central. Para implantar a ponte de dispositivo, selecione o botão Implantar no Azure mostrado após a tabela a seguir. Use as informações na tabela para preencher o formulário de implantação personalizada:
Campo | Value |
---|---|
Grupo de recursos | Criar um novo grupo de recursos chamado egress-scenario |
País/Região | Selecione a região mais próxima de si. |
ID do Âmbito | Use o escopo de ID que você anotou anteriormente. |
Chave SAS do IoT Central | Use a chave primária de assinatura de acesso compartilhado para o grupo de registro SaS-IoT-Devices . Você anotou esse valor anteriormente. |
Selecione Rever + Criar e, em seguida , Criar. Leva alguns minutos para criar a função do Azure e os recursos relacionados no grupo de recursos do cenário de saída.
Transformar dados do dispositivo na ponte do dispositivo
Para configurar a ponte de dispositivo para transformar os dados do dispositivo exportados:
Obtenha uma chave de API do aplicativo do serviço Open Weather. Uma conta é gratuita com uso limitado do serviço. Para criar uma chave de API do aplicativo, crie uma conta no portal do serviço Open Weather e siga as instruções. Você usa sua chave Open Weather API mais tarde.
No portal do Azure, navegue até Aplicativo de Função no grupo de recursos de cenário de saída.
Na navegação à esquerda, em Ferramentas de Desenvolvimento, selecione Editor do Serviço de Aplicativo (Visualização).
Selecione Ir → para abrir a página Editor do Serviço de Aplicativo. Efetue as seguintes alterações:
Abra o arquivo wwwroot/IoTCIntegration/index.js . Substitua todo o código neste arquivo pelo código no index.js.
Na nova index.js, atualize o arquivo variável com a
openWeatherAppId
chave Open Weather API obtida anteriormente.const openWeatherAppId = '<Your Open Weather API Key>'
Adicione uma propriedade message 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 no trecho 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, você pode exibir um exemplo concluído do arquivo engine.js .
No Editor do Serviço de Aplicativo, selecione Console na navegação à esquerda. Execute os seguintes comandos para instalar os pacotes necessários:
cd IoTCIntegration npm install
Este comando pode demorar alguns minutos a ser executado.
Retorne à página Visão Geral da Função do Azure e reinicie a função:
Selecione Funções na navegação à esquerda. Em seguida, selecione IoTCIntegration. Selecione Código + Teste.
Anote o URL da função, você precisa desse valor mais tarde:
Habilitar o fluxo de dados do IoT Central para a ponte do dispositivo
Esta seção descreve como configurar o aplicativo Azure IoT Central.
Primeiro, salve o arquivo de modelo do dispositivo em sua máquina local.
Para adicionar um modelo de dispositivo ao seu aplicativo IoT Central, navegue até o aplicativo IoT Central e, em seguida:
Entre no seu aplicativo IoT Central e navegue até a página Modelos de dispositivo.
Selecione + Novo, selecione Dispositivo IoT, selecione Avançar: Personalizar, insira Modelo de computação como o nome do modelo. Selecione Next: Review. Depois, selecione Criar.
Selecione Importar um modelo e navegue até o arquivo model.json que você baixou anteriormente.
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 para a ponte do dispositivo:
Em seu aplicativo IoT Central, selecione Exportação de dados.
Selecione + Novo destino para criar um destino a ser usado com a ponte do dispositivo. Chame a função Compute de destino, para Tipo de destino, selecione Webhook. Para o URL de retorno de chamada, selecione colar no URL da função que você anotou anteriormente. Deixe a autorização como sem autenticação.
Guarde as alterações.
Selecione + Nova exportação e crie uma exportação de dados chamada Exportação de computação.
Adicione um filtro para exportar apenas dados do dispositivo para o modelo de dispositivo que está a utilizar. Selecione + Filtrar, selecione o item Modelo de dispositivo, selecione o operador Igual e selecione o modelo de dispositivo Modelo de computação que você criou.
Adicione um filtro de mensagem para diferenciar entre dados transformados e não transformados. Este filtro impede o envio de valores transformados de volta para a ponte do dispositivo. Selecione + Filtro de propriedade de mensagem e insira o valor de nome computado e, em seguida, selecione o operador Não existe. A cadeia de caracteres
computed
é usada como uma palavra-chave no código de exemplo da ponte de dispositivo.Para o destino, selecione o destino da função Computação que você criou anteriormente.
Guarde as alterações. Após cerca de um minuto, o status Exportar será exibido como Íntegro.
Verificar
O dispositivo de exemplo que você usa para testar o cenário é escrito em Node.js. Certifique-se de que tem o Node.js e o npm instalados na sua máquina local. Se você não quiser instalar esses pré-requisitos, use o Azure Cloud Shell onde eles estão pré-instalados.
Para executar um dispositivo de exemplo que testa o cenário:
Clone o repositório GitHub que contém o código de exemplo, execute o seguinte comando:
git clone https://github.com/Azure/iot-central-compute
Para conectar o dispositivo de exemplo ao seu aplicativo IoT Central, edite as configurações de conexão no arquivo iot-central-compute/device/device.js . Substitua o ID do escopo e a chave SAS do grupo pelos valores que você anotou 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>"; //
Guarde as alterações.
Use os seguintes comandos para instalar os pacotes necessários e executar o dispositivo:
cd ~/iot-central-compute/device npm install node device.js
O resultado desse comando se parece com a 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"}]
Em seu aplicativo IoT Central, navegue até o dispositivo chamado computeDevice. Na visualização Dados brutos, há dois fluxos de telemetria diferentes que aparecem a cada cinco segundos. O fluxo com dados não modelados é a telemetria original, o fluxo com dados modelados são os dados que a função transformou:
Clean up resources (Limpar recursos)
Se você não precisar 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 cenário de entrada e cenário de saída.
Próximos passos
Neste artigo, você aprendeu sobre as diferentes opções para transformar dados de dispositivos 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:
- Use um módulo IoT Edge para transformar dados de dispositivos downstream antes que os dados sejam enviados para seu aplicativo IoT Central.
- Use o Azure Functions para transformar dados fora do IoT Central. Nesse cenário, o IoT Central usa uma exportação de dados para enviar dados de entrada para uma função do Azure a ser transformada. A função envia os dados transformados de volta para seu aplicativo IoT Central.
Agora que você aprendeu como transformar dados de dispositivo fora do seu aplicativo Azure IoT Central, você pode aprender Como usar o explorador de dados para analisar dados de dispositivo no IoT Central.