Archivo de la categoría: IIoT

Demo IoT

En esta demo se va a ver la potencia de IoT con la combinación de varias tecnologías open source. Se usará Arduino y dispositivos compatibles con Arduino, Raspberry Pi, Node-RED y otras tecnologías como Telegram.

Además, esta demo pretende ser interactiva, es decir, que una vez vista esta demostración, cualquiera con las herramientas y código proporcionado y los elementos hardware descritos, podrán interactuar con la plataforma IoT de la demo.

Descripción de la Demo

Esta demo consiste en conectar múltiples dispositivos basados en Arduino de cualquier persona del mundo e interactuar con la plataforma IoT instalada en una Raspberry Pi, así como usar un grupo de Telegram para recibir avisos y alertas.

Para conectar todos los dispositivos basados en Arduino usaremos un broker MQTT público, en nuestro caso será MyQttHub https://myqtthub.com/, pero también podría usarse CloudMQTT https://www.cloudmqtt.com/.

Es imprescindible tener el usuario y contraseña del broker para interactuar, si no las tienes puedes pedirlas en aprendiendoarduino@gmail.com

Para saber más de MQTT puedes ver: https://aprendiendoarduino.wordpress.com/2018/11/19/mqtt/

Esta es la estructura que vamos a usar:

Cada dispositivo Arduino publicará en el broker MQTT un dato en un topic y en función del topic, la plataforma IoT basada en Node-Red y ejecutándose en una Raspberry Pi, realizará una serie de acciones.

Además usaremos el grupo de telegram https://t.me/aprendiendoarduinocursoarduino para la recepción de alertas e interactuar con un bot en los dispositivos conectados. Únete al grupo de telegram para interactuar.

Cada dispositivo basado en Arduino conectado a Internet (p.e. basado en ESP8266) se conecta al broker MQTT público mandando o recibiendo datos y esos datos son recibidos en la plataforma IoT basada en Node-RED, instalada en una Raspberry Pi en la sede central.

El dispositivo puede publicar datos en unos topics determinados que se leerán desde Node-RED y se ejecutarán una serie de acciones.

También el dispositivo se puede suscribir a unos topics determinados y leer los datos recibidos, así como ejecutar una serie de acciones en función de los datos recibidos.

Funcionalidades de la Demo

Los dispositivos basados en Arduino podrán hacer las siguientes acciones:

  • Mandar mensajes de alerta. Por ejemplo la apertura de un detector magnético. Cuando se reciba, se mandará un mensaje al grupo de Telegram con el estado del sensor y quien lo manda y se visualizará en https://www.aprendiendoarduino.com/servicios/mensajes/index.html
  • También se mandará una foto al grupo de Telegram cuando se reciba el mensaje de alerta.
  • Mandar mensajes de temperatura y/o humedad. Estos datos se almacenarán en una BBDD y se visualizarán en el Dashboard de Node Red y en https://www.aprendiendoarduino.com/servicios/datos/graficas.html
  • También se puede configurar una alerta para enviar a Telegram y al panel de mensajes, en caso que se supere una temperatura o humedad determinada.
  • Recibir mensaje de encendido o apagado del led integrado de Arduino

Para visualizar e interactuar se dispone de:

  • Grupo de Telegram
  • Dashboard de Node-RED, que solo se visualiza en local donde esté instalado
  • Gráficas
  • Alertas

Estructura de topics

Para poder interactuar con la plataforma los mensajes se deben mandar con una estructura de topic concreta:

  • demo/temperatura/Z – envía un dato numérico de temperatura
  • demo/humedad/Z – envía un dato numérico de humedad
  • demo/reset/Z – envía un mensaje de reset al reinicarse
  • demo/alerta/xx – envía un texto de alarma
  • demo/led/xx – envía un dato ON/OFF para el estado del LED

Siendo xx un identificador del nodo que puede ser un nombre o un número y siendo Z un número del 2 al 20 para identificar la gráfica donde visualizar los datos en https://www.aprendiendoarduino.com/servicios/datos/graficas.html.

Elementos de Hardware Usado

Hardware Nodos Remotos

Hardware Nodo Central

Raspberry Pi 3 Model B o superior:  https://www.raspberrypi.org/products/raspberry-pi-3-model-b/. Esta Raspberry Pi tiene instalado Node-RED donde se ejecutará la plataforma y la programación IoT.

Para la fotos una Raspberry Pi conectada a Internet con cámara. Por ejemplo, unas Raspberry Pi Zero W con cámara

Adicionalmente un M5stack para visualizar datos en la pantalla y controlar dispositivos con los botones.

Código Usado

Todo el código usado en la demo está disponible en el repositorio: https://github.com/jecrespo/demo-iot

Interactúa con la Plataforma

Como ejercicio, puedes interactuar con la plataforma y ser parte de la demos

Para la interacción con la demo necesitarás:

Para poder interactuar con la plataforma los mensajes se deben mandar con una estructura de topic concreta:

  • demo/temperatura/Z – envía un dato numérico de temperatura
  • demo/humedad/Z – envía un dato numérico de humedad
  • demo/reset/Z – envía un mensaje de reset al reinicarse
  • demo/alerta/xx – envía un texto de alarma
  • demo/led/xx – envía un dato ON/OFF para el estado del LED

