Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Telemetría del sensor 2.0.1

Sensor Telemetry 2.0.1 Conduzca los datos de temperatura a Microsoft Azure IoT Hub y supervise los datos de forma remota desde una aplicación universal de Windows. ¡Remasterizado digitalmente!

Historia

ACTUALIZADO:El proyecto Sensor Telemetry se ha remasterizado digitalmente. Actualizado el 17 de mayo de 2017 y renombrado a Sensor Telemetry 2.0.1

Introducción

Descripción general

En este proyecto, monitorearemos un sensor de temperatura ( MCP9808 ) y envía lecturas de telemetría a Microsoft Azure IoT Hub donde un Stream Analytics el trabajo procesará los mensajes y los escribirá en un Azure SQL Base de datos mesa. Usaremos Aplicaciones móviles para ver el historial de las lecturas del sensor.

La aplicación

El proyecto contiene dos Aplicaciones universales de Windows (en la Plataforma universal de Windows, UWP) que comparten aproximadamente el 99% del código. Uno está dirigido a Raspberry Pi (o ARM) y el otro está dirigido a las plataformas x86 o x64.

La versión de IoT de la aplicación se ejecuta en Raspberry Pi y lee la temperatura del MCP9808. La aplicación envía eventos de telemetría a Azure IoT Hub y SignalR centro. Esta versión también escuchará los comandos de Azure IoT Hub.

La versión del cliente, iniciada en una computadora, escuchará las actualizaciones del sensor desde el concentrador SignalR y las mostrará en la pantalla. Esta versión también enviará comandos a la versión de IoT a través de Azure IoT Hub.

Tecnologías

La aplicación de este proyecto se basa en MVVM (Model-View-ViewModel) y se creó utilizando el Prisma biblioteca y utiliza Prism.Unity para IoC Contenedor (Inversión de Control). Además de estas bibliotecas, la aplicación utiliza el agregador de eventos encontrado en el Prism.Event biblioteca para crear, lo mejor posible, una arquitectura puramente impulsada por eventos. La aplicación utiliza esta biblioteca para permitir que los módulos internos se comuniquen sin dejar de estar acoplados libremente.

La aplicación también usa SignalR en la aplicación móvil de Azure para permitir que varias instancias de la aplicación se comuniquen entre sí. Las lecturas de temperatura se "transmiten" a todos los clientes que se ejecutan de forma remota para que puedan recibir las lecturas del sensor de temperatura y mostrarlas en la vista principal.

Arquitectura

En el corazón de la aplicación se encuentra la biblioteca MCP9808 construida como un proyecto separado que se puede reutilizar en otras aplicaciones. Este proyecto se desarrolla como una biblioteca para UWP que se puede utilizar en cualquier aplicación de Windows 10. Si la biblioteca se usa en un dispositivo que no tiene un I2C bus, la biblioteca no devolverá ningún objeto de dispositivo. Este enfoque se puede utilizar para "detectar" un sensor e ignorar elegantemente la biblioteca cuando no se encuentra un sensor.

En la aplicación cliente para UWP hay varios bloques que componen la aplicación general. Las Vistas son las páginas visibles y cada vista tiene un Modelo de Vista responsable del estado de la Vista. Hay tres repositorios:configuración de aplicaciones ( IApplicationSettingsRepository ), información de depuración ( IDebugConsoleRepository ) y leer y escribir el MCP9808 ( ITemperatureRepository ). Hay dos clases concretas construidas alrededor de ITemperatureRepository; uno envuelve la biblioteca MCP9808 y el otro es un dispositivo nulo que se usa cuando la aplicación no se está ejecutando en la Raspberry Pi.

La clase Mcp9808TemperatureRepository monitorea el MCP9808 usando el servicio de temporizador y publica información de temperatura a través del agregador de eventos interno cada vez que cambia la lectura de temperatura o el estado de alerta. Se envía un nuevo evento solo cuando la lectura actual es diferente de la lectura anterior.

También hay una serie de servicios definidos por IBackgroundService que se ejecutan en segundo plano para diversas actividades.

El siguiente diagrama muestra una vista de alto nivel de la arquitectura y la conectividad entre los distintos bloques y servicios.

Servicio de telemetría

Este servicio supervisa el evento de cambio de temperatura (mediante una suscripción) y envía un mensaje al Centro de eventos de Azure Service Bus cada vez que cambia la temperatura.

Servicio de temporizador

Este servicio simple es un temporizador que publica un evento cada 500 milisegundos y lo utilizan los modelos de vista para mostrar la hora actual en una vista. También lo utiliza Mcp9808TemperatureRepository para leer el sensor una vez por segundo. Los argumentos del evento del temporizador incluyen un contador que se puede utilizar con la función mod para dividir fácilmente el intervalo del temporizador en la longitud deseada. Hay un método llamado IsMyInterval (intervalo de intervalo de tiempo) en el argumento del evento que hace los cálculos por usted. Todo lo que necesita hacer es proporcionar el intervalo como un TimeSpan objeto.

Servicio de supervisión de PIN de alerta

Este servicio monitorea el estado del pin GPIO conectado al pin de alerta en el MCP9808. Cuando se cambia el valor del GPIO, este servicio publica un evento.

Servicio LED

Este servicio es responsable de encender y apagar los LED. Esto se hace monitoreando (mediante suscripción) el evento de cambio de temperatura que también incluye el estado de alerta del MCP9808. Cuando cambia el estado de alerta, los LED se actualizan en consecuencia.

