El diario del curso es una herramienta para seguir los puntos vistos en cada sesión del curso, que permite conocer el avance sesión a sesión.
También sirve para documentar los puntos y dudas que surgen en el curso fuera del temario, pero que es importante tenerlo por escrito como: enlaces interesantes, ampliar un tema de interés, tecnologías relacionadas, etc…
Sesión 1 (3 de mayo) – «Presentación Curso»
Capítulos vistos:
- 1.1 – Presentación del Curso
- 1.2 – Material del Curso
- 2.1 – ¿Qué es IoT?
- 2.2 – Ecosistema IoT
- 2.3 – Tecnologías IoT
- 2.4 – Arquitecturas IoT
- Práctica 1: Instalación y configuración Raspberry Pi OS
Sesión 2 (4 de mayo) – «Hardware IoT»
Smart Spots: https://smartcities.hopu.eu/index.html
OPA LWM2M: https://en.wikipedia.org/wiki/OMA_LWM2M
Logroño ciudad Inteligente: https://ciudadinteligente.logrono.es/
Soldar Módulos Wemos D1 Mini:
- Usar espadines hembra en los ESP8266
- Usar espadines macho en los shields: relé, oled y led.
- Usar espadines macho/hembra (los más alargados) en el resto de shields: DHT11, DS18B20, BMP180,
Nodos y Firmware: https://aprendiendoarduino.wordpress.com/2021/12/05/material-curso-node-red/





Capítulos vistos:
- 2.5 – Edge Computing
- 3.4 – Raspberry Pi OS
- 3.5 – Instalación Software Raspberry Pi
- 3.6 – Acceso Remoto Raspberry Pi
- 6.1 – Qué es Node-RED
- Práctica 1: Instalación y configuración Raspberry Pi OS (continuar)
- Práctica 1b: Instalación de Servicios en Raspberry Pi OS
Sesión 3 (9 de mayo) – «Comunicaciones IoT»
Plataforma Smart cities: https://elliotcloud.com/smart-cities-2/
Acceso a los metadatos: https://sacseguridad.com/auto-entrenamiento-y-aprendizaje-de-las-camaras-de-video-bosch-o-camera-trainer/