Siendo xx un identificador del nodo que puede ser un nombre o un número y siendo Z un número del 2 al 20.

Los mensajes de alarma se publicarán en el grupo de Telegram https://t.me/aprendiendoarduinocursoarduino

Node-Red y Edge Computing

El Edge Computing permite que los datos producidos por los dispositivos de la internet de las cosas se procesen más cerca de donde se crearon en lugar de enviarlos a través de largas recorridos para que lleguen a centros de datos y nubes de computación.

Eso tiene una ventaja fundamental, ya que permite a las organizaciones analizar los datos importantes casi en tiempo real, algo que es una necesidad patente en muchas industrias tales como la fabricación, la salud, las telecomunicaciones o la industria financiera.

Wikipedia: https://en.wikipedia.org/wiki/Edge_computing

Hay otro término muy relacionado con Edge Computing que está usándose cada vez más en este ámbito, y es el de la llamada Fog Computing. Esta plataforma permite extender la nube para que esté más cerca de las cosas que producen y se accionan mediante datos de dispositivos IoT. Cualquier dispositivo con conectividad de red, capacidad de computación y almacenamiento puede ser un nodo de esa “niebla”.

Esta filosofía podría decirse que permite que los grandes centros de datos de la nube “deleguen” parte de sus responsabilidades a dispositivos Edge Computing, y lo hagan a través de esa Fog Computing que define requisitos o necesidades en ese extremo de todo este ecosistema que como decimos tiene aplicaciones industriales claras.

El Edge Computing se refiere de forma específica a cómo los procesos computacionales se realizan en los “dispositivos edge”, los dispositivos IoT con capacidad de análisis. A diferencia de ese concepto, la Fog Computing se refiere a las conexiones de red entre los dispositivos edge y la nube.

Wikipedia: https://en.wikipedia.org/wiki/Fog_computing

Más información: https://www.xataka.com/internet-of-things/edge-computing-que-es-y-por-que-hay-gente-que-piensa-que-es-el-futuro

Low-code programming for event-driven applications“: Así es cómo Node-RED se autodescribe en su página web https://nodered.org, y no creo que exista mejor forma de definir esta versátil y poderosa herramienta en base la experiencia de uso en diferentes áreas de aplicación: dispositivos “edge computing” en proyectos de IoT, aceleración de escenarios de Integración y tratamiento de eventos de negocio (‘Business Events’), o la automatización de la captura, estructuración y refinamiento de datos en sus fuentes de origen en proyectos de Big-Data, por mencionar solo algunos.

Node-RED es uno de las componentes en una arquitectura de edge computing. Como herramienta visual, facilita extraordinariamente la captura de eventos del mundo real, permite agregar cierto grado de inteligencia en nodos de tratamiento/transformación de datos y utilizar nodos especializados para integrar eventos con todo tipo de sistemas de mensajería, como por ejemplo MQTT, AMQP o Apache Kafka. También es posible en plataformas sociales como Twitter o Facebook y sistemas de persistencia de datos como Bases de Datos Relacionales y NoSQL, como MongoDB y Redis. Todo ello se lleva a cabo con la finalidad de crear aplicaciones que puedan reaccionar de forma ágil y precisa ante el  complejo mundo existente a su alrededor.

Más información: https://www.techedgegroup.com/es/blog/fundamenos-node-red

IIoT y Node-RED

Industrial Internet of Things (IIoT) es el uso de las tecnologías de Internet of Things (IoT) en la fabricación. IoT es una red de ordenadores, dispositivos y objetos inteligentes que recopilan y comparten enormes cantidades de datos. Los datos recopilados se envían a un servicio basado en la nube en el que se comparten con los usuarios de manera muy útil.

IIoT no sólo funciona en el nivel de la máquina o el proceso, sino también del propio dispositivo, para que esté perfectamente conectado a los sistemas empresariales y a los niveles de datos de Internet. Es un modelo de aplicación paralelo, que conecta la tecnología de edge computing con la de cloud computing: recopila datos de dispositivos periféricos habilitados mediante agentes conectados a dispositivos de campo, y mejora el rendimiento de las operaciones y los equipos con aplicaciones en la nube.

IIoT ejecuta análisis en los agentes, preferiblemente el propio dispositivo de campo, o un dispositivo periférico conectado a los dispositivos de campo, con interconexión con la aplicación de automatización. Los análisis se generan y se despliegan a lo largo del tiempo sin necesidad de cambiar ni incluso de apagar el sistema de control existente.

Node-RED aprovecha la convergencia de TI/TO. Es la nueva tecnología de software para conectar las “cosas” desde el nivel de campo al de TI de Internet y las aplicaciones en la nube sin necesidad de modificar sistemas existentes. Es la vía rápida a IIoT. Node-RED es una tecnología ligera, de código abierto y fácil de usar. Con Node-RED se utiliza una red Ethernet TCP/IP transparente existente.

Node-RED consta de una herramienta de edición y un motor para crear y ejecutar fácilmente las conexiones entre las aplicaciones de IIoT. Cualquier “cosa” se puede conectar con Node-RED a través de IIoT, incluidos todos los dispositivos de automatización con capacidades de procesamiento y las conexiones Ethernet TCP/ IP. Hasta los dispositivos de campo más pequeños sin estas capacidades se pueden conectar con Node-RED gracias a dispositivos periféricos intermediarios que recopilan datos.