Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Telemetria do Sensor 2.0.1


Sensor Telemetry 2.0.1 Conduza os dados de temperatura para o Microsoft Azure IoT Hub e monitore os dados remotamente a partir de um aplicativo Windows Universal. Remasterizado digitalmente!

História


ATUALIZADO:O projeto Sensor Telemetry foi remasterizado digitalmente. Atualizado em 17 de maio de 2017 e renomeado para Sensor Telemetry 2.0.1

Introdução

Visão geral

Neste projeto, vamos monitorar um sensor de temperatura ( MCP9808 ) e enviar leituras de telemetria para um Hub IoT do Microsoft Azure onde um Stream Analytics trabalho processará as mensagens e as gravará em um Azure SQL Banco de dados tabela. Usaremos aplicativos para celular para ver o histórico das leituras do sensor.

O aplicativo

O projeto contém dois Aplicativos Universais do Windows (na Plataforma Universal do Windows, UWP) que compartilham cerca de 99% do código. Um é voltado para Raspberry Pi (ou ARM) e o outro é voltado para plataformas x86 ou x64.

A versão IoT do aplicativo é executada no Raspberry Pi e lê a temperatura no MCP9808. O aplicativo envia eventos de telemetria para o Hub IoT do Azure e o SignalR cubo. Esta versão também ouvirá comandos do Hub IoT do Azure.

A versão do cliente, iniciada em um computador, ouvirá as atualizações do sensor do hub SignalR e as exibirá na tela. Esta versão também enviará comandos para a versão IoT por meio do Hub IoT do Azure.

Tecnologias

O aplicativo neste projeto é baseado no MVVM (Model-View-ViewModel) padrão e foi construído usando o Prisma biblioteca e usa Prism.Unity para o IoC (Inversão de controle) container. Além dessas bibliotecas, o aplicativo usa o Event Aggregator encontrado em Prism.Event biblioteca para criar, da melhor forma possível, uma arquitetura puramente orientada a eventos. O aplicativo usa essa biblioteca para permitir que os módulos internos se comuniquem enquanto permanecem fracamente acoplados.

O aplicativo também usa SignalR no aplicativo móvel do Azure para permitir que várias instâncias do aplicativo se comuniquem entre si. As leituras de temperatura são “transmitidas” a todos os clientes em execução remota para que possam receber as leituras do sensor de temperatura para exibição na visualização principal.

Arquitetura

No coração do aplicativo está a biblioteca MCP9808 construída como um projeto separado que pode ser reutilizado em outros aplicativos. Este projeto é desenvolvido como uma biblioteca UWP que pode ser utilizada em qualquer aplicativo Windows 10. Se a biblioteca for usada em um dispositivo que não possui um I2C bus a biblioteca não retornará nenhum objeto de dispositivo. Essa abordagem pode ser usada para “detectar” um sensor e ignorar normalmente a biblioteca quando um sensor não for encontrado.

No aplicativo cliente UWP, há vários blocos que constituem o aplicativo geral. As Visualizações são as páginas visíveis e cada visualização possui um Modelo de Visualização responsável pelo estado da Visualização. Existem três repositórios:configurações de aplicativos ( IApplicationSettingsRepository ), informações de depuração ( IDebugConsoleRepository ) e lendo e gravando o MCP9808 ( ITemperatureRepository ) Existem duas classes concretas construídas em torno de ITemperatureRepository; um envolve a biblioteca MCP9808 e o outro é um dispositivo nulo usado quando o aplicativo não está sendo executado no Raspberry Pi.

A classe Mcp9808TemperatureRepository monitora o MCP9808 usando o serviço de temporizador e publica informações de temperatura por meio do agregador de evento interno toda vez que a leitura de temperatura ou o status de alerta muda. Um novo evento é enviado apenas quando a leitura atual é diferente da leitura anterior.

Também há uma série de serviços definidos por IBackgroundService que são executados em segundo plano para várias atividades.

O diagrama abaixo descreve uma visão de alto nível da arquitetura e da conectividade entre os vários blocos e serviços.

Serviço de telemetria

Este serviço monitora o evento de mudança de temperatura (por meio de uma assinatura) e envia uma mensagem ao Hub de Eventos do Azure Service Bus sempre que a temperatura muda.

Serviço de cronômetro

Este serviço simples é um cronômetro que publica um evento a cada 500 milissegundos e é usado pelos modelos de visualização para exibir a hora atual em uma visualização. Também é usado pelo Mcp9808TemperatureRepository para ler o sensor uma vez a cada segundo. Os argumentos do evento do temporizador incluem um contador que pode ser usado com a função mod para dividir facilmente o intervalo do temporizador na duração desejada. Há um método chamado IsMyInterval (intervalo TimeSpan) no argumento do evento que faz as contas para você. Tudo que você precisa fazer é fornecer o intervalo como um TimeSpan objeto.

Serviço de monitoramento de PIN de alerta

Este serviço monitora o estado do pino GPIO conectado ao pino de alerta no MCP9808. Quando o valor do GPIO é alterado, este serviço publica um evento.

Serviço de LED

Este serviço é responsável por ligar e desligar os LEDs. Isso é feito monitorando (por meio de assinatura) o evento de mudança de temperatura, que também inclui o status de alerta do MCP9808. Quando o status de alerta muda, os LEDs são atualizados de acordo.

Push Button Monitoring Service

