Tutorial: Gerar dados de dispositivos simulados

Aplica-se a:sim ícone IoT Edge 1.1

Importante

IoT Edge 1,1 data de fim do suporte 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 IoT Edge.

Neste artigo, utilizamos dados de preparação de machine learning para simular um dispositivo que envia telemetria para Hub IoT do Azure. Conforme indicado na introdução, este tutorial utiliza 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 preparação e teste.

No nosso cenário experimental, sabemos que:

  • Os dados consistem em várias séries temporizadores multivariadas.
  • Cada conjunto de dados está dividido em subconjuntos de preparação e teste.
  • Cada série temporal é de um motor diferente.
  • Cada motor começa com diferentes graus de desgaste inicial e variação de fabrico.

Neste tutorial, utilizamos o subconjunto de dados de preparação de um único conjunto de dados (FD003).

Na realidade, cada motor seria um dispositivo IoT independente. Partindo do princípio de que não tem uma coleção de motores turbofan ligados à Internet disponíveis, iremos criar um stand-in de software para estes dispositivos.

O simulador é um programa C# que utiliza as APIs Hub IoT para registar programaticamente dispositivos virtuais com Hub IoT. Em seguida, lemos os dados de cada dispositivo a partir do subconjunto de dados fornecido pela NASA e enviamo-lo para o seu hub IoT com 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 .NET core escrito em C# que consiste em quatro classes:

  • Programa: O ponto de entrada para a execução responsável pelo processamento da entrada do utilizador e coordenação geral.
  • TrainingFileManager: Responsável pela leitura e análise do ficheiro de dados selecionado.
  • CycleData: Representa uma única linha de dados num ficheiro convertido em 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 pela transmissão dos dados para Hub IoT.

As tarefas descritas neste artigo devem demorar cerca de 20 minutos a serem concluídas.

O equivalente real ao trabalho neste passo seria provavelmente executado por programadores de dispositivos e programadores da cloud.

Nesta secção do tutorial, vai aprender a:

  • Incorpore um projeto externo no seu ambiente de desenvolvimento.
  • Utilize o projeto DeviceHarness de exemplo para gerar dados simulados do dispositivo IoT.
  • Veja os dados gerados no seu Hub IoT.

Pré-requisitos

Este artigo faz parte de uma série de tutoriais sobre como utilizar o Azure Machine Learning no IoT Edge. Cada artigo da série baseia-se no trabalho no artigo anterior. Se chegou diretamente a este artigo, visite o primeiro artigo da série.

Configurar o Visual Studio Code e criar o projeto DeviceHarness

  1. Abra uma sessão de ambiente de trabalho remoto na VM de desenvolvimento.

  2. No Visual Studio Code, abra a C:\source\IoTEdgeAndMlSample\DeviceHarness pasta .

  3. Uma vez que está a utilizar extensões neste computador pela primeira vez, algumas extensões irão atualizar e instalar as respetivas dependências. Poderá ser-lhe pedido para atualizar a extensão. Se for o caso, selecione Recarregar Janela.

    Se aparecerem erros omniSharp na janela de saída, terá de desinstalar a extensão C#.

  4. Ser-lhe-á pedido para adicionar os recursos necessários para DeviceHarness. Selecione Sim para adicioná-los.

    • A notificação pode demorar alguns segundos a aparecer.
    • Se não tiver visto esta notificação, verifique o ícone de sino no canto inferior direito.

    Pop-up da extensão do VS Code

  5. Selecione Restaurar para restaurar as dependências do pacote.

    Pedido de restauro do VS Code

    Se não receber estas notificações, feche o Visual Studio Code, elimine os diretórios bin e obj no C:\source\IoTEdgeAndMlSample\DeviceHarness, abra o Visual Studio Code e reabra a pasta DeviceHarness.

  6. Confirme que o ambiente está configurado corretamente ao acionar uma compilação, Ctrl + Shift + B ouTarefa de Compilação executarterminal>.

  7. É-lhe pedido que selecione a tarefa de compilação a executar. Selecione Compilar.

  8. A compilação é executada e gera uma mensagem de êxito.

    Mensagem de saída com êxito da compilação

  9. Pode tornar esta compilação a tarefa de compilação predefinida ao selecionarConfigurar Tarefa de Compilação Predefinida do Terminal>... e ao selecionar Compilar na linha de comandos.

Ligar ao Hub IoT e executar o DeviceHarness

Agora que temos a compilação do projeto, ligue-se ao hub IoT para aceder à cadeia de ligação e monitorizar o progresso da geração de dados.

Iniciar sessão no Azure no Visual Studio Code

  1. Inicie sessão na sua subscrição do Azure no Visual Studio Code ao abrir a paleta Ctrl + Shift + P de comandos ou Ver>Paleta de Comandos.

  2. Procure o comando Azure: Iniciar Sessão .

    É aberta uma janela do browser que lhe pede as suas credenciais. Quando for redirecionado para uma página de êxito, pode fechar o browser.

