Archivo de la etiqueta: IoT

Presentación Curso Fundamentos IoT

Título: “Fundamentos IoT Open Source para Aplicaciones Industriales”

Curso: http://cefire.edu.gva.es/sfp/index.php?seccion=edicion&usuario=formacion&id=9323689

El curso on-line “Fundamentos IoT Open Source para Aplicaciones Industriales” ha sido diseñado para conocer los fundamentos de IoT en aplicaciones industriales para el CEFIRE http://cefire.edu.gva.es/, centro de formación, innovación y recursos para el profesorado, enfocado en dar a conocer las nuevas tecnología que vienen a la industria 4.0 al profesorado de formación profesional de los ciclos formativos de de grado medio y grado superior de cualquiera de las familias profesionales relacionadas con la industria.

Algunas ramas profesionales en las que tendría aplicación este curso son:

  • PROFESORES TÉCNICOS DE FORMACIÓN PROFESIONAL (ELECTRICIDAD Y ELECTRÓNICA)
  • PROFESORES TÉCNICOS DE FORMACIÓN PROFESIONAL (INFORMÁTICA Y COMUNICACIONES)
  • PROFESORES DEL ÁREA DE INFORMÁTICA (ENSEÑANZA SECUNDARIA)
  • TÉCNICOS SUPERIORES EN INSTALACIÓN, MANTENIMIENTO Y REPARACIÓN DE EQUIPOS INFORMÁTICOS
  • TÉCNICOS EN ELECTRÓNICA DE COMUNICACIONES
  • TÉCNICOS DE MANTENIMIENTO ELECTRÓNICO
  • TÉCNICOS EN ELECTRÓNICA DE EQUIPOS INFORMÁTICOS
  • TÉCNICOS EN ELECTRÓNICA DIGITAL
  • TÉCNICOS EN ELECTRÓNICA INDUSTRIAL
  • TÉCNICOS EN ELECTRÓNICA, EN GENERAL
  • JEFES DE EQUIPO DE MONTADORES DE MAQUINARIA MECÁNICA, ELÉCTRICA Y/O ELECTRÓNICA
  • TÉCNICOS EN OPERACIONES DE SISTEMAS INFORMÁTICOS
  • TÉCNICOS EN SISTEMAS MICROINFORMÁTICOS
  • PROGRAMADORES DE APLICACIONES INFORMÁTICAS
  • ELECTRICISTAS Y/O ELECTRÓNICOS DE AUTOMOCIÓN, EN GENERAL
  • ELECTRÓNICOS DE MANTENIMIENTO Y REPARACIÓN DE INSTALACIONES DE REFRIGERACIÓN Y CLIMATIZACIÓN
  • ELECTRÓNICOS DE MANTENIMIENTO Y REPARACIÓN INDUSTRIAL
  • ELECTRÓNICOS-AJUSTADORES DE INSTALACIONES Y EQUIPOS INDUSTRIALES
  • INSTALADORES DE EQUIPOS Y SISTEMAS ELECTRÓNICOS
  • INSTALADORES ELECTRÓNICOS DE MICROSISTEMAS
  • ELECTRÓNICOS-AJUSTADORES DE APARATOS MÉDICOS
  • ELECTRÓNICOS-AJUSTADORES DE EQUIPOS DE TELECOMUNICACIÓN
  • MONTADORES DE APARATOS ELECTRÓNICOS, EN GENERAL
  • MONTADORES DE DISPOSITIVOS Y CUADROS ELECTRÓNICOS
  • MONTADORES DE ELEMENTOS ELÉCTRICOS Y/O ELECTRÓNICOS DE VEHÍCULOS, EN GENERAL
  • MONTADORES DE EQUIPOS MICROELECTRÓNICOS, EN GENERAL
  • MONTADORES ELECTRÓNICOS DE EQUIPOS INFORMÁTICOS

Motivación

Dentro del itinerario de formación para IoT/Industria 4.0, este curso es una introducción práctica para conocer qué es el IoT/Industria 4.0/digitalización. Se tratarán muchos temas y tecnologías de forma práctica sin profundizar en ellas, para que luego quien esté interesado pueda profundizar en ellas y puedan aparecer nuevos cursos de especialización que sirvan para el itinerario de formación.

