Archivo de la etiqueta: Formación Profesional

Proyecto Final IoT con Node-RED

Descripción del Proyecto

Proyecto final full stack IoT con Node-RED aplicando los conceptos vistos.

Repositorio: https://github.com/jecrespo/proyecto-fundamentos-iot 

Material del Proyecto

M5stack: https://m5stack.com/collections/m5-core/products/basic-core-iot-development-kit 

M5Stick-C con sensor ENV:

Raspberry Pi Zero: Instalada en local con cámara y programada con Node-RED, usada como dispositivo remoto.

Raspberry Pi 3B+: Instalada en local con Node-RED, Mosquitto y BBDD, usada como servidor.

Wibeee instalado y publicando datos.

Wibeee ONE 2W

Si el alumno tiene algún HW con que quiera interactuar, puede presentarlo y lo integramos en las prácticas.

Esquema del Proyecto

Topología del proyecto IoT:

Datos Disponibles

Topic Map Nodo00 (Enrique):

  • educantabria/nodo00/wemos1/dato10s – publica mensaje numerado cada 10s
  • educantabria/nodo00/wemos1/dato60s – publica mensaje numerado cada 60s
  • educantabria/nodo00/wemos1/reset – publica mensaje cada reset o inicio
  • educantabria/nodo00/wemos1/led – suscrito (1 led ON, otro valor  led OFF)
  • educantabria/nodo00/wemos1/text – suscrito (muestra el mensaje por pantalla)
  • educantabria/nodo00/wemos1/rele – suscrito (1 relé ON, otro valor  relé OFF). Con firmware relé
  • educantabria/nodo00/wemos2/dato10s – publica mensaje numerado cada 10s
  • educantabria/nodo00/wemos2/dato60s – publica mensaje numerado cada 60s
  • educantabria/nodo00/wemos2/reset – publica mensaje cada reset o inicio
  • educantabria/nodo00/wemos2/led – suscrito (1 led ON, otro valor  led OFF)
  • educantabria/nodo00/wemos2/text – suscrito (muestra el mensaje por pantalla)
  • educantabria/nodo00/wemos2/temperatura – publica dato temperatura cada 10 segundos. Con firmware DS18B20
  • educantabria/nodo00/wibeee/# – datos eléctricos de Wibeee. Varios parámetros.
  • educantabria/nodo00/m5atom/aviso – suscrito (“alarma” – leds rojos, “aviso” – leds amarillos, “ok” – leds verdes, otro mensaje apaga)
  • educantabria/nodo00/m5atom/boton – al pulsar publica “press” o “longpress”
  • educantabria/nodo00/m5stack/boton/A – al pulsar botón A publica “press”
  • educantabria/nodo00/m5stack/boton/B – al pulsar botón B publica “press” 
  • educantabria/nodo00/m5stack/boton/C – al pulsar botón C publica “press”
  • educantabria/nodo00/m5stack/led – suscrito (1 dibuja en pantalla círculo rojo, otro valor  dibuja en pantalla círculo verde)
  • educantabria/nodo00/m5stack/text – suscrito, muestra por pantalla el texto
  • educantabria/nodo00/m5stick/temperatura – publica dato temperatura cada 1 segundo
  • educantabria/nodo00/m5stick/humedad – publica dato humedad cada 1 segundo
  • educantabria/nodo00/m5stick/presion – publica dato presión cada 1 segundo
  • educantabria/nodo00/m5stickplus/distancia – publica dato distancia cuando se activa
  • educantabria/nodo00/m5stickplus/button – al pulsar botón publica “press”
  • educantabria/nodo00/m5stickplus/led – suscrito (1 led ON, otro valor  led OFF)
  • educantabria/nodo00/m5stickplus/label  – suscrito (“red” – circulo rojo, “yellow” – circulo amarillo, “green” – circulo verde, “black” – círculo verde)
  • educantabria/nodo00/raspberry3/CPU – publica Node-RED el datos de CPU 
  • educantabria/nodo00/raspberry3/Temperatura – publica Node-RED el datos de temperatura procesador
  • educantabria/nodo00/raspberry3/Memoria – publica Node-RED el datos de memoria libre
  • educantabria/nodo00/raspberry3/Dashboard/# – publica Node-RED cualquier dato del Dasboard
  • educantabria/nodo00/raspberry3/Datos/# – suscrito Node-RED para recibir cualquier dato externo
  • educantabria/nodo00/raspberry3TT/CPU – publica Node-RED el datos de CPU 
  • educantabria/nodo00/raspberry3TT/Temperatura – publica Node-RED el datos de temperatura procesador
  • educantabria/nodo00/raspberry3TT/Memoria – publica Node-RED el datos de memoria libre
  • educantabria/nodo00/raspberry3TT/Dashboard/# – publica Node-RED cualquier dato del Dasboard
  • educantabria/nodo00/raspberry3TT/Datos/# – suscrito Node-RED para recibir cualquier dato externo
  • educantabria/nodo00/raspberryzero/tomafotomqtt – suscrito Node-RED un valor cualquiera enviado, toma una foto y publica en el topic educantabria/nodo00/raspberryzero/foto en baja resolución.
  • educantabria/nodo00/raspberryzero/foto – publica Node-RED una foto al mandar cualquier dato en el topic educantabria/nodo00/raspberryzero/tomafotomqtt 
  • educantabria/nodo00/raspberryzero/tomafotoweb suscrito Node-RED un valor cualquiera enviado, toma una foto y la actualiza en https://www.aprendiendoarduino.com/servicios/imagen.jpg en alta resolución

