Desarrollo visual en Sofia2 con Raspberry, Node-RED y Dashboards

6

Ya hemos hablado en publicaciones anteriores sobre Node-RED, una herramienta para la edición visual de flujos y motor de ejecución de dichos flujos.

En este post se van a presentar un conjunto de nodos diseñados para interactuar con Sofia2 IoT Platform y se presentará una pequeña demo utilizando dichos nodos desplegados en una Raspberry con un sensor SenseHat.

Empezaremos presentado este conjunto de nodos:

nodos1

Tenemos un nodo de configuración que tiene un alcance global, es decir, su estado se compartirá entre flujos. Este nodo representa una conexión compartida con un sistema remoto, en este caso el nodo de configuración es responsable de crear la conexión (REST o MQTT) y ponerla a disposición de los demás nodos.

En cuanto a los demás nodos son los encargados de realizar las operaciones de inserción, actualización, borrado, consultas y liberación de la conexión.

Los nodos están disponibles en el Github de Sofia2, en el repositorio npm y en la página oficial de Node-RED .

A continuación vamos a desarrollar dos Flujos utilizando la herramienta Node-RED, uno de ellos estará desplegado en una Raspberry Pi y otro en Sofia2 IoT Platform:nodos2.PNG

  • El flujo de la Raspberry Pi será el que desencadene el proceso:nodos3.PNG
    • Un nodo controla los datos de la placa SenseHat que tenemos integrada con nuestra Raspberry Pi, y desencadena el flujo cada segundo con los datos de temperatura, presión y humedad.
    • Un nodo function realiza un procesamiento de los datos para generar una instancia JSON que concuerde con la ontología que está dada de alta en Sofia2.
    • Uno de los nodos anteriormente presentados, se encargará de enviar un mensaje a Sofia2 IoT Platform con los datos obtenido de la SenseHat a la ontología y serán almacenados en la Base de Datos de Tiempo Real, que nos alimentará posteriormente el Dashboard.
  • El flujo en Sofia2 IoT Platform nodo4.PNGTenemos un flujo que consta de dos partes:
    • Por un lado tenemos un nodo que recupera de un servicio de Internet la temperatura de Madrid. Este dato se guarda en el contexto a nivel de flujo.
    • Por otro lado tenemos un nodo escuchando los eventos recibidos desde la Raspberry hacía la ontología en la cual se están insertando los datos obtenidos de la placa SenseHat. En este flujo se va a hacer un cálculo sencillo para obtener la diferencia de temperaturas, además se creará una regla en la cual si dicha diferencia supera un determinado umbral se enviará un tweet. Hay que tener en cuenta que el dato de la variación de temperatura también se almacenará en otra ontlogía en Sofia2, para poder alimentar luego al Dashboard.

Una vez en marcha la demo nos creamos un Dashboard sobre La Plataforma, que represente los datos de temperatura, presion y humedad, recogidos de la placa SenseHat, y además el dato de la variación de temperatura calculado.

nodos5.PNG

Esta Demo está disponible en formato guía en el siguiente enlace:

https://github.com/Sofia2/meetups/tree/master/Taller-IoT-NodeRED

Desarrollo visual en Sofia2 con Raspberry, Node-RED y Dashboards

3 comentarios en “Desarrollo visual en Sofia2 con Raspberry, Node-RED y Dashboards

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s