En este curso voy a hablar de soluciones libres/open source para que cualquiera pueda hacer una solución con un coste mínimo.

Gracias a las herramientas libres/Open Source es posible democratizar el IoT y la industria 4.0. Antes se necesitaba muchísimo dinero no solo en HW y licencias de SW, sino en consultores que hacen un diseño a medida y realizan la integración de los sistemas, ahora no solo el SW libre y el HW libre y barato, sino que la comunidad da soporte a las dudas, hace documentación y tutoriales, así como librerías para facilitar el trabajo.

Muchas empresas no dan el salto de digitalización porque la inversión inicial puede ser muy alta al necesitar contratar a una empresa externa o herramientas profesionales, pero quién mejor que el personal de la propia empresa que es quien mejor conoce los procesos internos, gracias a la tecnología abiertas, es posible con una pequeña inversión económica y una formación centrada en la digitalización de los procesos.

http://fca-consulting.es/wp-content/uploads/2018/02/industria-4.0.1.jpg 

Con las herramientas mostradas en este curso, el objetivo es capacitar en las nuevas tecnologías de la Industria 4.0 que más se está aplicando en empresas, se aplicarán en el futuro y por tanto uno de los perfiles más demandado en la búsqueda del talento 4.0 como es el Internet de las cosas (IoT). Se hará mediante la sensibilización y capacitación de programación IoT usando Herramientas Libres (Open Source), que permite de manera sencilla y sin mucha especialización iniciarse en la programación aplicada a la IoT, permitiendo el reciclaje y reconversión de perfiles profesionales hacia un perfil muy demandado en los futuros entornos industriales.

Propuesta Formativa

Este curso está diseñado para que cualquier trabajador cualificado de una empresa pueda hacer una prueba de concepto de IoT aplicado al sector en que trabaje, usando tecnologías libres y pueda ver resultados rápidos y con una inversión económica mínima.

No se trata de un curso de Arduino, Raspberry Pi, etc… sino un curso práctico de puesta en marcha de un ecosistema de IoT donde usaremos esas tecnologías de hardware libres y muchas otras herramientas de software libre y aplicaciones cloud.

Este curso también pretende ser la base para que los alumnos detecten las necesidades de formación que demandan para aplicar en sus sectores como: Docker, comunicaciones inalámbricas, electrónica, APIs, aprendizaje automático, Node-RED, etc…

En resumen, quiero plasmar en este curso mi experiencia de uso de IoT en un entorno profesional, especialmente en el inicio donde partiendo de varias pruebas de concepto nos dimos cuenta del valor que podemos aportar con la digitalización de procesos en la empresa con una pequeña inversión económica.

  • Raspberry Pi es un ordenador de placa reducida, ordenador de placa única u ordenador de placa simple (SBC) de bajo costo desarrollado en el Reino Unido por la Raspberry Pi Foundation. Se ha convertido en un hardware muy popular debido a su bajo coste y gran potencia ampliamente utilizado en proyectos IoT e Industria conectada.
  • Node-RED es una herramienta de programación que se utiliza para conectar dispositivos de hardware, APIs y servicios de internet. Adecuado para los equipos dedicados al Internet de las cosas Industrial( IIoT) y personal dedicado al diseño y prueba de soluciones para la comunicación de equipos de planta con aplicaciones de IT. Dado que la mayoría de dispositivos IoT para industria 4.0 posibilitan realizar un programa de control con la herramienta de Node-Red, el dominio de dicha herramienta permitiría al equipo IIoT explorar y ampliar las soluciones que ofrece a la empresa que lo use.

Objetivo

El objetivo de este curso es conocer algunas de las tecnologías necesarias para el desarrollar soluciones IoT/Industria 4.0 y valiéndose para ello de herramientas, tecnologías, protocolos y software libres/open source que hay a nuestra disposición, de forma que cualquier empresa por pequeña que sea pueda hacer una prueba de concepto de IoT/Industria 4.0 con una inversión mínima.

Con los conocimientos adquiridos, los alumnos conocerán las tecnologías necesarias para hacer una solución IoT y profundizar posteriormente en aquellas que más necesiten y puedan desarrollar sus propias soluciones IoT/Industria 4.0.