Bosch Metadata Publisher
Es una herramienta gratuita que permite al desarrollador de aplicaciones utilizar el protocolo MQTT y así poder trabajar en ambientes de comunicación M2M (Machine to Machine) o IoT (Internet of Things), posibilitando el desarrollo de aplicaciones que involucren dispositivos de automatización industrial o de edificios con base en la generación de metadatos por parte de la cámara.
Metadata y eventos de analíticas vía ONVIF
Con la interfaz de conformidad ONVIF disponible en las cámaras Bosch con FW 6.10 y superior se es compatible para recibir eventos de análisis basados en el motor de reglas de IVA en el borde y la secuencia de metadatos en el formato ONVIF. Use esta funcionalidad para desarrollar interfaces de integración con sistemas VMS de terceros, o para desarrollar sus propias aplicaciones de software que toman como base el foro ONVIF.
Capítulos vistos:
- 2.6 – Industria 4.0 (IIoT)
- 3.1 – Dispositivos HW IoT
- 3.2 – Raspberry Pi
- 3.3 – Raspberry Pi en la Industria
- 3.7 – Arduino en IoT
- Práctica 1b: Instalación de Servicios en Raspberry Pi OS (continuar)
- Práctica 2: Sensorización IoT con ESP8266
Sesión 4 (11 de mayo) – «Protocolos IoT»
Actualizada parte de SQLite en Instalación de Servicios en Raspberry Pi OS
Actualizada lista de librerías en Sensorización IoT con ESP8266
Listado completo de firmware de shields: https://github.com/jecrespo/Curso-Node-RED/tree/master/Remote%20Nodes%20Firmware/Wemos%20Shields%20Usage
HW LoRaWAN:
- Conversor Modbus LoRa: https://www.dragino.com/products/lora-lorawan-end-node/item/154-rs485-ln.html
- Sensores ambientales LoRA: https://www.milesight-iot.com/lorawan/sensor/em500-series/
- Gateway LoRa: https://mikrotik.com/product/wap_lr8_kit
- Gateway interior: https://alfaiot.com/tienda/gateway-lorawan-indoor/
- Conexión Lora punto a punto: https://mikrotik.com/product/wireless_wire_cube_pro
- Gateway Monocanal DIY con ESP32: https://github.com/things4u/ESP-1ch-Gateway
- Gateway Multicanal con Raspberry Pi y Balena: https://www.balena.io/blog/deploy-a-basics-station-lora-gateway-with-ttn-and-balena/
- Sensor LoRa: https://www.dragino.com/products/lora/item/128-lsn50.html
- Sensor LoRa Ultrasonidos: https://www.elsys.se/en/elt-ultrasonic/
LoRa Network Server: https://www.chirpstack.io/
Broker MQTT:
- Host: aprendiendonodered.com
- Port: 8883
- username: cursomqtt
- Topic Path: cursomqtt/#
Capítulos vistos:
- 5.1 – Protocolos IoT Capa Aplicación
- 5.3 – Protocolo MQTT
Sesión 5 (16 de mayo) – «MQTT»
Demo LoRa punto a punto: https://www.aprendiendoarduino.com/2018/03/07/demo-lora-con-moteino/
Datos enviados a Broker MQTT
Mosquitto Clients Count. Se quedan las conexiones al hacer un deploy. Probar con netstat -ntp | grep ESTABLISHED.*mosquitto
Configuración mosquitto: https://mosquitto.org/man/mosquitto-conf-5.html
- message_size_limit
- max_queued_messages
- memory_limit
- max_connections
Capítulos vistos:
- 4.1 – Conectividad IoT
- 5.3 – Protocolo MQTT (continuar)
- Práctica 3: Wifi + MQTT con ESP8266
Sesión 6 (18 de mayo) – «Instalación y Configuración Node-RED»
Problema en el cierre de socket en nodos MQTT: https://github.com/node-red/node-red/issues/3593
NodeRed 3.0.0-beta.1: https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124
Instalada beta en https://enriquecrespo.com:18809/
Instalar en Docker Node-RED dev: https://hub.docker.com/r/nodered/node-red-dev/tags
Demo Sigfox: https://www.aprendiendoarduino.com/2018/03/05/demo-mkrfox1200/
HW Sigfox:
Capítulos vistos:
- 5.4 – Instalación y Configuración de Mosquitto
- MQTT broker simple con: https://flows.nodered.org/node/node-red-contrib-aedes
- 6.4 – Versiones de Node-RED
- 6.3 – Instalación Node-RED
- 6.5 – Configuración y Securización de Node-RED
- Práctica 4: Instalar, Configurar y Securizar Node-RED
Sesión 7 (23 de mayo) – «Node-RED»
TTN: The Things Network (TTN) es una iniciativa basada en la comunidad para establecer una red global de IoT. La iniciativa fue lanzada por Wienke Giezeman en 2015 y actualmente cubre más de 20.000 pasarelas LoRaWAN instaladas en más de 150 países. Los voluntarios se encargan de la construcción, el cuidado y el pago de los portales
- Web: https://www.thethingsnetwork.org/
- Versión profesional: https://www.thethingsindustries.com/
- Mapa: https://www.thethingsnetwork.org/map
- Hardware: https://www.thethingsnetwork.org/device-repository/
- TTN mapper: https://ttnmapper.org/heatmap/
- Gateway monocanal: https://github.com/things4u/ESP-1ch-Gateway
- Añadir gateway: https://www.thethingsindustries.com/docs/gateways/adding-gateways/
Recomendado doble pantalla
Plantilla settings.js para Node-RED: https://github.com/jecrespo/configuracion-node-red
Múltiples instancias Node-RED con inicio mediante systemd:
- https://nodered.org/docs/faq/customising-systemd-on-pi
- Copiar el directorio completo .node-red: cp -R .node-red/ .node-red_1
- Modificar en settings.js: uiPort: process.env.PORT || 1881 y userDir: ‘/home/pi/.node-red_1/’
- sudo find / -name nodered.service (buscar donde está el servicio generalmente bajo /usr/lib/systemd/system/nodered.service)
- sudo cp nodered.service nodered2.service
- Añadir la línea: Environment=”NODE_RED_OPTIONS=-s /home/pi/.node-red2/settings.js”
- sudo systemctl enable nodered2.service
- sudo systemctl start nodered2.service
Capítulos vistos:
Sesión 8 (25 de mayo) – «Dashboard Node-RED»
7.1 – Fundamentos Programación Node-RED (Ejercicio final)
OJO: Al importar también importa el nodo de configuración, pero no las contraseñas
Práctica 3: Wifi + MQTT con ESP8266 (poner en funcionamiento nodo DS18B20 + Relé y/o DS18B20 + Oled)
Capítulos vistos:
- 7.4 – Dashboard Node-Red
Sesión 9 (30 de mayo) – «Desarrollo Node-RED I»
Organización de sesión presencial
- Proyector con conector VGA o HDMI
- Wifi con acceso a Internet
- Un puerto ethernet con acceso a Internet
MQTT no publica arrays de datos como mensajes independientes. Ver ejemplo en https://enriquecrespo.com:1880/
Anidar referencias a los mensajes: https://nodered.org/blog/2021/04/08/version-1-3-released#referencing-msg-properties-in-change-switch-nodes. Útil para guardar en una variable de cotexto los últimos datos de MQTT.
Gateway Bluetooth con Raspberry Pi. Nodos BLE:
- https://flows.nodered.org/node/node-red-contrib-ble-sense
- https://flows.nodered.org/node/node-red-contrib-generic-ble
- https://flows.nodered.org/node/node-red-contrib-noble-bluetooth
- https://flows.nodered.org/node/node-red-contrib-ble-scan
OJO BLE scanner de ble sense necesita de mandar un comando si Node-RED no se ejecuta como root. Ver la documentación del nodo
Ejemplo con Xiaomi Mi Flora:
- Xiaomi MiFlora: https://www.banggood.com/es/Global-Version-Xiaomi-4-In-1-Flower-Plant-Light-Temperature-Tester-Garden-Soil-Moisture-Nutrient-Monitor-p-1068369.html
- Nodo: https://flows.nodered.org/node/node-red-contrib-xiaomi-ble
- Integración Node-RED con python: https://flows.nodered.org/flow/b1af1d000ff5bf854afa97f025d33feb
- Mi integración: https://flows.nodered.org/flow/be32cddc6132a7a8d166e02fff43bdb4
Gateway Zigbee:
- Adaptadores soportados: https://www.zigbee2mqtt.io/guide/adapters/#recommended
- Dispositivos soportados: https://www.zigbee2mqtt.io/supported-devices/
- Node-RED: https://flows.nodered.org/node/node-red-contrib-zigbee2mqtt
Capítulos vistos:
- 7.4 – Dashboard Node-Red (Continuar)
- 7.2 – Uso del Editor de Node-RED
- Mostrar en worldmap https://flows.nodered.org/node/node-red-contrib-web-worldmap los terremotos del ejercicio https://nodered.org/docs/tutorials/second-flow.
Solución: https://github.com/aprendiendonodered/EJERCICIO27_Mapa_Terremotos
Versión Mejorada: https://flows.nodered.org/flow/002f4173484dabaf3d6742b8da9642ee - Práctica 5: Desarrollo Node-RED: MQTT y Dashboard
Sesión 10 (1 de junio) – «Desarrollo Node-RED I»
Organización sesión presencial
Instalar paquetes con npm:
- npm install <nombre paquete> en el directorio .node-red
- reiniciar node-red y refrescar navegador para ver el nuevo paquete
- error «../libusb/libusb/os/linux_udev.c:40:10: fatal error: libudev.h: No such file or directory» – instalar sudo apt install libudev-dev
- npm list – paquetes instalados y sus dependencias
- npm list -g –depth=0 – paquetes instalados globalmente
- npm outdated – paquetes desactualizados
- npm install -g –unsafe-perm node-red – instalar node-red
Uso nodo email https://flows.nodered.org/node/node-red-node-email
- Usar una cuenta de gmail, poner 2FA y crear un password de aplicación: https://support.google.com/mail/answer/185833?hl=en
- El acceso menos seguro ya no funciona: https://support.google.com/accounts/answer/6010255?hl=en
Mejora ejemplo worldmap: limpiar capa. Probar https://flows.nodered.org/flow/002f4173484dabaf3d6742b8da9642ee
Nodo gefence y dibujar un polígono: https://flows.nodered.org/node/node-red-node-geofence
- Ejemplo: https://enriquecrespo.com:18802/
Buttons personalizados con nodo template.ui: https://tech.scargill.net/more-node-red-dashboard-success/
- Colección de botones CSS https://uiverse.io/
- Ejemplo en https://enriquecrespo.com:1880/
Nagios MQTT y Node-RED:
- Para Node-RED y mosquitto monitorizar el sistema de que ejecuta (CPU, RAM, Disco, etc… y puertos 1880, 1883 y 8882) o los contenedores docker que lo ejecutan
- Plugin Nagios conectividad MQTT: https://github.com/jpmens/check-mqtt
- Nagios enviar notificaciones MQTT en lugar de emails: http://tinab.blog/how-to-nagios-mqtt-notifications o nag2mqtt: https://snmd.readthedocs.io/projects/nag2mqtt/en/latest/
Capítulos vistos:
- 7.3 – Mensajes Node-RED
- Práctica 5: Desarrollo Node-RED: MQTT y Dashboard (continuar)
- 7.5 – Biblioteca Node-RED
Sesión 11 (9 de junio – presencial)
Cualquier consulta o temas relacionados (p.e. cámaras Bosch) contacto en aprendiendoarduino@gmail.com
Ver plataforma con Node-RED de Smart City
OpenMQTTGateway https://docs.openmqttgateway.com/. Básicamente es un firmware que pones en un dispositivo como Arduino, ESP32, Raspberry Pi, etc… que conecta con redes LoRa, BLE, IR, etc… con una serie de dispositivos compatibles y los publica por MQTT.
Termostato al estilo de Nest con soporte táctil: https://flows.nodered.org/node/node-red-contrib-ui-thermostat
Node-RED y Elastic Search
- https://flows.nodered.org/node/node-red-contrib-elasticsearch-jupalcf
- Basado en https://www.npmjs.com/package/elasticsearch
- Deprecado, usar API.
Capítulos vistos:
- 7.6 – Proyectos con Node-RED
- Práctica 6: Desarrollo Node-RED: BBDD y Tratamiento Datos
- 7.8 – Debug en Node-RED
- 7.10 – Funciones en Node-RED
- Práctica 7: Desarrollo Node-RED: Subflows y Funciones
- Práctica 8: Desarrollo Node-RED: Reconocimiento de Matrículas
- 7.9 – Manejo de Errores en Node-RED
- 7.7 – Contexto y Variables de Entorno en Node-RED
- 7.11 – Nodos de Configuración en Node-RED
- 7.12 – Estructura de los Flujos en Node-RED
- Ejercicio: Dashboard monitorización Raspberry Pi y Wemos
- Más ejercicios: Ejercicios Resueltos del Curso
Otros temas de interés
- JSONata: JSONata para Node-RED
- Fiware: https://flows.nodered.org/node/node-red-contrib-letsfiware-ngsi
- Toma imágenes con Raspberry Pi Zero
Puntos que no haya dado tiempo de ver
- 4.2 – Gateway IoT
- 4.3 – Wifi
- 5.2 – API REST
- 6.2 – Node-RED en la Industria
- 8.1 – Plataformas Cloud Públicas
- 8.2 – Práctica 8: Integración de Datos en Plataforma IoT