Topic Map Alumnos Nodoxx:

  • educantabria/nodo{xx}/wemos{y}/dato10s – publica mensaje numerado cada 10s
  • educantabria/nodo{xx}/wemos{y}/dato60s – publica mensaje numerado cada 60s
  • educantabria/nodo{xx}/wemos{y}/reset – publica mensaje cada reset o inicio
  • educantabria/nodo{xx}/wemos{y}/led – suscrito (1 led ON, otro valor  led OFF)
  • educantabria/nodo{xx}/wemos{y}/text – suscrito (muestra el mensaje por pantalla)
  • educantabria/nodo{xx}/wemos{y}/rele – suscrito (1 relé ON, otro valor  relé OFF). Con firmware relé
  • educantabria/nodo{xx}/wemos{y}/oled – suscrito (muestra el mensaje por pantalla oled). Con firmware oled
  • educantabria/nodo{xx}/wemos{y}/temperatura – publica dato temperatura cada 10 segundos. Con firmware DS18B20
  • educantabria/nodo{xx}/wemos{y}/matrix – suscrito (0 efecto y apaga, de 1 a 8 ilumina de 1 a 8 líneas de matriz). Con firmware matrix.
  • educantabria/nodo{xx}/raspberry{y}/CPU – publica Node-RED el datos de CPU 
  • educantabria/nodo{xx}/raspberry{y}/Temperatura – publica Node-RED el datos de temperatura procesador
  • educantabria/nodo{xx}/raspberry{y}/Memoria – publica Node-RED el datos de memoria libre
  • educantabria/nodo{xx}/raspberry{y}/Dashboard/# – publica Node-RED cualquier dato del Dasboard
  • educantabria/nodo{xx}/raspberry{y}/Datos/# – suscrito Node-RED para recibir cualquier dato externo

{xx} número de alumno

{y} número de sensor

AlumnoNº Nodo
SERGIO A.nodo01
Alberto B.nodo02
Pablo C.nodo03
Soraya C.nodo03
isaías C.nodo04
Mª del Mar E.nodo05
Santiago F.nodo06
José Ángel G.nodo07
Oscar G.nodo08
MARCOS G.nodo09
Jose Luis G.nodo10
Evelio H.nodo11
Roberto I.nodo12
RAMON L.nodo13
Eduardo P.nodo14
FRANCISCO JAVIER R.nodo15
Sara T.nodo16

Tareas del Proyecto

Fase 1 – Monitorización Local

Instalar nodo con todo el SW:

Instalar los sensores en la ubicación.

Fase 2 – Conectar a la Nube

Conectar sensores:

Fase 3 – Automatizar

Configurar y securizar Node-RED: 

Programar Node-RED y MQTT:

Fase 4 – Integración con Terceros

Integración de datos con terceros:

Industria 4.0 (IIoT)

El concepto de industria 4.0 consiste en la introducción de las tecnologías digitales en las fábricas. Es la forma que hay de llamar al fenómeno de transformación digital aplicado a la industria de producción.

Durante años se ha hablado del impacto del Internet de cosas (IoT)  en industrias como la energética o de infraestructuras, bajo el concepto de Smart Cities. Ahora toca hablar de “Industria Inteligente” o industria 4.0.

La industria 4.0 consiste en la digitalización de los procesos productivos en las fábricas mediante sensores y sistemas de información para transformar los procesos productivos y hacerlos más eficientes. La industria 4.0 supone un cambio de mentalidad importante.

La industria 4.0 supondrá una fuente de competitividad para las industrias occidentales con: costes de mano de obra, costes de energía y niveles de compromiso social, mucho más elevados que sus homólogos de los países emergentes.

Iniciativa europea: http://i4ms.eu/ y resumen: http://i4ms.eu/documents/i4ms_v11.pdf 

Lo que ofrece la industria 4.0 a través de la digitalización y el uso de plataformas conectadas es:

  • capacidad de adaptación constante a la demanda,
  • servir al cliente de una forma más personalizada,
  • aportar un servicio post venta uno a uno con el cliente,
  • diseñar, producir y vender productos en menos tiempo,
  • añadir servicios a los productos físicos
  • crear series de producción más cortas y rentables
  • y aprovechar la información para su análisis desde múltiples canales (CMS, SCM, CRM, FCM, HRM, Help desk, redes sociales, IoT)  donde ser capaces de analizarla y explotarla en tiempo real.

Puntos clave de la Industria 4.0:

  • Big data y análisis de datos
  • Cloud Computing
  • Ciberseguridad
  • Robótica
  • Internet de las cosas
  • Simulación y prototipado
  • Realidad aumentada
  • Cultura
  • Integración de procesos

El verdadero reto estará en las personas, en cómo lograr el proceso de transformación digital dentro la organización y en el cambio que supondrá adaptarse y trabajar en los nuevos entornos conectados de la industria 4.0

Más información: http://fca-consulting.es/industria-4-0-4a-revolucion-industrial/ 

Pasamos de especializarnos en tecnología a especializarnos en sectores verticales en IoT porque cada uno tiene unas necesidades.