Ligar ao hub IoT e obter a cadeia de ligação do hub

  1. Na secção inferior do explorador do Visual Studio Code, selecione a moldura Hub IoT do Azure para expandi-la.

  2. Na moldura expandida, clique em Selecionar Hub IoT.

  3. Quando lhe for pedido, selecione a sua subscrição do Azure e, em seguida, o hub IoT.

  4. Clique em ... à direita de Hub IoT do Azure para obter mais ações. Selecione Copiar Hub IoT cadeia de ligação.

    Copiar Hub IoT cadeia de ligação

Executar o projeto DeviceHarness

  1. Selecione Ver>Terminal para abrir o terminal do Visual Studio Code.

    Se não vir um pedido, prima Enter.

  2. Introduza dotnet run no terminal.

  3. Quando lhe for pedida a Hub IoT Cadeia de Ligação, cole a cadeia de ligação copiada na secção anterior.

  4. Na moldura Hub IoT do Azure dispositivos, clique no botão atualizar.

    Atualizar Hub IoT lista de dispositivos

  5. Tenha em atenção que os dispositivos são adicionados à Hub IoT e que os dispositivos aparecem a verde para indicar que os dados estão a ser enviados através desse dispositivo. Depois de os dispositivos enviarem mensagens para o hub IoT, desligam-se e aparecem a azul.

  6. Pode ver as mensagens enviadas para o hub ao clicar com o botão direito do rato em qualquer dispositivo e selecionar Iniciar Monitorização do Ponto Final de Evento Incorporado. As mensagens serão apresentadas no painel de saída no Visual Studio Code.

  7. Pare a monitorização clicando no painel de saída Hub IoT do Azure e selecione Parar Monitorização do Ponto Final de Evento Incorporado.

  8. Deixe a aplicação ser executada até à conclusão, o que demora alguns minutos.

Verificar Hub IoT atividade

Os dados enviados pelo DeviceHarness foram enviados para o seu hub IoT, onde pode verificar no portal do Azure.

  1. Abra o portal do Azure e navegue para o hub IoT criado para este tutorial.

  2. No menu do painel esquerdo, em Monitorização, selecione Métricas.

  3. Na página de definição do gráfico, clique no menu pendente Métrica , desloque-se para baixo na lista e selecione Encaminhamento: dados entregues no armazenamento. O gráfico deve mostrar o pico de quando os dados foram encaminhados para o armazenamento.

    O gráfico mostra um pico quando os dados são entregues ao armazenamento

Validar dados no Armazenamento do Azure

Os dados que acabámos de enviar para o seu hub IoT foram encaminhados para o contentor de armazenamento que criámos no artigo anterior. Vamos ver os dados na nossa conta de armazenamento.

  1. No portal do Azure, navegue para a sua conta de armazenamento.

  2. No navegador da conta de armazenamento, selecione Explorador de Armazenamento (pré-visualização).

  3. No explorador de armazenamento, selecione Contentores de Blobs e, em seguida, devicedata.

  4. No painel de conteúdo, clique na pasta do nome do hub IoT, seguido de ano, mês, dia e hora. Verá várias pastas que representam os minutos em que os dados foram escritos.

    Ver pastas no armazenamento de blobs

  5. Clique numa dessas pastas para localizar ficheiros de dados identificados como 00 e 01 correspondentes à partição.

  6. Os ficheiros são escritos no formato Avro . Faça duplo clique num destes ficheiros para abrir outro separador do browser e compor parcialmente os dados. Se lhe for pedido para abrir o ficheiro num programa, pode escolher o VS Code e este será apresentado corretamente.

  7. Não é necessário tentar ler ou interpretar os dados neste momento; vamos fazê-lo no próximo artigo.

Limpar os recursos

Este tutorial faz parte de um conjunto em que cada artigo baseia-se no trabalho realizado nos anteriores. Aguarde até concluir o tutorial final.

Passos seguintes

Neste artigo, utilizámos um projeto .NET Core para criar um conjunto de dispositivos IoT virtuais e enviar dados através deles para o nosso hub IoT e para um contentor de Armazenamento do Azure. Este projeto simula um cenário do mundo real em que os dispositivos IoT físicos enviam dados para um Hub IoT e para um armazenamento organizado. Estes dados incluem leituras de sensores, definições operacionais, sinais de falha e modos, etc. Assim que forem recolhidos dados suficientes, utilizamo-lo para preparar modelos que prevêem a vida útil restante (RUL) para o dispositivo. Vamos demonstrar esta aprendizagem automática no próximo artigo.

Avance para o artigo seguinte para preparar um modelo de machine learning com os dados.