Archivo de la etiqueta: Smart Cities

Diario del Curso IoT, Smart Cities y Node-RED

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:

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:

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:

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:

LoRa Network Server: https://www.chirpstack.io/

Broker MQTT:

  • Host: aprendiendonodered.com
  • Port: 8883
  • username: cursomqtt
  • Topic Path: cursomqtt/#

Capítulos vistos:

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:

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:

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

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:

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:

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:

Gateway Zigbee:

Capítulos vistos:

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

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

Buttons personalizados con nodo template.ui: https://tech.scargill.net/more-node-red-dashboard-success/

Nagios MQTT y Node-RED:

Capítulos vistos:

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

Capítulos vistos:

Otros temas de interés

Puntos que no haya dado tiempo de ver

Material Curso Smart Cities

Para el curso on-line “Fundamentos IoT y Desarrollo con Node-RED para Smart Cities”, el material necesario por parte de los Asistentes para realizarlo es:

  • 1 PC o Portátil con conexión a internet
  • Para seguir el curso on-line es recomendable dos pantallas, una para seguir el vídeo y otra para programar en Node-RED.

El PC de cada asistente deberá tener un sistema operativo instalado, ya sea un sistema Windows, MacOS o Linux. Las licencias del Sistema Operativo y el software que tenga correrán a cargo del cliente/alumno.

  • Nodo Edge/Gateway. Instalación Node-RED. Recomendable usar Raspberry Pi + tarjeta SD 16Gb + alimentador conectada a Internet por alumno, pero podría usarse una máquina virtual o en un servidor cloud. Opcionalmente puede usarse instancias en la nube de Node-RED desde el servidor de https://www.aprendiendoarduino.com/ 

Las Raspberry Pis se usarán como instancias de Node-RED y nodos edge a los que se conectan los nodos remotos, por lo que no conectaremos sensores/actuadores/periféricos a las Raspberry Pi.

  • Nodos remotos por asistente compuesto por el siguiente material:
    • 2x Wemos D1 min o NodeMCU o equivalente
    • 1x shields para wemos D1 mini relé o equivalente
    • 1x shields para wemos D1 mini neopixel o equivalente
    • 1x shields para wemos D1 mini oled o equivalente
    • 1x shields para wemos D1 mini temperatura (puede ser DHT o
    • de temperatura) o equivalente
    • 1 x Cable USB para programar Wemos

Si el alumno tiene algún HW con que quiera interactuar, puede presentarlo y lo integramos en las prácticas. El HW puede estar tanto en el aula como remotamente en su casa, oficina, etc…

Servicios Cloud para el Curso

Se usará un broker común para comunicar todos los dispositivos: mqtts://aprendiendonodered.com:8883

Los alumnos recibirán usuario y contraseña para acceder al broker con permisos de lectura y escritura en smartcities/#

Base de datos MySQL en https://enriquecrespo.com/phpmyadmin/ donde los alumnos podrán usar para almacenar datos. Los alumnos recibirán las credenciales de acceso.

Base de datos InfluxDB en https://enriquecrespo.com:8086/ donde los alumnos podrán usar para almacenar datos. Los alumnos recibirán las credenciales de acceso.

Grafana en https://enriquecrespo.com:3000/ para representar gráficamente los datos. Recibirán por correo las credenciales de acceso.

Otros servicios programados con Node-RED en aprendiendonodered.com: API, Open Data, servidor FTP, gateway servicios de terceros, simulación de datos, etc… y servicios self hosted (gotify, thingsboard, thinger.io, etc…)

Interacción con servicios cloud de terceros como: APIs, Open Data, Cámaras/Imágenes, Plataformas IoT, Redes Sociales, Servicios de Mensajería, Servicios de alertas, email, etc…

Topología de Prácticas

Presentación Curso Smart Cities

Título: “Fundamentos IoT y Desarrollo con Node-RED para Smart Cities”

El curso semipresencial “Fundamentos IoT y Desarrollo con Node-RED para Smart Cities” ha sido diseñado para conocer los fundamentos de IoT en aplicaciones de Smart Cities para capacitar en nuevas tecnologías. Este curso está enfocado en dar a conocer las nuevas tecnologías utilizadas en Smart Cities, con el fin de operar e integrar las plataformas IoT.

Motivación

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.

En la industria conectada e IoT, cada vez se está haciendo más popular el uso de Node-RED debido a su estabilidad, continuo desarrollo y aportaciones externas que hacen de ella una herramienta de programación utilizada para conectar dispositivos de hardware, APIs y servicios de internet.