Aporte a la industria

  • manteniendo predictivo
  • ahorro de costes 
  • mejora en la toma de decisiones 
  • visualización de datos en planta en tiempo real

IIOT se refiere a:

  • El uso de IoT en los procesos industriales que afectan a todos los niveles, desde el diseño de las plantas hasta los modelos de logística y distribución llegando hasta el cliente final.
  • La implantación en las industrias de soluciones IoT para optimizar procesos y reducir los costes de fabricación gracias a la información que obtienen en cada paso que les proporciona unos beneficios tangibles.
  • La sensorización y conectividad de dispositivos para extraer datos, obtener datos en tiempo real, poseer datos de valor, datos que permitan tomar decisiones acertadas de un modo ágil y eficaz.
  • El conocimiento del cliente final. Porque el cliente debe instalarse como pieza clave en la cadena de producción y el conocimiento real de sus preferencias actuales y futuras de consumo es posible de un modo económico gracias a las herramientas tecnológicas que podemos aplicar.

El objetivo principal de la industria 4.0 es MEJORAR LA PRODUCTIVIDAD.

Nuevas oportunidades con IIoT

  1. Un aumento de la productividad industrial en un 30 por ciento o superior del OEE (Overall Equipment Efficiency, siendo OEE= disponibilidad x rendimiento x calidad). Conocer el estado real de la máquina permite planificar las paradas para el mantenimiento preventivo, mejorando los costes de desplazamientos, intervención, repuestos, alquiler de maquinaria o falta de producción. En el caso de las paradas inesperadas es posible mejorar los tiempos de reacción y diagnóstico, reduciendo así el tiempo de improductividad.
  2. Incrementar la satisfacción y la confianza de un usuario final en el desarrollo de sus actividades, al saber que el funcionamiento de la instalación está siendo monitorizado en tiempo real por su proveedor de servicios de mantenimiento, minimizando los tiempos de respuesta ante posibles anomalías para garantizar la continuidad de servicio de la instalación.
  3. Incrementar las posibilidades de negocio de un OEM, ofreciendo servicios de monitorización al usuario, como son la generación de informes automáticos de los costes energéticos de producción, el diagnóstico de incidencias, la actualización del software o la propuesta de recambios de acuerdo a las horas de funcionamiento. Los contratos de mantenimiento sobre el parque de máquinas instalado pueden representar una fuente de ingresos constante para el fabricante de maquinaria, que cobra especial importancia ante posibles caídas de la demanda.

Visión de Industria 4.0 de Unitronics: https://unitronicsplc.com/wp-content/uploads/2017/10/WHITE-PAPER-pyramid-A4-9_2017_V2.pdf 

Diferencia entre IoT e industria 4.0

Más información:

IIoT y HW Open Source

Desde los inicios de Arduino y el HW Open Source, la industria encontró una forma sencilla y barata de implementar el Internet de las cosas y la Industria 4.0. Con estas herramientas es posible realizar tareas como:

  • Machinery automation.
  • Installation Control. (Thermal, Climate conditioning, Water treatment, Chemical products, Food, etc.).
  • Industrial monitoring.
  • Data acquisition.
  • etc.

Raspberry Pi en la industria: https://aprendiendoarduino.wordpress.com/2020/03/01/raspberry-pi-en-la-industria/ 

Ejemplos de uso del IIoT

Torres de refrigeración (HVAC)

Descripción: Control de la temperatura del agua y rendimiento de la máquina. Registro de horas de funcionamiento para mantenimiento de filtros y  consumos energéticos en instalaciones industriales de gran consumo energético.

Beneficios de implantación del IIoT: Envío de alarmas y avisos de incidencias en tiempo real (legionella, pérdida de alimentación, etc.), con comprobación del estado de la máquina remotamente, ahorrando tiempo y costes de desplazamientos innecesarios para mantenimiento del parque instalado y distribuido.

Registro de consumos energéticos por horas, para planificación y control de costes, detección de consumos no permitidos y realizar comparativas entre periodos o instalaciones similares.

Cambio de consigna de temperatura remoto, para normativas ambientales en periodos de verano e invierno, evitando desplazamientos.

Riego de campos de cultivo (Solar Pump)

Descripción: Bombeo de agua para el control de riego en campos de cultivo, utilizando placas fotovoltaicas o red eléctrica, con conmutación automática dependiendo de la irradiación solar.

Beneficios de implantación del IIoT: Reducción de los costes de consumos energéticos (electricidad sin conexión a red o diésel sin utilización de grupo electrógeno), asegurando el suministro de agua, la presión y el tiempo y el horario de  riego en todo momento desde cualquier dispositivo móvil.

Recepción de alarmas en tiempo real y registro de consumos energéticos para planificación de costes.

Control y confort en instalaciones públicas (superficies comerciales, centros deportivos, etc.)

Descripción: Control del sistema de ventilación (HVAC), incendios, iluminación, accesos, calidad de redes, protecciones eléctricas , sistemas IT (terminales TPV) y suministros de emergencia (UPS) .

Beneficios de implantación del IIoT: Envío de alarmas y avisos de incidencias en tiempo real, con comprobación del estado de la instalación remotamente (SmartPhone, Tablet, etc.), ahorrando tiempo y costes de desplazamientos innecesarios para el funcionamiento y el confort de los usuarios. Registro y asignación de consumos energéticos por cliente, para control de costes, automática, detección de consumos no permitidos y corte de suministros eléctricos de forma remota.

