Paso 6: Flujo de Hardware
En nuestra configuración, el cliente aplicaciones nunca a hablar con la planta directamente, todo fue sobre la nube porque manteniéndolo sobre Wifi sólo derrotas el propósito del 'Yo' en IOT.
Sketch de Arduino
Arduino sketch aplicación contiene la lógica de adquisición de datos de sensores y actuadores de mando. Recibir instrucciones de la aplicación de cliente por el nodo de servidor y luego, se comunicaron sobre a Arduino usando MQTT protocolo.
¿Qué es MQTT?
MQTT está parado para el transporte de telemetría de MQ. Es que una publicación/suscripción, extremadamente simple y ligero protocolo de mensajería, diseñado para dispositivos con restricciones y bajo ancho de banda, redes de alta latencia o poco fiables. Los principios de diseño son minimizar las necesidades de recursos de ancho de banda y el dispositivo de red mientras que también intenta asegurar confiabilidad y cierto grado de fiabilidad de entrega. Estos principios también resultan para el protocolo ideal de los emergente "máquina a máquina" (M2M) o "Internet de las cosas" mundo de los dispositivos conectados y para aplicaciones móviles donde potencia ancho de banda y la batería a una prima.
Servidor NodeJS
Servidor NodeJS se ejecuta en Edison Intel solamente. Servidor está conectado a la nube back-end en tiempo real. Una crucial decisión arquitectónica que tomamos de GreenBit es hacer nuestra arquitectura de Dos niveles en vez de típicas arquitecturas de tres niveles.
Servidor NodeJS tiene tres responsabilidades:
1) en tiempo real de mantener conexión con la nube en la nube - esta conexión se implementa con la Api de nodo de bases avanzadas que básicamente nos da un conjunto de ganchos sobre ciertos parámetros que queremos mantener bajo observación. Los cambios realizados en estos valores se comunican inmediatamente a todos los clientes mirando ese valor.
2) OpenCV para clic fotos- cada vez que una solicitud para una planta selfie viene servidor NodeJS ejecuta nuestro módulo de OpenCV que toma una foto y luego que almacena en sistema de archivos en formato Base64 codificado. Nodo servidor leer ese archivo y luego transmitir en forma codificada para el servidor de imagen.
3) obtener registros en cada un minuto - en un intervalo de un minuto nodo pide Arduino para realizar lecturas y traspasar al nodo sobre MQTT. Estos valores se registran luego en nube.
4) actuadores de invocar - en recibir llamadas de acción de la aplicación como cambiar parámetros o conmutador de valores, tomando fotos etc se comunican al Arduino.