Tutorial: Gerar dados simulados do dispositivo

Aplica-se a:yes icon IoT Edge 1.1

Neste artigo, utilizamos dados de formaçã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 treino e teste.

No nosso cenário experimental, sabemos que:

  • Os dados consistem em múltiplas séries de tempo multivariadas.
  • Cada conjunto de dados é dividido em subconjuntos de treino e teste.
  • Cada série de tempo é de um motor diferente.
  • Cada motor começa com diferentes graus de desgaste inicial e variação de fabrico.

Para este tutorial, utilizamos o subconjunto de dados de formação de um único conjunto de dados (FD003).

Na realidade, cada motor seria um dispositivo IoT independente. Assumindo que não tem uma coleção de motores turbofan ligados à Internet disponíveis, vamos construir um suporte de software para estes dispositivos.

O simulador é um programa C# que utiliza as APIs Hub IoT para registar programáticamente 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 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 núcleo .NET escrito em C# composto por quatro classes:

  • Programa: O ponto de entrada para a execução responsável pelo manuseamento da entrada do utilizador e coordenação geral.
  • FormaçãoFileManager: Responsável pela leitura e análise do ficheiro de dados selecionado.
  • CicloData: 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 sonora), nos dados e transmissão dos dados para Hub IoT.

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

O equivalente ao trabalho neste passo seria provavelmente realizado por desenvolvedores de dispositivos e desenvolvedores de nuvem.

Nesta secção do tutorial, aprende-se a:

  • Incorpore um projeto externo no seu ambiente de desenvolvimento.
  • Utilize o projeto DeviceHarness da amostra para gerar dados simulados do dispositivo IoT.
  • Ver dados gerados no seu Hub IoT.

Pré-requisitos

Este artigo faz parte de uma série para um tutorial sobre o uso de Azure Machine Learning na IoT Edge. Cada artigo da série baseia-se no trabalho no artigo anterior. Se já chegou a este artigo diretamente, visite o primeiro artigo da série.

Configurar o Código Visual Studio e construir o projeto DeviceHarness

  1. Abra uma sessão de desktop remota para o seu VM de desenvolvimento.

  2. Em Visual Studio código, abra a C:\source\IoTEdgeAndMlSample\DeviceHarness pasta.

  3. Uma vez que está a utilizar extensões nesta máquina pela primeira vez, algumas extensões irão atualizar e instalar as suas dependências. Pode ser solicitado para atualizar a extensão. Em caso afirmativo, selecione Reload Window.

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

  4. Ser-lhe-á solicitado que adicione os ativos necessários para o DeviceHarness. Selecione Sim para adicioná-los.

    • A notificação pode demorar alguns segundos a aparecer.
    • Se perdeu esta notificação, verifique o ícone da campainha no canto inferior direito.

    VS Code extension popup

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

    VS Code restore prompt

    Se não receber estas notificações, feche Visual Studio Código, elimine o caixote do lixo e os diretórios do OBJ em C:\source\IoTEdgeAndMlSample\DeviceHarness, abra Visual Studio Código e reabra a pasta DeviceHarness.

  6. Valide que o seu ambiente está devidamente configurado desencadeando uma tarefa de construção, CtrlShiftB + + ouTerminalRun>Build Task.

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

  8. A construção corre e produz uma mensagem de sucesso.

    Build succeeded output message

  9. Pode fazer com que esta construa a tarefa de construção predefinida selecionando a Tarefa de Construção Padrãode Configuração de Terminais>... e escolhendo Construir a partir do pedido.

Ligação para Hub IoT e executar DeviceHarness

Agora que temos o edifício do projeto, ligue-se ao seu 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. Inscreva-se na sua subscrição Azure em Visual Studio Código, abrindo a paleta de Ctrl + Shift + P comando ou aPaleta ViewCommand>.

  2. Procure o Azure: Inscreva-se no comando.

    Uma janela do navegador abre e pede as suas credenciais. Quando é redirecionado para uma página de sucesso, pode fechar o navegador.

Ligação ao seu hub IoT e recuperar a cadeia de conexão do hub

  1. Na secção inferior do explorador de código de Visual Studio, selecione o quadro Hub IoT do Azure para expandi-lo.

  2. No quadro expandido, clique em Select Hub IoT.

  3. Quando solicitado, selecione a sua subscrição Azure e, em seguida, o seu hub IoT.

  4. Clique no ... à direita de Hub IoT do Azure para mais ações. Selecione copiar Hub IoT fio de ligação.

    Copy IoT Hub connection string

Executar o projeto DeviceHarness

  1. Selecione ViewTerminal> para abrir o terminal de código Visual Studio.

    Se não vir uma solicitação, prima Enter.

  2. Introduza dotnet run no terminal.

  3. Quando solicitado para a Hub IoT Connection String, cole a cadeia de ligação copiada na secção anterior.

  4. Na moldura Hub IoT do Azure dispositivos, clique no botão de atualização.

    Refresh IoT Hub device list

  5. Note que os dispositivos são adicionados ao Hub IoT e que os dispositivos aparecem em 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 azuis.

  6. Pode visualizar as mensagens enviadas para o hub clicando à direita em qualquer dispositivo e selecionando Start Monitoring Built-in Event Endpoint. As mensagens aparecerão no painel de saída Visual Studio Código.

  7. Pare de monitorizar clicando no painel de saída Hub IoT do Azure e escolha parar de monitorizar o ponto final do evento incorporado.

  8. Deixe a aplicação decorrer, o que leva alguns minutos.

Verifique Hub IoT para atividade

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

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

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

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

    Chart shows spike when data delivered to storage

Validar dados em Azure Armazenamento

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. A partir do navegador da conta de armazenamento, selecione Explorador de Armazenamento (pré-visualização).

  3. No explorador de armazenamento, selecione Os Recipientes Blob então devicedata.

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

    View folders in blob storage

  5. Clique numa dessas pastas para encontrar ficheiros de dados rotulados 00 e 01 correspondentes à partição.

  6. Os ficheiros estão escritos no formato Avro . Clique duas vezes num destes ficheiros para abrir outro separador de navegador e render parcialmente os dados. Se for solicitado a abrir o ficheiro num programa, pode escolher o Código VS e renderizar-se-á corretamente.

  7. Não há necessidade de 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 onde cada artigo baseia-se no trabalho feito nos anteriores. Por favor, espere para limpar quaisquer recursos até completar o tutorial final.

Passos seguintes

Neste artigo, usá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 recipiente Azure Armazenamento. Este projeto simula um cenário real onde dispositivos físicos de IoT enviam dados para um Hub IoT e para um armazenamento curado. Estes dados incluem leituras de sensores, configurações operacionais, sinais de falha e modos, e assim por diante. Uma vez recolhidos dados suficientes, utilizamo-lo para formar modelos que prevejam a vida útil restante (RUL) para o dispositivo. Vamos demonstrar esta aprendizagem automática no próximo artigo.

Continue até ao próximo artigo para treinar um modelo de aprendizagem automática com os dados.