Otros ejemplo:

Ejemplo Funcionalidades Equipamiento IIoT

Las nuevas funcionalidades disponibles como estándar en la plataforma de automatización de PLCs AC500. Entre ellas se encuentran:

  • SNTP (protocolo para sincronización horaria automática )
  • SNMP (protocolo simple de administración de red)
  • SMTP(protocolo para envío de correo electrónico)
  • MySQL (gestión de base de datos)
  • FTP (protocolo para envío de archivos excel, csv, etc.) HTTP (servidor web) y HTML5
  • TCP OPEN SOCKETS y WEB SERVICES (protocolos para obtener o publicar datos de la instalación en una página web)
  • Programación en Java Script, C/C++, Node-RED, etc…

Además de estas funcionalidades, también están disponibles de serie los siguientes protocolos de comunicaciones industriales:

  • Modbus RTU, TCP/IP y IEC608-70-5-104
  • KNX IP y BACNet MS/TP/IP
  • Ethernet IP y Simatic ETH (para terminales de operador)

Estas funcionalidades permiten conectar las máquinas o instalaciones con las personas y de esta manera un usuario puede controlar y monitorizar su instalación en cualquier momento y desde cualquier lugar mediante SmartPhone, table o PC.

El  IIoT da lugar a un cambio de paradigma exitoso que interrelaciona máquinas, instalaciones, servicios y personas, con el objetivo de mejorar la productividad y la sostenibilidad para crear un mundo mejor.

Sistemas industriales en la nube

Esta evolución de servicios y recursos en la nube no ha pasado desapercibida en sistemas industriales que ya han comenzado a adoptar desarrollos sobre este tipo de tecnología con las ventajas que suponen al reducir considerablemente los costes de hardware, software y mantenimiento. Algunos casos de evolución son los siguientes:

  • Sistemas SCADA (SCADA as a Service), desarrollado entre otros por PetroCloud, posee todas las funcionalidades que puede tener un SCADA tradicional.
  • Historiadores que recogen datos (Historian as a Service), entre algunos de los desarrolladores de este servicio se encuentra ARC Advisory Group. El uso de historiadores en la nube proporciona un mayor análisis de datos.
  • Software que puede ser incluido para simular PLCs en la nube (PLC as a Service) evitando costes en soportes físicos para los propios PLCs y en la energía consumida por los mismos.
  • HMIs que muestran los datos recopilados en la nube para acceder a ellos desde cualquier parte del mundo poseyendo una conexión a Internet (HMI as a Service).

Por otro lado, algunos fabricantes del sector industrial están optando por ofrecer servicios de soporte que recojan datos y sean almacenados en la nube para poder mejorar la calidad de su servicio, los tiempos de respuesta y la disponibilidad. También se ofrecen soluciones con las que integrar la tecnología en la nube con dispositivos industriales gracias a plataformas en la propia nube.

Scada as a Service: http://petrocloud.com/solutions/scada-as-a-service/

¿Qué es IoT?

Internet de las cosas (en inglés Internet of things, abreviado IoT) es un concepto que se refiere a la interconexión digital de objetos cotidianos con Internet. En el caso que queramos interconectar los elementos de una empresa o una Industria es lo que se denomina IIOT (Industrial Internet of Things) o Industria 4.0

Definición de wikipedia:

¿Qués Internet de las Cosas?: http://www.ticbeat.com/tecnologias/que-es-el-internet-de-las-cosas/

Arduino y Raspberry Pi son dos elementos muy populares y abiertos que nos permiten de forma sencilla y económica conectar cualquier cosa a Internet. Con un Arduino y un sencillo módulo ethernet o wifi podemos conectar a Internet sensores para informar, controlar motores o bombillas desde cualquier parte del mundo o mandar un SMS o email cada vez que se abra la puerta de casa. Con una Raspberry Pi disponemos de un ordenador de bolsillo fácilmente conectable a Internet y que puede ejecutar tareas automatizadas, almacenar datos, mostrar información o hacer de pasarela para conectarnos a otras ubicaciones o dispositivos remotos.

Arduino y Raspberry Pi se han convertido en unas figuras destacadas e incluso unos de los impulsores del IoT y no por casualidad, sino que  por sus características son HW con gran capacidad para usar en proyectos de IoT.

Características de Arduino y Raspberry Pi para IoT

  • Barato y rápido prototipado.
  • HW libre y por lo tanto es modificable para que consuma menos y para hacer un HW final de características industriales.
  • Disponibilidad de HW de comunicaciones de todo tipo para conectar con Arduino. Nuevas tecnologías de comunicación llegan antes que para elementos comerciales
  • Librerías y SW públicos para su reutilización o adaptación.
  • Flexibilidad en la programación.
  • Apoyo de la comunidad.

Intersante web con publicaciones sobre IoT: https://iot-analytics.com/ 

Como afecta IoT a nuestro dia a dia: http://socialgeek.co/tecnologia/8-formas-que-the-internet-of-things-impactara-dia-dia

IoT en 5 minutos con Arduino: http://hackaday.com/2016/01/08/internet-of-things-in-five-minutes/ 

Aplicaciones de IoT: https://temboo.com/iot-applications 

7 Lecciones sobre IoT: https://www.greenbiz.com/article/7-essential-lessons-about-internet-things

IoT vs M2M