Al finalizar el curso el alumno será capaz de desarrollar una solución IoT/Industria 4.0 sencilla que puede implantarse como prueba piloto en cualquier empresa que desee digitalizar algún proceso.

Otros objetivos:

  • Adquirir conocimientos en cuanto manejo, montaje y parametrización de redes de comunicación industriales.
  • Adquirir recursos didácticos.

Requisitos

Para la realización de este curso es necesario tener conocimientos básicos o experiencia en algunas de estas áreas: programación, redes TCP/IP, redes inalámbricas, protocolos de comunicación, bases de datos, uso de sistemas linux, microcontroladores, autómatas, electrónica, uso de sensores, actuadores, motores, etc… 

Es recomendable un conocimiento medio de Inglés puesto que gran parte de la documentación está en Inglés.

Metodología Curso On-Line

El curso on-line consiste en 20 horas de formación en directo, repartidas en 10 sesiones de 2 horas. El curso se realizará entre el 3 de febrero y el 8 de marzo de 2020 en horario de 17:30 a 19:30.

En algunas de las sesiones, se propondrá un reto o ejercicio para realizar durante los días siguientes. Habrá disponibles sesiones de tutoría para ayuda, en grupos reducidos, sobre las dudas relativas a los retos o ejercicios propuestos.

Al final del curso se propondrá un pequeño proyecto por parte de los alumnos de trabajo aproximado 4h. Se hará una sesión final on-line de 1 hora para presentar los proyectos y se hará una tutoría antes de la presentación del proyecto para resolver las dudas que surjan en la realización del proyecto.

La plataforma en vídeo usada será https://meet.jit.si/ y se grabarán todas las sesiones, tanto las de formación como las de tutorías para las prácticas.

Los recursos utilizados para la realización de este curso son:

Además están disponibles otros recursos para ampliar información:

Es posible interactuar en el curso mediante:

Para realizar las prácticas de este curso se usará el material que veremos a fondo en un apartado posterior.

Toda la documentación será on-line con el objetivo de mantenerla actualizada y no con un documento físico que se queda obsoleto rápidamente. Después de finalizar el curso toda la documentación on-line seguirá estando disponible de forma pública.

Toda la documentación está liberada con licencia Creative Commons.

Reconocimiento – NoComercial – CompartirIgual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Aprendiendo Arduino by Enrique Crespo is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

Organización del curso

FechaTemarioHoras On-line
(live)
Horas de Trabajo de Alumnos Tutorizadas
X 03/02/2117:30-19:30Fundamentos IoT2h0
L 08/02/2117:30-19:30Hardware IoT (1/3)2h2h – Ejercicio 1: Instalación y Configuración Raspbian
X 10/02/2117:30-19:30Hardware IoT (2/3)2h
L 15/02/2117:30-19:30Hardware IoT (3/3)2h2h – Ejercicio 2: Sensorización con ESP8266
X 17/02/2117:30-19:30Comunicaciones IoT2h0
L 22/02/2117:30-19:30Protocolos IoT (1/2)2h1h – Ejercicio 3: Wifi con ESP8266
X 24/02/2117:30-19:30Protocolos IoT (2/2)
Node-RED (1/3)
1h
1h
0
L 01/03/2117:30-19:30Node-RED (2/3)2h2h – Ejercicio 4: Instalar y configurar Node-RED
X 03/03/2117:30-19:30Node-RED (3/3)2h2h – Ejercicio 5: Node-RED, MQTT y Dashboard
L 08/03/2117:30-19:30Plataformas IoT2h1h – Ejercicio 6: Integración de Datos en Plataforma IoT
5h – Proyecto
TOTAL20h15h

Tecnologías Usadas

  • Arduino/ESP8266/ESP32
  • Raspberry Pi
  • API REST
  • MQTT
  • Node Red
  • LoRa
  • XBee
  • WiFi
  • Ethernet
  • Sigfox
  • Bases de Datos
  • Análisis de Datos
  • Dashboards
  • Smart Metering
  • Grafana
  • Node-RED

Presentaciones

  • Nombre, breve presentación
  • Sector o rama profesional
  • Qué parte te interesa más del curso o tema relacionado con IoT estás más interesado en aprender
  • Proyectos con IoT

Contacto

Para cualquier consulta durante el curso y en cualquier otro momento mediante email: aprendiendoarduino@gmail.com

