Tutorial: Gerar dados simulados do dispositivo
Aplica-se a: IoT Edge 1.1
Importante
A data de fim do suporte do IoT Edge 1.1 foi 13 de dezembro de 2022. Consulte o Ciclo de Vida de Produtos da Microsoft para obter informações sobre como é suportado este produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Atualizar o IoT Edge.
Neste artigo, usamos dados de treinamento de aprendizado de máquina para simular um dispositivo enviando telemetria para o Hub IoT do Azure. Como dito na introdução, este tutorial usa o conjunto de dados de simulação de degradação do motor Turbofan para simular dados de um conjunto de motores de avião para treinamento e testes.
No nosso cenário experimental, sabemos que:
- Os dados consistem em múltiplas séries temporais multivariadas.
- Cada conjunto de dados é dividido em subconjuntos de treinamento e teste.
- Cada série temporal é de um motor diferente.
- Cada motor arranca com diferentes graus de desgaste inicial e variação de fabrico.
Para este tutorial, usamos o subconjunto de dados de treinamento de um único conjunto de dados (FD003).
Na realidade, cada motor seria um dispositivo IoT independente. Supondo que você não tenha uma coleção de motores turbofan conectados à Internet disponíveis, construiremos um stand-in de software para esses dispositivos.
O simulador é um programa em C# que usa as APIs do Hub IoT para registrar programaticamente dispositivos virtuais com o Hub IoT. Em seguida, lemos os dados de cada dispositivo do subconjunto de dados fornecido pela NASA e os enviamos para seu hub IoT usando um dispositivo IoT simulado. Todo o código para esta parte do tutorial pode ser encontrado no diretório DeviceHarness do repositório.
O projeto DeviceHarness é um projeto de núcleo .NET escrito em C# que consiste em quatro classes:
- Programa: O ponto de entrada para a execução responsável por lidar com a entrada do usuário e coordenação geral.
- TrainingFileManager: Responsável pela leitura e análise do arquivo de dados selecionado.
- CycleData: representa uma única linha de dados em um arquivo convertido para o formato de mensagem.
- TurbofanDevice: Responsável pela criação de um Dispositivo IoT, que corresponde a um único dispositivo (série temporal), nos dados e transmissão dos dados para o Hub IoT.
As tarefas descritas neste artigo devem levar cerca de 20 minutos para serem concluídas.
O equivalente no mundo real ao trabalho nesta etapa provavelmente seria executado por desenvolvedores de dispositivos e desenvolvedores de nuvem.
Nesta seção do tutorial, você aprenderá a:
- Incorpore um projeto externo em seu ambiente de desenvolvimento.
- Use o projeto DeviceHarness de exemplo para gerar dados simulados de dispositivo IoT.
- Visualize os dados gerados no seu Hub IoT.
Pré-requisitos
Este artigo faz parte de uma série de tutoriais sobre como usar o Azure Machine Learning no IoT Edge. Cada artigo da série baseia-se no trabalho do artigo anterior. Se você chegou a este artigo diretamente, visite o primeiro artigo da série.
Configurar o Visual Studio Code e criar o projeto DeviceHarness
Abra uma sessão de área de trabalho remota para sua VM de desenvolvimento.
No código do Visual Studio, abra a
C:\source\IoTEdgeAndMlSample\DeviceHarness
pasta.Como você está usando extensões nesta máquina pela primeira vez, algumas extensões atualizarão e instalarão suas dependências. Você pode ser solicitado a atualizar a extensão. Em caso afirmativo, selecione Recarregar janela.
Se erros OmniSharp aparecerem na janela de saída, você precisará desinstalar a extensão C#.
Você será solicitado a adicionar os ativos necessários para o DeviceHarness. Selecione Sim para adicioná-los.
- A notificação pode demorar alguns segundos a aparecer.
- Se você perdeu essa notificação, verifique o ícone de sino no canto inferior direito.
Selecione Restaurar para restaurar as dependências do pacote.
Se você não receber essas notificações, feche o Visual Studio Code, exclua os diretórios bin e obj no
C:\source\IoTEdgeAndMlSample\DeviceHarness
, abra o Visual Studio Code e reabra a pasta DeviceHarness.Valide se seu ambiente está configurado corretamente acionando uma compilação, Ctrl + Shift + B ou Terminal>Run Build Task.
Você será solicitado a selecionar a tarefa de compilação a ser executada. Selecione Construir.
A compilação é executada e gera uma mensagem de sucesso.
Você pode tornar essa compilação a tarefa de compilação padrão selecionando Terminal>Configure Default Build Task... e escolhendo Build no prompt.
Conecte-se ao Hub IoT e execute o DeviceHarness
Agora que temos a construção do projeto, conecte-se ao seu hub IoT para acessar a cadeia de conexão e monitorar o progresso da geração de dados.
Iniciar sessão no Azure no Visual Studio Code
Entre em sua assinatura do Azure no Visual Studio Code abrindo a paleta
Ctrl + Shift + P
de comandos ou View>Command Palette.Procure o comando Azure: Entrar .
Uma janela do navegador é aberta e solicita suas credenciais. Quando for redirecionado para uma página de sucesso, pode fechar o navegador.
Conecte-se ao seu hub IoT e recupere a cadeia de conexão do hub
Na seção inferior do explorador de código do Visual Studio, selecione o quadro do Hub IoT do Azure para expandi-lo.
No quadro expandido, clique em Selecionar Hub IoT.
Quando solicitado, selecione sua assinatura do Azure e, em seguida, seu hub IoT.
Clique no botão ... à direita do Hub IoT do Azure para obter mais ações. Selecione Copiar cadeia de conexão do Hub IoT.
Executar o projeto DeviceHarness
Selecione View>Terminal para abrir o terminal do Visual Studio Code.
Se não vir uma mensagem, prima Enter.
Introduza
dotnet run
no terminal.Quando solicitado para a Cadeia de Conexão do Hub IoT, cole a cadeia de conexão copiada na seção anterior.
No quadro de dispositivos do Hub IoT do Azure, clique no botão atualizar.
Observe que os dispositivos são adicionados ao Hub IoT e que os dispositivos aparecem em verde para indicar que os dados estão sendo enviados por esse dispositivo. Depois que os dispositivos enviam mensagens para o hub IoT, eles se desconectam e aparecem em azul.
Você pode visualizar as mensagens enviadas para o hub clicando com o botão direito do mouse em qualquer dispositivo e selecionando Start Monitoring Built-in Event Endpoint. As mensagens serão exibidas no painel de saída no Visual Studio Code.
Pare de monitorar clicando no painel de saída do Hub IoT do Azure e escolha Parar ponto de extremidade de evento interno de monitoramento.
Deixe o aplicativo ser executado até a conclusão, o que leva alguns minutos.
Verifique a atividade do Hub IoT
Os dados enviados pelo DeviceHarness foram para o seu hub IoT, onde você pode verificar no portal do Azure.
Abra o portal do Azure e navegue até o hub IoT criado para este tutorial.
No menu do painel esquerdo, em Monitoramento, selecione Métricas.
Na página de definição do gráfico, clique na lista suspensa Métrica , role a lista para baixo e selecione Roteamento: dados entregues ao armazenamento. O gráfico deve mostrar o pico de quando os dados foram roteados para o armazenamento.
Validar dados no Armazenamento do Azure
Os dados que acabamos de enviar para o seu hub IoT foram roteados para o contêiner de armazenamento que criamos no artigo anterior. Vamos examinar os dados em nossa conta de armazenamento.
No portal do Azure, navegue para a sua conta de armazenamento.
No navegador da conta de armazenamento, selecione Gerenciador de Armazenamento (visualização).
No explorador de armazenamento, selecione Contentores de Blob e, em seguida
devicedata
, .No painel de conteúdo, clique na pasta para o nome do hub IoT, seguido por ano, mês, dia e hora. Você verá várias pastas representando as atas quando os dados foram gravados.
Clique em uma dessas pastas para encontrar arquivos de dados rotulados 00 e 01 correspondentes à partição.
Os arquivos são escritos em formato Avro . Clique duas vezes em um desses arquivos para abrir outra guia do navegador e renderizar parcialmente os dados. Se você for solicitado a abrir o arquivo em um programa, você pode escolher VS Code e ele será renderizado corretamente.
Não há necessidade de tentar ler ou interpretar os dados agora; Vamos fazê-lo no próximo artigo.
Clean up resources (Limpar recursos)
Este tutorial faz parte de um conjunto onde cada artigo se baseia no trabalho realizado nos anteriores. Aguarde para limpar todos os recursos até concluir o tutorial final.
Próximos passos
Neste artigo, usamos um projeto .NET Core para criar um conjunto de dispositivos IoT virtuais e enviar dados por meio deles para nosso hub IoT e para um contêiner de Armazenamento do Azure. Este projeto simula um cenário do mundo real em que dispositivos IoT físicos enviam dados para um Hub IoT e depois para um armazenamento com curadoria. Esses dados incluem leituras do sensor, configurações operacionais, sinais e modos de falha e assim por diante. Uma vez que dados suficientes tenham sido coletados, nós os usamos para treinar modelos que preveem a vida útil restante (RUL) para o dispositivo. Vamos demonstrar esse aprendizado de máquina no próximo artigo.
Continue para o próximo artigo para treinar um modelo de aprendizado de máquina com os dados.