Una visión del IoT aplicado a la industria es lo denominado como Industria 4.0 o Industria conectada o IIoT que deriva del concepto de M2M (machine to machine) que se refiere al intercambio de información o comunicación en formato de datos entre dos máquinas remotas sin necesidad de conexión a Internet sino que puede ser en una red privada y crear una industria inteligente donde todos los elementos están interconectados y comparten los datos.

Definiciones de wikipedia:

Diferencias entre IoT y M2M: https://www.pubnub.com/blog/2015-01-02-iot-vs-m2m-understanding-difference/

El coche autónomo, en el que trabajan grupos como Google, BMW, Volvo o Tesla, es toda una proeza de la robótica.La conducción autónoma se basa en las comunicaciones máquina a máquina (M2M), por las que los vehículos pueden intercomunicarse con las señales, los semáforos y los otros automóviles. Todo esto también tiene mucho que ver con las smart cities. 

http://www.dr4ward.com/.a/6a00e54fd9f059883301a73dc37274970d-800wi

Interesantes artículos de Basic IoT:

Reflexiones de David Cuartielles sobre IoT en base a un paper de IBM: https://vimeo.com/299112221 

Ontología IoT https://www.w3.org/Submission/2015/SUBM-iot-lite-20151126/

Empresas en el Mercado IoT

El artículo de Matt Turck hace un buen desglose de IoT https://mattturck.com/iot2018/, que resume en esta imagen:

Imagen completa: link

Listado de compañías IoT: http://dfkoz.com/iot-landscape/

Divide los mercados o aplicaciones verticales en:

  • Personal
  • Home
  • Vehículos
  • Empresa
  • Industria

Divide las Plataformas Horizontales en:

  • Software
  • Seguridad
  • Conectividad
  • Analítica
  • Desarrollo
  • Pagos
  • Interfaces
  • 3D

Y los Building Blocks de IoT los divide en:

  • Hardware
  • Infraestructura
  • Conectividad
  • Partners

Más información: https://mattturck.com/iot2018/

Mercados Verticales IoT

La Internet de los objetos está unificada por un principio común (extracción y análisis de datos digitales del mundo físico), así como por características comunes (combinación de hardware y software), oportunidades (personalización e inteligencia, servicios en tiempo real) y retos (conectividad, seguridad, etc.).  Más allá de estas, sin embargo, áreas tan diversas como la domótica, los aviones no tripulados comerciales, la maquinaria industrial o los coches autónomos están sujetos a dinámicas industriales muy diferentes.

En este curso vamos a ver IoT desde un punto general para poder ser aplicable en cualquier sector, pero cuando se va a acometer un proyecto IoT suele ser adecuado hacer un enfoque vertical en función del sector en el que se vaya a aplicar puesto que cada sector tienen unas características concretas.

Conceptos como Industria 4.0, Smart Cities, Agricultura 2.0, Smart Home, Smart factory, etc… al final son etiquetas y en lugar de especializarse en áreas tecnológicas como sensores, comunicaciones, protocolos, sistemas, etc… pensamos como especialistas de sectores porque un mismo concepto como el de IoT se puede aplicar a muchos sectores de de una forma distinta.

El vino y el IoT http://www.elmundo.es/economia/2016/11/03/5819d37346163f9c528b45c9.html

Visión horizontal IoT

Algunos mercados verticales IoT:

  • Sanidad/Salud
  • Retail
  • Construcción
  • Gobierno/Servicios Públicos
  • Smart Cities
  • Defensa
  • Manufactura y Cadena de Suministro
  • Fabricación
  • Industria
  • Robótica Industrial
  • Automoción/Coche Conectado/Coche Autónomo
  • Movilidad Urbana (BIcis/Patinetes)
  • UAV (Vehículos Aéreos no Tripulados)
  • Logística/Transporte/Almacenes
  • Agricultura/Medio ambiente/Agricultura Vertical
  • Energía/Smart Metering y Eficiencia Energética
  • Hogar Inteligente/Domótica/Inmótica y Robótica Doméstica.
  • Hoteles/Turismo
  • eHealth/Deporte
  • Smart Grid
  • Alimentación
  • Seguridad (Alarmas)
  • Wearables
  • Fitness/Sports
  • Educación/Juguetes
  • Asistentes de voz/Plataformas de voz

Más verticales en el artículo de Matt Turck: https://mattturck.com/iot2018/

Encuesta: https://www.forbes.com/sites/louiscolumbus/2016/11/27/roundup-of-internet-of-things-forecasts-and-market-estimates-2016/#28e2ea4d292d 

Mercado Vertical Seguridad

El sector de la seguridad es uno de los más avanzados en IoT. Por ejemplo Securitas Direct:

Minut, startup sueca:

¿Qué Dispositivos podemos conectar a Internet?

La respuesta es: Cualquier cosa que podamos imaginar.

IoT en su amplio concepto es conectar a Internet cualquier cosa, teniendo sentido o sin tenerlo. Por ejemplo, podríamos conectar a internet un sofá con un Arduino y unos pocos sensores, este sofá podría tuitear que nos acabamos de sentar a ver nuestra serie favorita, simplemente detectando el peso de la persona y conectándose a una API de un servidor de streaming como netflix y comprobando que acabo de poner un capítulo de westworld.