Twitter @jecrespo: https://twitter.com/jecrespom

Y más información sobre el curso y el autor: https://www.aprendiendoarduino.com/acerca-de/

Presentación del Curso “Node-RED Developer”

Título: “Curso Node-RED Developer. Nivel 1”

Motivación

Node-RED se está convirtiendo en un lenguaje de programación muy popular en IoT/Industria 4.0, que cada vez están adoptando más empresas en sus desarrollo.

Node-RED es una herramienta de programación visual (low-code). Node-Red se ha consolidado como framework open-source para la gestión y transformación de datos en tiempo real en entornos de Industry 4.0, IOT, Marketing digital o sistemas de Inteligencia Artificial entre otros. La sencillez de aprendizaje y uso, que no requiere de conocimientos de programación, su robustez y la necesidad de bajos recursos de cómputo ha permitido que hoy en día se encuentre integrado en prácticamente la mayoría de dispositivos IOT e IIOT del mercado, así como equipos Raspberry, sistemas cloud o equipos locales.

Dentro del itinerario de formación para IoT/Industria 4.0, este curso profundiza de forma práctica en la programación dentro del entorno IoT/Industria 4.0/digitalización. Anteriormente se trataron muchos temas y tecnologías de forma práctica sin profundizar en ellas, para entrar ahora en la programación.

Este curso surge de diversas conversaciones con gente de empresas, alumnos de los cursos de Arduino y especialmente personal del Think TIC en los últimos años donde se ha habla de la necesidad de que las pequeñas y medianas empresas puedan acceder a las ventajas de soluciones IoT o Industria 4.0 que solo pueden acceder las grandes corporaciones.

En anteriores cursos se ha introducido qué es IoT con el uso de tecnologías libres en el Think TIC:

Gracias a la herramientas libres/Open Source es posible democratizar el IoT y la industria 4.0. Antes se necesitaba muchísimo dinero no solo en HW y licencias de SW, sino en consultores que hacen un diseño a medida y realizan la integración de los sistemas, ahora no solo el SW libre y el HW libre y barato, sino que la comunidad da soporte a las dudas, hace documentación y tutoriales, así como librerías para facilitar el trabajo.

Muchas empresas no dan el salto de digitalización porque la inversión inicial puede ser muy alta al necesitar contratar a una empresa externa o herramientas profesionales, pero quién mejor que el personal de la propia empresa que es quien mejor conoce los procesos internos, gracias a la tecnología abiertas, es posible con una pequeña inversión económica y una formación centrada en la digitalización de los procesos.

Objetivo

Node-Red es una herramienta open source de desarrollo/programación basada en flujos. Es una programación visual desarrollada originalmente por IBM para conectar dispositivos de hardware, API y servicios en línea como parte del Internet de las cosas (IoT).

El objetivo de este curso es que el alumno aprenda el uso de Node-RED y la programación visual mediante flujos para su uso en entornos de domótica, IIoT e IoT. El alumno será capaz de instalar, configurar y realizar proyectos de dificultad intermedia usando Node-RED.

Node red es adecuado para profesionales dedicados al Internet de las cosas Industrial (IIoT) y personal dedicado al diseño y prueba de soluciones para la comunicación de equipos de planta con aplicaciones de IT. Dado que la mayoría de dispositivos IoT para industria 4.0 posibilitan realizar un programa de control con la herramienta de Node-Red, el dominio de dicha herramienta permitiría al equipo IIoT explorar y ampliar las soluciones que ofrece a la empresa que lo use.

Al finalizar el curso el alumno será capaz de:

  • Instalar Node-RED en diversas plataformas
  • Conocer el protocolo MQTT
  • Configurar y usar de forma segura Node-RED
  • Usar la programación de flujos de forma eficiente
  • Hacer módulos de funciones en Node-RED
  • Hacer debug de los programas Node-RED
  • Instalar y utilizar nodos
  • Configurar un dashboard
  • Integrar Node-RED con servicios de terceros

Requisitos

Para la realización de este curso es necesario tener conocimientos básicos o experiencia en algunas de estas áreas: programación, redes TCP/IP, redes inalámbricas, protocolos de comunicación, bases de datos, uso de sistemas linux, microcontroladores, autómatas, electrónica, uso de sensores, actuadores, motores, etc… 

