Ejercicio 01
Mostrar en el dashboard en un mismo grupo 3 widgets text donde cada segundo actualice el timestamp (epoch time), la fecha usando el nodo node-red-contrib-date y el día y hora en formato, usando el nodo moment para transformarlo.
Código: https://github.com/aprendiendonodered/ejercicio01
Vídeo: https://youtu.be/wS0E1j1q7sM
Ejercicio 02
Leer el dato de la temperatura publicado en MQTT y hacer que cuando la temperatura esté fuera de un rango entre 18 y 22 grados, ponga el estado de confort en un elemento del dashboard y mande un email.
Código: https://github.com/aprendiendonodered/ejercicio02
Vídeos:
Imágenes:
Ejercicio 03
Hacer un dashboard para ver la temperatura de todas las Raspberry Pi publicada en MQTT y sus gráficas. Usar MQTT Explorer para explorar qué datos están publicados.
Opcionalmente hacer varias tabs/pestañas para mostrar: temperaturas, CPU y memoria agrupadas en cada pestaña.
Código: https://github.com/aprendiendonodered/ejercicio04
Vídeos:
- Vídeo 1: https://youtu.be/rSHr_jPOGUQ
- Vídeo 2: https://youtu.be/eL8glnAgQG8
- Vídeo 3: https://youtu.be/7ikjeDu4J48
Flujo:
Dashboard Final:
Ejercicio 04
Sobre el Ejercicio02, añadir de forma dinámica los umbrales máximos y mínimos de alerta mediante dos sliders en el dashboard.
También hacer que los valores de los colores del gauge cambien en función del valor de MAX y MIN introducido por los sliders
Opcionalmente mostrar los mensajes de alerta y los iconos:
- Todo Correcto: <i class=”fa fa-lightbulb-o fa-2x nr-dashboard-ok”></i>
- Temperatura Alta: <i class=”fa fa-warning fa-2x nr-dashboard-warning”></i>
- Temperatura Baja: <i class=”fa fa-exclamation-circle fa-2x nr-dashboard-error”></i>
Para cambiar la configuración de los widgets de dashboard se usa mediante msg.ui_control como se indica aquí: https://github.com/node-red/node-red-dashboard/blob/master/config-fields.md
En este caso uso un nodo change donde borro payload y pongo las propiedades msg.ui_control.seg1 y msg.ui_control.seg2 a los valores almacenados en las variables de contexto.
Por último no dejar que el valor MIN sea mayor que MAX, ni que MAX sea menor que min en el dashboard, para ello controlar el valor de MIN y MAX al cambiar con un nodo switch y tomar la decisión a hacer.
Código: https://github.com/aprendiendonodered/ejercicio06.git
Vídeos:
Ejercicio 05
Hacer un dashboard para controlar los wemos D1 Mini con el firmware instalado en el curso: https://aprendiendoarduino.wordpress.com/2021/02/20/mqtt-y-esp8266/
El Dashboard tendrá:
- Un gauge y una gráfica indicando la temperatura de la sonda DS18B20
- Un pulsador para encender y apagar el led del Wemos D1 Mini
- Un pulsador para encender y apagar el relé
- Un Input text o un formulario para mandar mensajes a la pantalla oled
- Un slider para encender los 8 niveles de la matriz led.
Código: https://github.com/aprendiendonodered/ejercicio11
Vídeo Youtube:
- https://youtu.be/sr21-n28IoE
- https://youtu.be/SZLOqLDJll0
- https://youtu.be/2soODICQiSg
- https://youtu.be/v9gXuKG63dw
Flujo:
Dashboard:
Ejercicio 6 – 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.
Mostrar en el dashboard el estado de la cerradura.
Crear un flujo nuevo en el dashboard llamado pin de seguridad
Basarse en el flujo:
- https://flows.nodered.org/flow/7bcb0b049df4fa3c962294137ebaec19
- https://gist.github.com/robertsLando/7bcb0b049df4fa3c962294137ebaec19
Hacer el flujo como un subflow.
Dashboard
Flujo
Subflow
Código:
- flow: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_3/Ejercicio_3.json
- subflow: https://github.com/jecrespo/Curso-Node-RED/blob/master/04-Ejercicio%20Final/Ejercicio_3/Ejercicio_3-subflow.json
Ejercicio 7 – 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
Ejercicio 8 – Mapa de Terremotos
Basándose en este flow: https://nodered.org/docs/tutorials/second-flow, hacer un mapa del mundo mostrando los terremotos actuales.
Usar el nodo worldmap: https://flows.nodered.org/node/node-red-contrib-web-worldmap
Repositorio: https://github.com/aprendiendonodered/EJERCICIO27_Mapa_Terremotos.git
Ejercicio 9 – OwnTracks
Instalar la aplicación owntracks en un móvil: https://owntracks.org/
Configurar un broker MQTT público y que comience a transmitir datos:
- Host: aprendiendonodered.com
- Port: 8883
- username: owntracks
- Topic: owntracks/#
Programar un dashboard de worldmap y mostrar la posición y el track de los datos que mandamos por MQTT desde la app owntracks.
Adicionalmente guardar los datos en una BBDD InfluxDB. Hay un bucket en enriquecrespo.com llamado owntracks para guardar estos datos.
Repositorio: https://github.com/aprendiendonodered/EJERCICIO30_OWN_TRACKS
Ejercicio 10 – Open Weather Map
Usando el nodo 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 por MQTT al topic “cursomqtt/raspberrypixx/temperatura”.
Hacer un botón para que mande la predicción de los próximos 5 días al correo electrónico.
Dashboard
Flujo
Pingback: Ejercicios Node-RED -
Pingback: Saber más: Raspberry Pi y Node-RED para IoT | Aprendiendo Arduino
Pingback: Diario Curso: Raspberry Pi y Node-RED. 2ª ed | Aprendiendo Arduino
Pingback: Diario del Curso IoT, Smart Cities y Node-RED | Aprendiendo Arduino