Puede parecer una idea sin sentido, pero esta idea para Netflix podría ser muy interesante, monitorizar a la gente que ve su canal, cuántas veces se levanta el espectador o si se queda dormido.

Un ejemplo más serio de IoT es aplicar las nuevas tecnologías a elementos cotidianos que no imaginarías que tuviera sentido conectar a Internet, pero que pensándolo puede ser muy útil. Por ejemplo, pensemos en conectar a Internet un cortacésped. Con un Arduino podríamos conectar diversos sensores de temperatura del motor, temperatura externa, revoluciones del motor, consumo eléctrico (cortacésped eléctricos), gps, logs, etc… que podrían ser mandados a una plataforma del fabricante y le permitiría analizar esos datos para mejorar sus futuros productos o detectar averías de forma precoz. Podría mandar una desconexión remota en caso que en una determinada partida de fabricación se haya detectado un fallo que podría provocar daños al usuario o actualizar on-line el firmware si se detecta un fallo sin necesidad de llevar al servicio técnico.

Ejemplos de cortacesped conectados:

También podemos conectar a Internet un bastón o una botas de seguridad:

Otra aplicación de IoT usando Arduino o Raspberry Pi como herramienta, es la de obtener información externa disponible mediante APIs del open data. Un ejemplo es el de un sistema de riego automático que podemos tener en una ciudad. En los inicios de la automatización se usaron programadores conectados a una electroválvula donde indicamos las horas entre las que deseamos regar. El siguiente paso fue poner detectores de lluvia para no regar si estaba lloviendo. Otro paso fue poner sensores de temperatura y humedad ambientales y sensores de humedad de suelo que nos indican cuándo debemos regar y en qué áreas de la ciudad.

El paso más avanzado que ofrece el IoT es poder conectar todo este sistema, ya de por sí muy eficiente, a los opendata meteorológicos disponibles en Internet como el de la aemet http://www.aemet.es/es/datos_abiertos/AEMET_OpenData y que nuestro sistema obtenga datos de prediciones meteorológicas y decida no regar si la predicción de lluvia es mayor del 80% en los próximos dos días o simplemente ajustar el algoritmo de riego en función los valores de los sensores + es de los datos meteorológicos. También puede recibir alertas de tormenta o pedrisco y tomar determinadas acciones o simplemente mandar un email o SMS al propietario del huerto. ¿Podríamos hacer esto con un sistema comercial?

Esto podría extenderse a explotaciones agrícolas usando un servicio como el sistema de información agroclimática de La Rioja:

Un ejemplo práctico de esto es el proyecto Aggrofox: 

Aggrofox: IoT sensing, notifications and analytics platform for urban and large-scale agriculture with automated irrigation, using Sigfox technology: https://www.hackster.io/107329/aggrofox-large-scale-and-urban-agriculture-iot-solution-8155fe 

IoT no es que un coche se pueda conectar a Internet para ver videos de youtube, sino que este coche esté conectado a Internet para que pueda actualizar su firmware automáticamente para dotar de nuevas funcionalidades sin necesidad de ir al concesionario, pueda ser inmovilizado en caso de robo o pueda mandar datos de los parámetros internos del coche para que sean analizados y poder detectar alertas precoces de fallo y actualizar automáticamente ese fallo sin que el usuario tenga que hacer nada o avisar al usuario para que lleve el coche a reparar y parar el coche si el usuario no ha llevado a revisión al cabo de unos kms para evitar males mayores.

Interesantes reflexiones sobre IoT: 

Ejemplo de Aplicaciones IoT

El conectar dispositivos a Internet puede tener muchos usos y aplicaciones que hasta ahora no hubiéramos imaginado.

Aplicaciones de IoT: https://temboo.com/iot-applications 

http://www.dragino.com/media/k2/galleries/119/LG01-40.jpg 

Algunos ejemplos

  • Monitorización en Tiempo real
  • Avisos precoces
  • Control remoto de instalaciones
  • Eficiencia energética
  • Automatización de procesos
  • Automatización de informes/Cuadros de mando
  • Mantenimientos Predictivos
  • PRL (Prevención de Riesgos Laborales)
  • análisis de datos (data mining, etc…)
  • Monitorización y notificación
  • Business intelligence (detectar problemas comunes, medir cuellos de botella, etc…) y ayudar en el mantenimiento predictivo.
  • Integrar con el software corporativo. ERP, CRM, GMAO (Gestión del Mantenimiento Asistido por Ordenador), CMMS
  • Recoger datos y tenerlos en tiempo real por ejemplo datos para sanidad en cámaras frigoríficas.
  • Automatizar todo el papeleo siendo recogidos los datos y guardados y generados los informes.

Ejemplos de uso:

  • Estación meteorológica: medidas de temperatura y humedad exterior (tiempo real)
    • Posible caso de uso 1:controlar la temperatura interior (encender/apagar el aire acondicionado, los radiadores, etc.)
    • Posible caso de uso 2: jardinería (urbanizaciones, comerciales o incluso smart cities que gestionan grandes jardines comunitarios) el riego fácil gracias a las previsiones.
  • Sistema de alarma: basado en la detección de personas, la seguridad del edificio puede ser más fácil.
    • Posible caso de uso 1: despliegue de varias aplicaciones de alarma, sensores de personas o de llama/calor en combinación con aplicaciones para smartphones, para estar siempre conectados a edificios públicos o locales comerciales.
  • Previsión del tráfico: a partir de medidas de tráfico regulares, se pueden construir ciudades inteligentes.
    • Posible caso de uso 1: escenarios para comunicarse con la gente que está en la calle -> tráfico potencial en la carretera con sugerencias directas de alternativas -> muy útil para los servicios de entrega de alimentos en las grandes ciudades.
  • Servicios de entrega (por ejemplo, servicio de pizza): seguimiento de los vehículos de entrega, búsqueda de las rutas más rápidas y posterior análisis de marketing (basado en datos históricos) para centrar las futuras actividades de marketing en las «zonas calientes».

Interesante web donde sacar más información de IoT: https://www.insight.tech/ 

Ejemplo real de uso empresa riojana: https://www.encore-lab.com/es/proyectos/humecfol 

Buen artículo de Luis del Valle sobre Proyectos IoT: https://programarfacil.com/podcast/proyectos-iot-con-arduino/

Ejemplo Práctico IoT

Riego automático de un jardín personal, explotación agrícola o ciudad. Fases:

  • Riego manual
  • Riego automatizado por horario y remoto → Temporizador
  • Riego bajo demanda con sensores de humedad, etc… → PLCs
  • Riego sostenible aprovechando las lluvia y las previsiones → IoT

Conectar a Internet los sistemas de riego para obtener las previsiones de lluvia y programar en función de los sensores de lluvia y las previsiones de lluvia ¿cómo?:

Para ello hay que leer la documentación de la API, buscar el “comando” que nos interesa, darse de alta en el servicio para obtener la API key (contraseña) y ejecutar en nuestro sistema.

Y un paso más, predecir enfermedades de los cultivos: http://apisiar.larioja.org/help 

AEMET

Llamada desde acceso: https://opendata.aemet.es/opendata/api/prediccion/especifica/municipio/diaria/39075/?api_key=111111111111

Obtengo:

{
  "descripcion" : "exito",
  "estado" : 200,
  "datos" : "https://opendata.aemet.es/opendata/sh/b904851e",
  "metadatos" : "https://opendata.aemet.es/opendata/sh/dfd88b22"
}

Visores JSON:

Predicción diaria por municipio: https://opendata.aemet.es/dist/index.html?#!/predicciones-especificas/Predicci%C3%B3n_por_municipios_diaria_Tiempo_actual 

Ejemplo con Node-RED: https://github.com/aprendiendonodered/AEMET_Prediccion_Dias 

OpenWeatherMap

Llamada: https://api.openweathermap.org/data/2.5/forecast?q=santander&units=metric&appid=1111

Ejemplo con Node-RED: 