Servicio de monitoreo de botones

Este servicio monitorea el pin GPIO conectado al botón pulsador y publica un evento cuando se suelta el botón. Este evento es recogido por Mcp9808TemperatureRepository cuando el dispositivo está en modo de reinicio de alerta manual (modo de interrupción MCP9808). Los eventos de depuración también se publican para que el estado del botón se pueda ver en la consola de depuración.

Servicio de retransmisión de notificaciones

El servicio monitorea el concentrador de SignalR y el agregador de eventos interno y transmite mensajes entre los dos según un mapeo predefinido (usando EventRelayMap clase). Básicamente, esto permite que la aplicación solo sea consciente del sistema de eventos interno y aún pueda enviar y recibir mensajes con otras instancias de la aplicación.

Servicio de consola de depuración

Este servicio monitorea las aplicaciones (mediante suscripción) para depurar eventos y las agrega a una colección interna. También implementa DebugConsoleRepository , que permite que la vista de la consola de depuración muestre estos eventos en la aplicación a través del modelo de vista.

Inicialización de la aplicación

Cuando se inicia la aplicación, inicia la StartPage ver primero, que invoca automáticamente el StartPageViewModel . Este modelo de vista pone todo en funcionamiento antes de lanzarse a la vista principal.

Introducción

Requisitos del circuito

El circuito requiere una placa grande sin soldadura y, opcionalmente, un zapatero en forma de T y un cable plano (yo uso la versión vendida por Vilros). La placa se puede obtener en una multitud de lugares (la he comprado en tiendas locales y en Amazon). El circuito también utiliza un interruptor de botón táctil momentáneo con cuatro pines. Hay muchos tipos; cualquiera servirá. Finalmente, para el sensor de temperatura, estoy usando la placa de conexión del sensor de temperatura I2C de alta precisión MCP9808 de Adafruit.

El circuito se puede construir sin el zapatero. Simplemente siga el diagrama de tablero alternativo al final del proyecto.

Asamblea de circuito

Use esta guía para ensamblar el circuito mientras usa el diagrama ubicado cerca de la parte inferior de la página como guía (nota:el color de los cables es opcional y ha sido seleccionado para ayudar a que el circuito sea fácil de instalar). seguir cuando se construye).

A continuación se muestran algunas fotos del circuito que construí con el zapatero.


Requisitos de Microsoft Azure

Si no tiene una cuenta de Azure, deberá crear una. Puede obtener un crédito de $ 200 al iniciar su cuenta. Vaya a azure.com y haga clic en el enlace CUENTA GRATIS . Si ya tiene una cuenta, inicie sesión en el portal en portal.azure.com . .

NOTA:Esta guía no es una guía exhaustiva para configurar Azure. Es posible que deba familiarizarse con el portal si nunca lo ha utilizado antes. Seguiré los pasos necesarios para este proyecto lo mejor que pueda.

Inicie sesión en Azure Portal durante todo el proceso de configuración. Deberá consultarlo muchas veces.

Configuración de Azure IoT Event Hub



Crear un dispositivo

Azure IoT Hub requiere que cada dispositivo se identifique y registre de forma única en el concentrador por motivos de seguridad. Un dispositivo se puede registrar usando el SDK de Azure y el código, pero para este proyecto usaremos el Explorador de dispositivos disponible en el SDK de Azure.




Configuración de la base de datos SQL de Azure

Los datos de telemetría se almacenarán en una base de datos SQL de Azure. Utilice el portal para crear la base de datos.




Crear la tabla de base de datos

La tabla utilizada se creará manualmente. La implementación de Code First se puede utilizar en aplicaciones móviles, pero la tabla creada no será compatible con Stream Analytics.




Crear el plan de servicio de la aplicación

El plan de servicio de aplicaciones es necesario para crear un servicio de aplicaciones.

Cree el servicio de aplicaciones ( Aplicación móvil )

El sitio web y el centro de SignalR se ejecutarán con un servicio de aplicaciones.



Configuración de Azure Stream Analytics

El trabajo de Stream Analytics supervisará los eventos de datos en IoT Hub y los escribirá en una base de datos de SQL Server. El trabajo constará de una entrada (IoT Hub) y una salida (la tabla SQL) y una consulta que elige qué campos usar.





Configuración del software

Con el vínculo del repositorio en la parte inferior de la página, descargue el código como un archivo zip o clone el repositorio en su computadora y abra el proyecto en Visual Studio .

Configurar y publicar la aplicación móvil

La aplicación web (ubicada en la carpeta Web) debe publicarse en Azure App Service.



Ingrese las credenciales de IoT Hub

Antes de ejecutar la aplicación, deberá ingresar las credenciales de su dispositivo IoT Hub en el código.



Ingrese la URL de la aplicación móvil

La URL de la aplicación móvil también debe ingresarse en el código.

Leer más detalles:Sensor Telemetry 2.0.1


Proceso de manufactura

  1. ¿Qué es la calibración del sensor? Definición y su aplicación
  2. Sensor de latido:funcionamiento y aplicación
  3. ¿Qué es un sensor de O2?
  4. Biblioteca Python del sensor de temperatura TMP006 con Raspberry pi,
  5. Sensor de movimiento con Raspberry Pi
  6. Sensor de humedad del suelo Raspberry Pi
  7. Prueba del sensor DS18B20
  8. Sensor de temperatura Raspberry Pi
  9. Telemetría del sensor 2.0.1
  10. Sensor de emoción / EEG
  11. UnifiedWater v1