También es recomendable nociones básicas de programación, especialmente javascript o Node.js, protocolos IoT (REST y MQTT) y servicios IoT on-line

Es recomendable un conocimiento medio de Inglés puesto que gran parte de la documentación está en Inglés.

Metodología

El curso on-line consiste en 20 horas de formación en directo, repartidas en 10 sesiones de 2 horas en horario de 18:00 a 20:00 entre el 23 de noviembre y el 4 de diciembre.

Al finalizar cada sesión de 2 horas, se propondrá un reto o ejercicio para realizar a lo largo de la duración del curso. Cada día se hará una sesión de tutoría de 1 hora de duración para ayuda, en grupos reducidos, sobre las dudas relativas a los retos o ejercicios propuestos.

La plataforma en vídeo usada será https://meet.jit.si/ y se grabarán todas las sesiones, tanto las de formación como las de tutorías para las prácticas.

Los recursos utilizados para la realización de este curso son:

Además están disponibles otros recursos para ampliar información:

Es posible interactuar en el curso mediante:

Toda la documentación será on-line con el objetivo de mantenerla actualizada y no con un documento físico que se queda obsoleto rápidamente. Después de finalizar el curso toda la documentación on-line seguirá estando disponible de forma pública.

Toda la documentación está liberada con licencia Creative Commons.

Reconocimiento – NoComercial – CompartirIgual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Aprendiendo Arduino by Enrique Crespo is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

Contenido del Curso

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/cursos/node-red-developer-para-iot-nivel-i/ 

Contenido del Curso

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/

  • Presentación del Curso
  • Entorno On-Line de Prácticas
  • Instalación de Node-RED
  • Protocolo MQTT
  • Edge Computing
  • Configurar y securizar Node-RED
  • Node-Red en la Nube
  • Programación Node-RED
  • Nodos Node-RED
  • Dashboard Node-Red
  • Debug Node-RED
  • Funciones en Node-RED
  • Integración con Servicios de Terceros
  • Proyectos con Node-RED

Presentaciones

  • Nombre
  • ¿Has usado Node-RED?
  • ¿Aplicaciones de Node-RED?
  • ¿Hardware con el que interactuar?

Contacto

Para cualquier consulta durante el curso y en cualquier otro momento mediante email: aprendiendoarduino@gmail.com

Twitter @jecrespo: https://twitter.com/jecrespom

Y más información sobre el curso y el autor: http://www.aprendiendoarduino.com/acerca-de/

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

Ejercicios Finales

Veamos unos ejercicios completos con todo lo aprendido durante el curso.

Este ejercicio consiste en el montaje de 15 nodos remotos basados en Wemos D1 mini que gestionaremos con Node-RED y 15 Raspberry Pi con un led y un pulsador cada una y que además ejecutarán Node-RED localmente.

Montaje

Esquema de conexión nodo Remoto Wemos D1 Mini basado en:

Esquema de conexión RAspberry Pi:

  • Pin LED: 12 (GPIO 18) 
  • Pin Pulsador: 16 (GPIO 23) (Usando la resistencia interna de Pulldown)

Preparación

La programación de los nodos remotos basados en ESP8266 se hará mediante Node-RED ejecutado en cada Raspberry Pi, para ello se instalará un firmware que puede obtenerse de: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/firmware-Ejercicio_Final/firmware-Ejercicio_Final.ino.

NOTA: este firmware es para el nodo 14, pero en caso de que el nodo sea otro nº de nodo sustituir estas líneas, siendo X = 1, 2, 3, 4 ,5, 6, ….:

  • const char* publish_10sec = “nodoX/dato10s”;
  • const char* publish_60sec = “nodoX/dato60s”;
  • const char* publish_reset = “nodoX/reset”;
  • const char* subs_led = “nodoX/led”;
  • const char* subs_rele = “nodoX/rele”;
  • if (client.connect(“wemosd1mini187222X”,”usuario_mosquitto”,”password_mosquitto”))

Este firmware publica en un topic cada 10 segundos y en otro cada 60 segundos. Los topics son:

  • nodoX/dato10s
  • nodoX/dato60s

En caso de que el nodo se resete publica en el topic: nodoX/reset