Node-RED es una herramienta de programación (Low Code Programming) que se utiliza para conectar dispositivos de hardware, APIs y servicios de internet. Adecuado para los equipos dedicados al Internet de las cosas ( IoT) 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á al equipo IoT explorar y ampliar las soluciones que ofrece.

Objetivos

El objetivo de este curso es conocer las tecnologías necesarias para el desarrollar soluciones IoT/Smart Cities y valiéndonos para ello de herramientas, tecnologías, protocolos y software libre/open source que hay a nuestra disposición, en especial el uso de Node-RED, desarrollo e integración con sistemas externos y plataformas enfocadas IoT/Smart Cities

Con los conocimientos adquiridos, los asistentes aprenderán las tecnologías necesarias para hacer aplicaciones IoT/Smart Cities sencillas o integrar desarrollos propios en sistemas ya implantados.  Se adquirirán conocimientos en cuanto manejo, montaje y parametrización de redes de comunicación IoT, protocolos IoT y hardware IoT.

Se aprenderá a usar Node-RED, un framework enfocado a IoT para programar, automatizar e integrar plataformas IoT.

Metodología Curso On-Line

El curso se realizará entre el 3 de mayo y el 9 de junio de 2022.

El curso semipresencial consiste en 36 horas de formación, repartidas de la siguiente forma:

  • 10 sesiones on-line en directo de 3 horas cada una los lunes y miércoles de 17:00 a 20:00 entre el 3 de mayo y el 1 de junio de 2022. Se realizará un descanso de 10-15 minutos a la mitad de las sesión.
  • Una sesión presencial de 6 horas el 9 de junio de 2022 en las instalaciones del cliente, que se organizará a lo largo del curso.

La plataforma en vídeo usada será https://meet.jit.si/aprendiendoarduino y se grabarán todas las sesiones. En casos de problemas con esta plataforma se podrá usar Google Meet.

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

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 – Compartir Igual (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.

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, etc…

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

Programación del Curso

FechaTemarioHoras On-line (live)Prácticas
Día 1
3 de mayo
17:00-20:00
Presentación
Fundamentos IoT
Verticales IoT/Smart Cities
1h
1h 30m
30m
0
Día 2
4 de mayo
17:00-20:00
Hardware IoT (1/2)
Comunicaciones IoT (1/2)
1h
1h 
1h – Práctica 1: Instalación y Configuración Raspbian
Día 3
9 de mayo
17:00-20:00
Hardware IoT (2/2)
Comunicaciones IoT (2/2) 
1h
1h
1h – Práctica 2: Sensorización y Comunicación con ESP8266 (1/2)
Día 4
11 de mayo
17:00-20:00
Protocolos IoT (1/2)
2h1h – Práctica 2: Sensorización y Comunicación con ESP8266 (2/2)
Día 5
16 de mayo
17:00-20:00
Protocolos IoT – MQTT (2/2)1h 30m1h 30m – Práctica 3: Wifi + MQTT con ESP8266
Día 6
18 de mayo
17:00-20:00
Administración Node-RED (1/2)1h 30m1h 30m – Práctica 4: Instalar y configurar Node-RED (1/2)
Día 7
23 de mayo
17:00-20:00
Administración Node-RED (2/2)1h 30m1h 30m – Práctica 4: Instalar y configurar Node-RED (2/2)
Día 8
25 de mayo
17:00-20:00
Programación con Node-RED (1/3)2h 1h – Práctica 5: Desarrollo Node-RED: MQTT y Dashboard
Día 9
30 de mayo
17:00-20:00
Desarrollo con Node-RED (2/3)2h1h – Práctica 5: Desarrollo Node-RED: MQTT y Dashboard (1/2)
Día 10
1 de junio
17:00-20:00
Dashboard con Node-RED2h1h – Práctica 5: Desarrollo Node-RED: MQTT y Dashboard (2/2)
Día 11
9 de junio
8:00-14:00
Sesión presencial en las instalaciones del cliente.
Plataformas IoT
2h2h – Práctica 6: Desarrollo Node-RED: BBDD y Tratamiento Datos
2h – Práctica 7: Integración de Datos en Plataforma IoT
TOTAL21h 30m14h 30m

Contenido del Curso

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

Contenido:

  • Fundamentos IoT
  • Hardware IoT
  • Comunicaciones IoT
  • Protocolos IoT
  • Administración Node-RED
  • Desarrollo con Node-RED

Presentaciones

  • ¿Nombre?
  • Breve presentación con el rol/puesto y aplicación de los puntos del curso al trabajo.

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/