Este serviço monitora o pino GPIO conectado ao botão e publica um evento quando o botão é liberado. Este evento é captado pelo Mcp9808TemperatureRepository quando o dispositivo está no modo de redefinição de alerta manual (modo de interrupção MCP9808). Os eventos de depuração também são publicados para que o estado do botão possa ser visualizado no console de depuração.

Serviço de retransmissão de notificação

O serviço monitora o hub SignalR e o agregador de evento interno e retransmite mensagens entre os dois com base em um mapeamento predefinido (usando o EventRelayMap classe). Essencialmente, isso permite que o aplicativo esteja ciente apenas do sistema de eventos interno e ainda seja capaz de enviar e receber mensagens com outras instâncias do aplicativo.

Serviço de console de depuração

Este serviço monitora os aplicativos (por meio de assinatura) para eventos de depuração e os adiciona a uma coleção interna. Ele também implementa DebugConsoleRepository , que permite que a visualização do console de depuração exiba esses eventos no aplicativo por meio do modelo de visualização.

Inicialização do aplicativo

Quando o aplicativo é iniciado, ele inicia a StartPage view primeiro, que invoca automaticamente o StartPageViewModel . Este modelo de visualização deixa tudo pronto e funcionando antes de lançar na visualização principal.

Primeiros passos

Requisitos de circuito

O circuito requer uma placa de ensaio grande e sem solda e, opcionalmente, um sapateiro em forma de T e um cabo de fita (uso a versão vendida pela Vilros). O breadboard pode ser obtido em uma infinidade de lugares (eu comprei em lojas locais e na Amazon). O circuito também usa um botão de pressão tátil momentâneo com quatro pinos. Existem muitos tipos; qualquer um fará. Finalmente, para o sensor de temperatura, estou usando a placa de interrupção do sensor de temperatura I2C de alta precisão MCP9808 da Adafruit.

O circuito pode ser construído sem o sapateiro. Basta seguir o diagrama de breadboard alternativo no final do projeto.

Montagem do circuito

Use este guia para montar o circuito enquanto usa o diagrama localizado próximo à parte inferior da página como um guia (nota:a cor dos fios é opcional e foi selecionada para ajudar a tornar o circuito mais fácil de siga quando for construído).

Abaixo estão algumas fotos do circuito que construí usando o sapateiro.


Requisitos do Microsoft Azure

Se você não tiver uma conta do Azure, precisará criar uma. Você pode obter um crédito de $ 200 ao iniciar sua conta. Vá para azure.com e clique no link CONTA GRATUITA . Se você já tiver uma conta, faça login no portal em portal.azure.com .

NOTA:Este guia não é um guia completo para configurar o Azure. Você pode precisar se familiarizar com o portal, caso nunca o tenha usado antes. Vou percorrer as etapas necessárias para este projeto da melhor maneira possível.

Mantenha-se conectado ao portal do Azure durante todo o processo de configuração. Você precisará consultá-lo várias vezes.

Configuração do Hub de eventos IoT do Azure



Criar um dispositivo

O Hub IoT do Azure requer que cada dispositivo seja identificado e registrado exclusivamente no hub para fins de segurança. Um dispositivo pode ser registrado usando o SDK e código do Azure, mas para este projeto usaremos o Device Explorer disponível no SDK do Azure.




Configuração do Banco de Dados SQL do Azure

Os dados de telemetria serão armazenados em um Banco de Dados SQL do Azure. Use o portal para criar o banco de dados.




Criar a tabela de banco de dados

A tabela usada será criada manualmente. A implantação do Code First pode ser usada em aplicativos móveis, mas a tabela criada não será compatível com o Stream Analytics.




Criar o plano de serviço do aplicativo

O Plano de Serviço de Aplicativo é necessário para a criação de um Serviço de Aplicativo.



Criar o serviço de aplicativo ( Aplicativo móvel )

O site e o hub SignalR serão executados com um serviço de aplicativo.



Configuração do Stream Analytics do Azure

O trabalho do Stream Analytics monitorará eventos de dados no Hub IoT e os gravará em um banco de dados SQL Server. O trabalho consistirá em uma entrada (o Hub IoT) e uma saída (a Tabela SQL) e uma Consulta que escolhe quais campos usar.





Configuração do software

Usando o link do repositório na parte inferior da página, baixe o código como um arquivo zip ou clone o repositório para o seu computador e abra o projeto no Visual Studio .

Configurar e publicar o aplicativo móvel

O aplicativo da Web (localizado na pasta da Web) precisa ser publicado no Serviço de Aplicativo do Azure.



Insira as credenciais do Hub IoT

Antes de executar o aplicativo, você precisará inserir as credenciais do dispositivo IoT Hub no código.



Insira o URL do aplicativo móvel

O URL do aplicativo móvel também precisa ser inserido no código.




Leia mais detalhes:Telemetria de sensor 2.0.1

Processo de manufatura

  1. O que é calibração do sensor - definição e sua aplicação
  2. Sensor de pulsação - Trabalho e aplicação
  3. O que é um sensor de O2?
  4. Biblioteca Python do sensor de temperatura TMP006 usando Raspberry pi,
  5. Sensor de movimento usando Raspberry Pi
  6. Sensor de umidade do solo Raspberry Pi
  7. Teste o sensor DS18B20
  8. Sensor de temperatura Raspberry Pi
  9. Telemetria do Sensor 2.0.1
  10. Sensor de emoção / EEG