[{"id":"ceb7af605b6e347f","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"4f69f0089f144b46","type":"openweathermap","z":"ceb7af605b6e347f","name":"","wtype":"forecast","lon":"","lat":"","city":"santander","country":"ES","language":"en","x":260,"y":60,"wires":[["0ecd1ae54f3fc616"]]},{"id":"4a4ee3087a02a1bb","type":"inject","z":"ceb7af605b6e347f","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":60,"wires":[["4f69f0089f144b46"]]},{"id":"0ecd1ae54f3fc616","type":"debug","z":"ceb7af605b6e347f","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":410,"y":60,"wires":[]}]

Material de Prácticas Fundamentos IoT para Formación Profesional

Para el curso on-line “Fundamentos IoT Open Source para Formación Profesional”, el material recomendado por parte de los alumnos para realizarlo es:

  • Nodo Edge/Gateway:
    • Una Raspberry Pi 3B+ (o superior) + tarjeta SD 8Gb (o superior) + alimentador conectada a Internet por alumno.
    • En caso de no tener Raspberry Pi virtualizar Raspberry Pi OS con Virtual Box. (No recomendado)
  • Plataformas IoT:
    • https://thingspeak.com/
    • enriquecrespo.com (S.O. CentOS 8, servidor público con 1 vCPU, 2 GB RAM, 20 GB SSD)
      • Node-RED
      • Mosquitto
      • Grafana
      • Base de Datos: influxDB, etc…
      • Otros servicios públicos
    • aprendiendoarduino.com
      • BBDD MySQL públicas
    • Opcionalmente podrán usarse otras que los alumnos usen o estén interesados como https://thingsboard.io/ 

Node-RED Público

La instancia de Node-RED en enriquecrespo.com es la que va a centralizar los datos de los Node-RED remotos, haciendo de plataforma IoT.

Si algún alumno necesita una instancia de Node-RED pública, se levantará en el servidor enriquecrespo.com

Broker MQTT Público

Se usará un broker común para comunicar todos los dispositivos en la dirección: mqtt://enriquecrespo.com:1883.

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

Servicios

Base de datos MySQL en https://qaej225.aprendiendoarduino.com/ donde los alumnos podrán usar para almacenar datos. Recibirán por correo las credenciales de acceso.

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

Opcionalmente se podrán usar otras bases de datos como influxDB.

Todo el software y documentación utilizado en el curso es libre con licencia creative commons o similar.

Saber Más Fundamentos IoT para Formación Profesional

La imagen tiene un atributo ALT vacío; su nombre de archivo es aprendiendoarduino_logo.png

Curso Semipresencial “Fundamentos IoT para Formación Profesional”: https://www.aprendiendoarduino.com/cursos/fundamentos-iot-open-source-para-formacion-profesional/

Sesión 1 (on-line)

Puntos vistos:

Otros temas:

Sesión 2 (on-line)

Puntos vistos:

Otros temas:

  • Enlaces adicionales del lunes
  • Disponibilidad del material de prácticas
  • Entraremos en temas prácticos desde hoy e intercalaremos otros temas más teóricos
  • Tener Node-RED instalado y funcionando desde sesión 3 o 4 para ir conociendo y hacer ejemplos aunque no entendamos al 100%, nos servirá como «pegamento» entre los conceptos que veamos. Dar un poco de ritmo al curso.
  • Node-RED con 2021: https://nodered.jp/noderedcon2021/index-en.html

Sesión 3 (on-line)

Puntos vistos:

Otros temas:

Sesión 4 (on-line)

Puntos vistos:

Otros temas:

Sesión 5 (on-line)

Puntos vistos:

Otros puntos:

xkcd: Dependency

Sesión 6 (on-line)

Puntos vistos:

Otros puntos:

Sesión 7 (on-line)

Puntos vistos:

Otros puntos:

Sesión 8 (on-line)

Puntos vistos:

Otros puntos:

  • Integrar sistemas con Node-RED: «pegamento». Cualquier «cosa» con IP puede manejarse con Node-RED y facilita el consumo de datos IP (APIs).
  • Con Node-RED puedo hacer todo lo que hace IFTTT: https://ifttt.com/
  • Ejemplo IoT: monitorizar estructuras de edificios. ¿HW? ¿Comunicaciones? ¿Protocolo? ¿Gestión y almacenamiento de datos? ¿Gestión de dispositivos (alta, baja, avería, alerta, error de comunicación, etc…)? ¿Programación Node-RED? ¿Algo más?
  • Material alumnos para sesiones presenciales:
    • Ordenador o portátil por cada alumno
    • Acceso a su Raspberry Pi o instancia Node-RED, puede ser en local o instalada en casa con acceso por VNC o similar. Puedo proporcionar instancia de Node-RED.
    • Placas o dispositivos para conectar. Si es posible configuradas, pero sino las configuraremos en el aula.
    • Otros dispositivos a integrar con Node-RED: Gateway y dispositivos LoRa, PLCs Siemens, gateway KNX y dispositivos KNX, Asterisk, gateway y dispositivos Z-Wave, hub delta dore y dispositivos, etc… (comprobar requisitos del aula e indicar si es necesario alguno adicional)
  • Material aula para sesiones presenciales:
    • Proyector con HDMI o VGA
    • Pizarra y rotuladores de pizarra
    • Red Wifi protegida con acceso a Internet
    • Uno o varios switches con al menos 10 bocas, IP por DHCP y acceso a internet
    • Cables ethernet varios
    • Un par de cables HDMI y un par de teclados y ratones para conectar a las Raspberry Pi
    • Varias regletas eléctricas
    • Alimentadores USB si es posible

Sesión 9 (presencial)

Puntos vistos:

  • Proyecto Final
  • Conectar dispositivos
  • Conectar Raspberry Pis y otros Node-RED

Otros puntos:

Sesión 10 (on-line)

Puntos vistos:

Otros puntos:

IoT Reference Model | CC BY-SA @tamberg, FHNW | Thomas Amberg | Flickr

Sesión 11 (on-line)

Puntos vistos:

Otros puntos:

Sesión 12 (presencial)

Puntos vistos:

[{"id":"af22b399.12614","type":"exec","z":"8a81314e.a0f79","command":"vcgencmd measure_temp","addpay":false,"append":"","useSpawn":"","timer":"","name":"RPi Temp.","x":325.2221908569336,"y":46.33333683013916,"wires":[["14f0a295.59181d"],[],[]]},{"id":"408435c9.447fec","type":"exec","z":"8a81314e.a0f79","command":"top -d 0.5 -b -n2 | grep \"Cpu(s)\"|tail -n 1 | awk '{print $2 + $4}'","addpay":false,"append":"","useSpawn":"","timer":"","name":"CPU Load","x":325.2221908569336,"y":126.33333683013916,"wires":[["2c7475c7.6cc01a"],[],[]]},{"id":"8fbcbdf9.549b7","type":"exec","z":"8a81314e.a0f79","command":"free | grep Mem | awk '{print 100*($4+$6+$7)/$2}'","addpay":false,"append":"","useSpawn":"","timer":"","name":"Free Memory","x":325.2222099304199,"y":190.55557250976562,"wires":[["daf6433c.bad81"],[],[]]},{"id":"14f0a295.59181d","type":"function","z":"8a81314e.a0f79","name":"","func":"str = msg.payload\nmsg.payload = str.substring(5,9);\nreturn msg;","outputs":1,"noerr":0,"x":471.888858795166,"y":33.00000190734863,"wires":[["46daa272.4333ac","334a9ddd.345602"]]},{"id":"daf6433c.bad81","type":"function","z":"8a81314e.a0f79","name":"","func":"str = msg.payload\nmsg.payload = parseInt(str.substring(0,str.length - 1));\nreturn msg;","outputs":1,"noerr":0,"x":530,"y":180,"wires":[["1ba39571.ba75ab"]]}]
INSERT INTO `Datos_Node` (`nodo`, `json`) VALUES ('nodo00', '{\"temp\":53,\"CPU\":30\",\"mem\":120\"}');

Otros puntos:

Otro Material no Visto