Los nodos estás suscrito a dos topic:

  • nodoX/led – enciende y apaga el led integrado de ESP8266
  • nodoX/rele – enciende y apaga el relé

Para el control del LED y botón de Raspberry Pi, se hará mediante la programación en cada uno de los Node-RED de cada Raspberry Pi.

  • RPiX/led – topic al que se suscribe para indicar si se enciende o apaga
  • RPiX/pulsador – topic al que publica el estado: pulsado (1) o liberado (0)

Testeo del Sistema

Una vez configurado todo el sistema comprobar que cada nodo y Raspberry Pi está publicando los datos y funciona el control al modificar los valores de los topics a los que están suscritos.

Para ello usar un cliente MQTT como MQTT.fx:

  • suscrito a los topics:
    • nodoX/dato10s
    • nodoX/dato60s
    • nodoX/reset
    • RPiX/pulsador
  • publicando a los topics:
    • nodoX/led
    • nodoX/rele
    • RPiX/led

Una vez comprobado que leo los valores que publican los nodos y que puedo modificar el estado de los leds y relé publicando en los topics, pasamos a programar el sistema completo usando Node-RED.

Todo el código de los ejercicios: https://github.com/jecrespo/Curso-Node-RED/tree/master/04-Ejercicio%20Final

Ejercicio 1 – Dashboard

Configura Node-RED para que se vea un dashboard “Home” con tres grupos:

  • Suscripciones: las 3 suscripciones y botón que resete los valores
  • Pulsadores: dos botones para encender led y relé de nodo remoto
  • RPi: un pulsador que maneje el LED de la RPi y un gauge con el estado del pulsador.

Además al pulsar el pulsador encender el led detectando flaco, una pulsación enciende y otra pulsación apaga.

La configuración en Node-RED es:

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_1/Ejercicio_1-1.json

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_1/Ejercicio_1-2.json

Ejercicio 2 – Interacción por Grupos

Crear un nuevo grupo del dashboard Home llamado “Control Relés” con 3 botones que encienda:

  • Botón 1: controla relés 1, 2, 3, 4, 5
  • Botón 2: controla relés 6, 7, 8, 9, 10
  • Botón 3: controla relés 11, 12, 13, 14, 15

Dashboard

Nodos

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_2/Ejercicio_2.json

Ejercicio 3 – Seguridad

Poner un pin para encender los Reles, de forma que si no hay pin no se puede encender desde el dashboard. Simular una cerradura de forma que al poner el pin correcto se abre y luego a los 5 segundos se cierra.

Mostar en el dashboard el estado de la cerradura.

Crear un tab nuevo en el dashboard llamado pin de seguridad

Basarse en el flujo: https://flows.nodered.org/flow/7bcb0b049df4fa3c962294137ebaec19

Hacer el flujo como un subflow.

Dashboard

Flujo

Subflow

Código:

Ejercicio 4 – Email y SMS

Hacer un formulario en el dashboard para mandar un correo electrónico y otro para mandar un SMS usando el servicio de Twilio: https://www.twilio.com/

Dashboard

Flujo

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_4/Ejercicio_4.json

Luego usar esta configuración para enviar un correo y un SMS cuando se pulse el botón de la Raspberry Pi y el relé del nodo remoto 14 esté encendido, viéndolo en un dashboard.

Ejercicio 5 – Imágenes

Coger mediante Node-RED la imagen publicada en http://www.aprendiendoarduino.com/servicios/imagen.jpg y que se actualiza cada 30 segundos en el servidor.

Mostrar la imagen en el dashboard y su información.

Publicar en el topic raspberrypi/image la imagen por MQTT para poder reutilizarla.

Mandar la imagen por email al pulsar un botón.

Dashboard

Flujo

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_5/Ejercicio_5.json

Probar con otros servicios online a coger vídeo o imagen y tratarlo en Node-RED

Ejercicio 6 – Twitter

Hacer un flujo que tuitee algo. Para ello es necesario darse de alta en: https://developer.twitter.com/en/apps

Hacer un flujo que monitorice un hashtag (p.e. #Rioja), lo publique en cloudMQTT y lo guarde en una BBDD MySQL.

Flujo

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_6/Ejercicio_6.json

Ejercicio 7 – Open Weather Map

Usando el node de OpenWeatherMap, hacer un dashboard con la temperatura, humedad y presión donde se actualice el dato en un gauge y se haga una gráfica que muestre los últimos 7 días.

Mandar el dato de la temperatura a los nodos remotos, para ello publicar en el topic “nodoX/temperatura” el dato de temperatura y comprobar que llegan, para ello modificar el firmware para que los nodos remotos estén suscritos y lo muestren por el puerto serie.

Hacer un botón para que mande la predicción de los próximos 5 días al correo electrónico.

Dashboard

Flujo

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_7/Ejercicio_7.json

Ejercicio 8 – Telegram

Hacer un bot de Telegram con Node-RED que mande mensajes a grupos o canales y que responda a determinados comandos.

Para crear un bot de telegram: https://core.telegram.org/bots

Para añadir comandos al bot:

  • /setcommands
  • @aprendiendoarduino_bot

Pasar los comandos:

help – Ayuda
start – Inicio
enciende – Enciende Led
apaga – Apaga led
lee – Muestra datos broker

Y ya tengo los comandos configurados:

  • /help
  • /start
  • /enciende
  • /apaga
  • /lee

Para configurar el bot en Telegram solo hace falta poner el nombre del bot y el token.

Crear un canal o un grupo y hacer un flujo sencillo que al pulsar mande un un mensaje por Telegram a tu usuario y a al grupo o canal.

Ahora queda que desde Node-RED lea los comandos y responda. Al mandar el comando /enciende el LED de la Raspberry Pi al mandar el comando /apaga el LED de la Raspberry Pi. El comando /lee me devuelve el estado del LED.

Una forma de hacer esto es publicando el el topic /raspberrypi/led el valor ON u OFF y ya tengo otro flujo hecho en el ejercicio 1.

Para saber el estado, se puede guardar en una variable de flujo que se actualiza con el topic /raspberrypi/led de forma que no solo cuando modifico desde el bot sino desde otros lugares.

Flujo

Código: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_8/Ejercicio_8.json

Saber más Curso Raspberry Pi y Node-RED

Curso “Introducción a Raspberry Pi y Node-RED para uso en la Industria Conectada“: https://www.aprendiendoarduino.com/cursos/introduccion-a-raspberry-pi-y-node-red-para-uso-en-la-industria-conectada/

blog-image

Día 1: “Presentación del Curso”

Raspberry Pi es un ordenador de placa reducida, ordenador de placa única u ordenador de placa simple (SBC) de bajo costo desarrollado en el Reino Unido por la Raspberry Pi Foundation. Se ha convertido en un hardware muy popular debido a su bajo coste y gran potencia ampliamente utilizado en proyectos IoT e Industria conectada.

Node-RED es una herramienta de programación que se utiliza para conectar dispositivos de hardware, APIs y servicios de internet. Adecuado para los equipos dedicados al Internet de las cosas Industrial( IIoT) y personal dedicado al diseño y prueba de soluciones para la comunicación de equipos de planta con aplicaciones de IT. Dado que la mayoría de dispositivos IoT para industria 4.0 posibilitan realizar un programa de control con la herramienta de Node-Red, el dominio de dicha herramienta permitiría al equipo IIoT explorar y ampliar las soluciones que ofrece a la empresa que lo use.

Día 2: “Raspbian y Linux”

Noticias Industria Conectada: https://sie.fer.es/esp/Servicios/Comunicacion/Sala_Prensa/Archivo_fotografico/Primera_plataforma_integrada_datos_desarrollada_JIG_Digital_junto_5_empresas_vitivinicolas/webDoc_28268.htm

Raspberry Pi con SSD: https://www.youtube.com/watch?v=gp6XW-fGVjo&t=11s

Encuesta Node-RED 2019: https://nodered.org/about/community/survey/2019/

PLCs con node-red:

Configurar remote.it en Raspberry Pi: sudo connectd_installer

Día 3: “Python”

Hoja de préstamo de material

Raspberry Pi como punto de acceso: https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

Wibeee:

Arquitectura IoT: https://aprendiendoarduino.wordpress.com/2018/11/11/arquitecturas-iot/

Sistema de sonido en múltiples habitaciones con Raspberry Pi: https://www.balena.io/blog/diy-raspberry-pi-multi-room-audio-system

Día 4: “Raspberry Pi GPIO”

Fallo script aemet. Aumento de la seguridad por defecto en openssl version 1.1.1:

Datos de consumo eléctrico Iberdrola:

APIs i-de:

Open Weather Map:

Fiware:

FogFlow Generic Enabler es un marco de trabajo de ejecución distribuido para dar soporte a las aplicaciones dinámicas flujos de procesamiento sobre nubes y edges. https://www.nec.com/en/global/techrep/journal/g18/n01/180110.htm

Wirecloud Generic Enabler ofrece una potente plataforma de mashup web que facilita el desarrollo de dashboards operacionales que son altamente personalizables por los usuarios finales. https://wirecloud.readthedocs.io/en/stable/

Perseo Generic Enabler introduce el Procesamiento de Eventos Complejos (CEP) definido mediante una sistema basado en reglas, que le permite disparar eventos que envían peticiones HTTP, correos electrónicos, tweets, SMS, mensajes, etc.

Día 5: “MQTT”

Raspberry Pi Imager: https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/

Utilidad para configurar una Raspberry Pi: https://www.pibakery.org/

Ayuda en python: help() y dir()

Ejecutar un programa en el inicio en Raspberry Pi: https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/

Librería para DHT11: https://pypi.org/project/Adafruit-DHT/

Alternativas a Node-RED:

  • Crosser: https://crosser.io/
  • Splunk es un software para buscar,monitorizar y analizar macrodatos generados por máquinas de aplicaciones, sistemas e infraestructura IT a través de una interfaz web. Splunk captura, indexa y correlaciona en tiempo real, almacenando todo en un repositorio donde busca para generar gráficos, alertas y paneles fácilmente definibles por el usuario. https://www.splunk.com/es_es#
  • https://n8n.io/ n8n is a free Node-based source-available Workflow Automation Tool. It can be self-hosted, easily extended, and so also used with internal tools.
  • https://www.iobroker.net/ ioBroker is an integration platform for the Internet of Things, focused on Smart home, Building Automation, Smart Metering, Ambient Assisted Living, Process Automation…
  • https://logitek.es/opc_router/ The OPC Router is one of the leading data hubs and OPC gateways in the Industry 4.0. As an OPC UA client the OPC Router connects various systems
  • https://sitewhere.io/en/ SiteWhere es una plataforma de habilitación de aplicaciones de código abierto de fuerza industrial para Internet de las cosas (IoT). Proporciona una infraestructura basada en microservicios para múltiples inquilinos que incluye las características clave requeridas para construir e implementar aplicaciones de IoT.
  • https://thingsboard.io/ ThingsBoard Open-source IoT Platform Device management, data collection, processing and visualization for your IoT solution.

Día 6: “Programación Node-RED”

MQTT Clean Session: http://www.steves-internet-guide.com/mqtt-clean-sessions-example/

MQTT broker escalable: https://vernemq.com/

Arduino Day La Rioja 2020:

M5Stick:

Día 7: “Debug Node-RED”

Entender QoS y Persistencia en MQTT

Configuración mosquitto: https://mosquitto.org/man/mosquitto-conf-5.html

Topic restriction: http://www.steves-internet-guide.com/topic-restriction-mosquitto-configuration/

ACL en mosquitto con auth plugin: https://gist.github.com/TheAshwanik/7ed2a3032ca16841bcaa

Brokers gratuitos en la nube:

sudo -i: https://unix.stackexchange.com/questions/309986/how-to-use-sudo-with-the-i-option

Demo M5stick: https://github.com/jecrespo/Curso-Node-RED/tree/master/demo-m5stick

Demo Camara mqtt: https://github.com/jecrespo/Curso-Node-RED/tree/master/demo-camara-mqtt

Nodo Image Output: https://flows.nodered.org/node/node-red-contrib-image-output

Node-RED y cámara Raspberry Pi: https://randomnerdtutorials.com/node-red-with-raspberry-pi-camera-take-photos/

Día 8: “Ejemplos Node-RED”

Aquí no acaba el curso: https://aprendiendoarduino.wordpress.com/2017/06/26/y-aqui-no-acaba-el-curso-2/

MQTT V5.0:

Node-RED Gratuitos en la nube:

Curso Node-RED Developer (Próximamente)

Puntos última sesión: