Archivo de la etiqueta: Node-RED

Material Curso Node Red

Material y servicios usados en el curso.

Instancia Node-RED:

  • 1 PC o Portátil con conexión a Internet.
  • Una Raspberry Pi conectada a Internet y con la última versión de Raspberry Pi OS instalada.
  • Una cuenta en github o bitbucket.

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

Nodos Remotos:

  • 1x Wemos D1 min o NodeMCU o equivalente (M5Stick)
  • 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 Cable USB para programar Wemos

Datasheet wemos y shields:

Los shields son «plug and play» sobre los wemos D1 mini que usaremos como nodos remotos, lo que facilita el montaje y uso.

El firmware para los nodos remotos:

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

Broker MQTT. Mosquitto

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

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

Servicios

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. Los alumnos recibirán las credenciales de acceso.

Otro Hardware Usado para Interactuar

Para interactuar en el curso también disponemos de diversos HW conectados.

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.

Wibeee instalado y publicando datos.

Wibeee ONE 2W

Presentación del Curso Node-RED Developer Professional

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 grandes 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.

Introducción

Los datos industriales de la fábrica o de cualquier proceso operativo son ahora un impulsor importante de las iniciativas de big data. Los beneficios de enviar datos de tecnología de operaciones (Operations Technology – OT) a big data y aplicaciones empresariales incluyen una gestión de recursos mejorada para reducir los costos y lograr un rápido retorno de la inversión.

Hasta ahora, recopilar datos de OT y enviarlos a sistemas de IT no ha sido rentable, requiere un código personalizado, no es fácilmente escalable y puede crear una serie de enredos de tecnología patentada que dejan a las empresas con datos en silos a los que no pueden acceder fácilmente.

Conectar datos industriales a sistemas de IT parece simple, pero en realidad es complejo. Los datos de OT vienen en múltiples formatos de datos, protocolos propietarios y sin información contextual. Está diseñado para operaciones, directamente acoplado a aplicaciones y, a menudo, existe en redes aisladas. IT, por otro lado, IT necesita formatos de datos estándar, objetos de datos, información contextual, seguridad incorporada y metodología de publicación/suscripción para hacer uso de los datos. Los datos cargados en un data lake pueden requerir una transformación personalizada para ofrecer valor.

Node-RED se está utilizando para permitir la integración OT-IT. Ahora los usuarios pueden conectarse a los datos de OT para obtener una única fuente de verdad al conectarse a dispositivos de OT de forma nativa, incluidos los datos de etiquetas contextualizados.

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. Aprenderá a administrar y programar una plataforma IIoT y tener una herramienta para conocer las posibilidades de IIoT.

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

Metodología

El curso presencial consiste en 20 horas de formación en directo, repartidas en 1 primera sesión de 4 horas de 8:00 a 12:00 y dos sesiones de 8 horas de 8:00 a 16:00. Se hará descansos de 5 minutos cada aproximadamente 2 horas.

Toda la documentación se publicará de forma libre on-line en https://www.aprendiendoarduino.com/cursos/node-red-developer-professional/, permitiendo que pueda mantenerse actualizada y fácilmente accesible.

Todo el código, programas y ejemplos se publicará de forma libre en https://github.com/aprendiendonodered pudiendo actualizarse y colaborar en el repositorio.

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

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/

  1. Presentación del curso: 1h
  2. Instalación de Node-RED: 2h
  3. Protocolo MQTT: 1h
  4. Configurar y securizar Node-RED: 2h
  5. Programación Node-RED: 2h
  6. Ejercicio Práctico de Programación: 1h
  7. Nodos Node-RED: 1h
  8. Funciones en Node-RED: 1h
  9. Ejercicio Práctico de Funciones: 1h
  10. Debug Node-RED: 1h
  11. Creación de Nodos Simples: 1h
  12. Node-Red en la Nube: 1h
  13. Dashboard Node-Red: 1h
  14. Creación de un Dashboard: 1h
  15. Integración con Servicios de Terceros: 2h
  16. Ejercicio Práctico de Integración de Servicios: 1h

Presentaciones

  • Nombre
  • Role: IT, Administrador Sistemas, Redes, Desarrollador, Industria (OT), Producción, Jefe de Proyecto, etc…
  • Experiencia con Node-RED y node.js
  • ¿Hardware con el que interactuar? ¿Tipo de aplicaciones de Node-RED?

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/

Low Code Programming

Una plataforma de desarrollo de código bajo (Low Code Programming – LCDP) proporciona un entorno de desarrollo que se utiliza para crear software de aplicación a través de una interfaz gráfica de usuario en lugar de la programación informática tradicional codificada a mano. Una plataforma de codificación baja puede producir aplicaciones completamente operativas o requerir codificación adicional para situaciones específicas. Las plataformas de desarrollo de bajo código reducen la cantidad de codificación manual tradicional, lo que permite una entrega acelerada de aplicaciones comerciales. Un beneficio común es que una gama más amplia de personas puede contribuir al desarrollo de la aplicación, no solo aquellos con habilidades de codificación. Los LCDP también pueden reducir el costo inicial de configuración, capacitación, implementación y mantenimiento.

Wikipedia: https://en.wikipedia.org/wiki/Low-code_development_platform

En lugar de utilizar lenguajes de programación complejos, se puede emplear interfaces visuales con lógica básica y capacidades de arrastrar y soltar en una plataforma de desarrollo de código bajo. Los usuarios sin conocimientos avanzados de codificación o creación de software pueden utilizar estas técnicas intuitivas para crear software para varios propósitos, como crear aplicaciones móviles, automatización y comerciales.

Como son una alternativa rápida y sencilla al desarrollo de software convencional, estas plataformas han ganado popularidad. Un marco de bajo código puede ser utilizado por técnicos y «desarrolladores ciudadanos» (desarrollo no profesional) para crear aplicaciones de una amplia variedad para satisfacer las demandas de crecimiento del mercado, simplificar procesos y facilitar la transformación digital.

La necesidad de automatización de software y nuevas aplicaciones para procesos comerciales impone a los desarrolladores de software demandas para crear aplicaciones personalizadas en volumen, adaptándolas a las necesidades únicas de las organizaciones. Las plataformas de desarrollo de bajo código se han desarrollado y se desarrollan como un medio para permitir la creación y el uso rápidos de aplicaciones de trabajo que pueden abordar los procesos específicos y las necesidades de datos de la organización.

Low-code es una forma en que los desarrolladores pueden hacer más. Con low-code, pueden dedicar más tiempo a crear y construir y menos tiempo al trabajo repetitivo. Claro, es divertido aprender el último workframe de JavaScript caprichoso o jugar con un almacén de datos NoSQL de vanguardia, pero mientras pasa tiempo depurando código desconocido, su competidor tiene un MVP frente a los clientes.

Proceso de trabajo con Low-Code:

Existen muchas razones para usar el enfoque low code. Las principales ventajas de este método de desarrollo se pueden resumir de la siguiente manera:

  • Velocidad: puesto que el desarrollo low code no requiere apenas programación manual, los prototipos y las aplicaciones completas se desarrollan más rápidamente, lo cual también aumenta la eficiencia de los programadores profesionales, que pueden así centrar su atención en las funciones esenciales en lugar de tener que buscar fallos en el código.
  • Sencillez: la simplicidad de su uso permite a los usuarios familiarizarse rápidamente con el proceso sin necesidad de muchos conocimientos previos. El código fuente, que convencionalmente debe ser escrito a mano, se genera automáticamente mediante una ordenación intuitiva de elementos. Las modificaciones también pueden implementarse fácilmente a posteriori.
  • Reducción de costes: un efecto directamente relacionado con el ahorro de tiempo es la reducción de costes. Los elementos visuales de las plataformas low code pueden reutilizarse y no necesitan ser redactados de nuevo cada vez. Gracias a la simplicidad de la aplicación, los trabajadores no necesitan costosos cursos para familiarizarse con ella.
  • Flexibilidad: las herramientas flexibles permiten publicar las aplicaciones desarrolladas en el entorno que se desee. Además, el sencillo manejo de las low-code platforms les otorga una gran adaptabilidad. De este modo, los desarrolladores pueden reaccionar rápidamente ante cambios como, por ejemplo, nuevas exigencias del mercado.
  • Mayor calidad: puesto que el desarrollo low code también está pensado para programadores amateurs, ofrece la posibilidad de integrar en él conocimientos especializados de diferentes ámbitos. De esta manera, expertos de diferentes disciplinas pueden actuar como citizen developers (desarrolladores no profesionales) para ayudar a encontrar soluciones creativas, favoreciendo así la entrada de ideas externas y aumentando la calidad del producto final.

Las preocupaciones sobre la seguridad y el cumplimiento de la plataforma de desarrollo de bajo código están aumentando, especialmente para las aplicaciones que usan datos de los consumidores. Puede haber preocupaciones sobre la seguridad de las aplicaciones creadas con tanta rapidez y la posible falta de una gobernanza debida que lleve a problemas de cumplimiento. Sin embargo, las aplicaciones de código bajo también impulsan las innovaciones de seguridad. Teniendo en cuenta el desarrollo continuo de aplicaciones, resulta más fácil crear flujos de trabajo de datos seguros.

Low code programming para Data Scientist: https://medium.com/low-code-for-advanced-data-science/low-code-for-advanced-data-science-a-new-journal-8bebee7ed619 

Lista de Visual Programming Languages: https://en.wikipedia.org/wiki/Visual_programming_language 

Low Code de Microsoft: powerapps

Appian, otra herramienta Low Code:

Las aplicaciones de Low Code van a ser fundamentales en la transformación digital.

Low code está enfocado a aplicaciones empresariales, aplicaciones móvil, webs, automatización, flujo de trabajo, etc… Un ejemplo de Low Code también es wordpress.

Low code permite colaborar entre IT y negocio o IT y producción/industrial

Tipos de aplicaciones de Low code:

  • Canvas – interfaces de usuario para visualizar y poder insertar datos
  • Model/Data Driven – aplicaciones enfocadas a datos
  • Aplicaciones Portal – Para usuarios externos, lo anterior es interno

Informe de Low Code: 

Paradigmas de programación de bajo código:

Más información:

Low Code para IoT

Para obtener el mayor valor de las soluciones de IoT en el sector industrial (o, de hecho, en cualquier contexto), las empresas necesitan soluciones de desarrollo de software que les permitan crear aplicaciones personalizadas adaptadas a sus casos de uso únicos de IoT de forma rápida y eficiente.

Es hora de liberar a TI de todas las tareas de desarrollo mundanas y crear un clima de colaboración tecnológica. Mediante el uso de código bajo, otras unidades de negocio están facultadas para colaborar como socios iguales con el departamento de TI para crear soluciones e implementarlas rápidamente, creando resiliencia y flexibilidad. Los equipos pueden pivotar bajo demanda sin esperar a que el departamento de TI llegue a cada proyecto pequeño, y el departamento de TI puede supervisar los resultados, especialmente cuando estos programas se implementan en toda la empresa.

Low code devuelve la tecnología a su lugar: creando valor para la empresa. A medida que los fabricantes se adaptan a la necesidad de información en tiempo real e innovación rápida, el código bajo podría ofrecer el compromiso que necesitan entre desarrollo y seguridad.

Más información:

Low Code Development Platforms

En lugar de la programación informática convencional codificada a mano, un marco de desarrollo de código bajo ofrece un entorno de programación para crear aplicaciones de software a través de interfaces gráficas de usuario y configuración. Los marcos de creación de bajo código brindan a los clientes de TI la capacidad de incorporar bloques de construcción en flujos de trabajo y aplicaciones. Estos elementos básicos abstraen el código detrás de las acciones y las órdenes, lo que permite a TI crear interfaces y aplicaciones comerciales sin tener que codificarlas a mano.

Según la última estimación de Gartner, Inc., la industria global de tecnologías de desarrollo de código bajo tendrá un valor de 13.800 millones de dólares en 2021, un 22,6 por ciento más que en 2020. A pesar de las continuas campañas de gestión de costes, el auge de la producción remota durante la pandemia de COVID-19 continuará impulsando la adopción de códigos bajos. Se prevé que se expandirá el crecimiento del código bajo como fenómeno social y técnico general. Se prevé que las plataformas de aplicaciones de código bajo (LCAP) seguirán siendo la mayor parte del mercado de tecnología de desarrollo de código bajo en 2022. Por ejemplo, ya ha aumentado un 30% desde 2020 y generó $ 5,8 mil millones en 2021.

Tipos de Low Code Platforms según Forrester:

  • General Purpose
  • Request Handling
  • Process
  • Mobile First
  • Database

Lista de Low Code Development Platforms: https://en.wikipedia.org/wiki/List_of_low-code_development_platforms 

Ejemplos de Low Code Development Platforms:

No-Code Development Platform

No-Code Development Platform: https://en.wikipedia.org/wiki/No-code_development_platform 

La diferencia básica entre Low-Code y No-Code es que el código bajo se dirige a los desarrolladores. Estos sistemas requieren habilidades tecnológicas pero permiten a los codificadores expertos trabajar más rápidamente. Para los codificadores, cuanto más eficientes sean las herramientas para acelerar el progreso tecnológico, mejor.

Por otro lado, no-code se dirige a los usuarios comerciales porque estas plataformas no permiten a los usuarios editar el código manualmente mientras se enfocan en proporcionar la interfaz más segura y fácil de usar posible al extraer información técnica. Cuanto más intuitiva sea la interfaz de usuario, mejor será para los usuarios empresariales.

Dado que están diseñados para construir una amplia gama de soluciones técnicas, los sistemas de código bajo necesitan algo de codificación. La codificación también es una parte vital del proceso de construcción para garantizar que el creador tenga el poder que necesita. Las plataformas sin código, por otro lado, abstraen toda la información tecnológica. Hace que las plataformas sin código sean aún más baratas y fáciles de usar, aunque solo están disponibles para algunos casos de uso.

Más información: https://www.forbes.com/sites/forbescommunicationscouncil/2021/05/07/low-code-versus-no-code-and-the-future-of-application-development/?sh=1249df3e3568

Versiones Node-RED

Node red pasó a la versión 1.x en septiembre de 2019 con cambios notables, veamos los cambios introducidos en Node-RED a lo largo de sus versiones.

Versiones node-red: https://github.com/node-red/node-red/releases

Novedades Node-Red 0.20: https://programarfacil.com/blog/raspberry-pi/novedades-node-red-0-20/

Salto de la 0.x a la 1.x explica las diferencias:

Version 1.0 (30/09/2019): https://nodered.org/blog/2019/09/30/version-1-0-released

Vídeo versión 1.0: https://www.youtube.com/watch?v=nIVBZQi18fQ&feature=youtu.be 

Versión 1.1 (30/06/2020): https://nodered.org/blog/2020/06/30/version-1-1-released

Version 1.2 (15/10/2020): https://nodered.org/blog/2020/10/15/version-1-2-released

Vídeo versión 1.2: https://www.youtube.com/watch?v=rnM5sfb2qoY 

Planes de releases: https://nodered.org/blog/2020/07/01/release-plans 

Releases: https://nodered.org/about/releases/ 

Planes de futuro: https://nodered.org/blog/2020/10/13/future-plans 

Vídeo de los creadores de Node-RED hablando del estado de Node-RED: https://openjsf.org/blog/2020/05/13/nodered-ama-recap/ 

Beta version 1.3 Node-RED: https://discourse.nodered.org/t/node-red-1-3-0-beta-1-released/41960

  • change log: https://github.com/node-red/node-red/blob/15715a296862bf9603facd45bf1a7ef17623890b/CHANGELOG.md
  • Uso de módulos npm en funciones. Al establecer functionExternalModules en verdadero en el archivo de configuración, podrá configurar sus nodos de función con una lista de módulos adicionales.
  • Ahora es posible anidar referencias a las propiedades del mensaje en los nodos change y switch. Ejemplo: set flow.rooms[msg.topic] to the value of msg.payload
  • Node-RED Plugins framework
  • Ahora es posible empaquetar un subflujo como un módulo y publicarlo en npm para instalarlo en la paleta como cualquier otro nodo.
  • El cuadro de diálogo Exportar ahora muestra una lista estructurada de lo que está exportando. El JSON sin formato aún se puede ver en una segunda pestaña del cuadro de diálogo.
  • Con esta versión, si pulsa Mayús y hace clic en el lado izquierdo del nodo, seleccionaremos todos los nodos ascendentes. Si pulsa Mayús y hace clic en el lado derecho, seleccionaremos todos los nodos de corriente abajo. Shift-clic en el centro del nodo seleccionará todo el flujo como antes.
  • Los nodos MQTT ahora son compatibles con MQTTv5 y la gran mayoría de las nuevas funciones que presenta la versión 5.

Versión 1.3 (08/04/2021): https://nodered.org/blog/2021/04/08/version-1-3-released

  • Mejorada la selección de nodos. Más información: https://github.com/node-red/node-red/pull/2877 
  • Hay un nuevo ajuste disponible que gobierna lo que puede ser instalado en Node-RED: externalModules. Esto cubre dos cosas separadas: qué nuevos nodos pueden ser instalados a través del gestor de paletas, y qué módulos pueden ser cargados por el nodo Function. Más información: https://github.com/node-red/node-red/pull/2797 
  • Los nodos MQTT ahora soportan MQTTv5 y la gran mayoría de las nuevas características que introduce v5.

Planning Node-RED 2.0: https://discourse.nodered.org/t/planning-for-node-red-2-0/41918

Versión 2.0 (Beta): https://discourse.nodered.org/t/node-red-2-0-0-beta-1-released/46990

Versión 2.0 (20/07/2021): https://nodered.org/blog/2021/07/20/version-2-0-released 

Version 2.1 (21/10/2021): https://nodered.org/blog/2021/10/21/version-2-1-released 

Qué es Node-RED

Node-RED es una herramienta de programación visual. Muestra visualmente las relaciones y funciones, y permite al usuario programar escribiendo muy pocas líneas de código. 

Node-RED es un editor de flujo basado en el navegador donde se puede añadir o eliminar nodos y conectarlos entre sí con el fin de hacer que se comuniquen entre ellos. La idea de Node-RED es que sea ‘low-code’.

Low-code programming for event-driven applications 

Web: https://nodered.org/ 

Paradigma de programación basada en flujo: https://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_flujo 

Razones para usar node-red: 

Sobre Node-RED: https://nodered.org/about/

Node-Red hace que el conectar los dispositivos de hardware, APIs y servicios en línea sea más fácil que nunca.

Node-red se ha convertido en el estándar open-source para la gestión y procesado de datos en tiempo real, logrando simplificar los procesos entre productores y consumidores de información.

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.

Node-RED es una herramienta muy potente que sirve para comunicar hardware y servicios de una forma muy rápida y sencilla. Simplifica enormemente la tarea de programar del lado del servidor gracias a la programación visual.

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.

Fue creada por Nick O’Leary y Dave Conway-Jones del grupo de Servicios de Tecnologías Emergentes de IBM en el año 2013. Su objetivo es dar solución a la complejidad que surge cuando queremos integrar nuestro hardware con otros servicios.

Su punto fuerte es la sencillez. Nos permite utilizar tecnologías complejas sin tener que profundizar hasta el más mínimo detalle en todas ellas. Nos quedamos en una capa inicial donde nos centramos en lo importante y dejamos de lado aquello que no es práctico.

Wikipedia: https://en.wikipedia.org/wiki/Node-RED 

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

Node-RED está creado a partir de NodeJS y la librería de JavaScript D3.js.

Node-Red se basa en Node.js. Para instalar el Node-Red, necesitas tener tanto Node.js instalado como NPM. Con NPM, es muy fácil instalar Node-Red: npm install -g node-red

NodeJS proporciona la potencia suficiente para que Node-RED sea fiable y escalable. NodeJS es un software muy potente que permite la programación en JavaScript del lado del servidor.

La estructura mínima son los nodos. Estos se arrastran a través de la interfaz gráfica y nos permiten hacer una tarea concreta. Recibir una llamada HTTP, un mensaje MQTT o la activación de un pulsador.

Todos estos nodos se organizan en flujos o flows que agrupan nodos que se conectan entre ellos. Todo de una forma visual, sin apenas tener que programar.

Node-RED es un motor de flujos con enfoque IoT, que permite definir gráficamente flujos de servicios, a través de protocolos estándares como REST, MQTT, Websocket, AMQP… además de ofrecer integración con APIs de terceros, tales como Twitter, Facebook, Yahoo!…

Se trata de una herramienta visual muy ligera, programada en NodeJS y que puede ejecutarse desde en dispositivos tan limitados como una Raspberry, hasta en plataformas complejas como IBM Bluemix, Azure IoT o Sofia2 Platform.

Node-RED es una herramienta de código abierto, estando disponible en github.

Repositorio: https://github.com/node-red/node-red

Una de las características más notables de Node-RED es la sencillez con la que se pueden crear nuevos nodos e instalarlos, en el siguiente enlace disponemos de toda la documentación necesaria: http://nodered.org/docs/creating-nodes/, en él, podemos ver que desarrollar un nuevo nodo es tan sencillo como crear un fichero HTML con el formulario de configuración mostrado en la imagen anterior para el nodo en concreto, y un fichero JS, con la lógica del nodo escrita en NodeJS.

De este modo, cualquier persona u organización puede crear sus propios nodos, adaptando el motor de flujo a las necesidades de su negocio.

Los flujos programados en Node-RED se almacenan internamente en formato JSON y son portables entre distintas instalaciones de Node-RED, siempre que el Node-RED de destino tenga instalados los nodos utilizados en el flujo.

De este modo un flujo Node-RED consiste en un fichero con este aspecto:

La facilidad de desarrollo de nuevos nodos, así como la portabilidad de los flujos, confieren a Node-RED un marcado enfoque social. Gran parte de su éxito se fundamenta en que los nodos y flujos desarrollados por una persona u organización, pueden ser aprovechados por otras. En este sentido, en el sitio oficial de Node-RED encontramos una sección de contribuciones de terceros, con más de 2900 nodos y flujos subidos por la comunidad y listos para utilizar.

Node-RED Library: https://flows.nodered.org 

Getting Started Node-RED: https://nodered.org/#get-started 

Comunidad Node-RED: https://nodered.org/#community 

Documentación Node-RED: https://nodered.org/docs/ 

En cuanto a cómo instalar Node-RED, existen dos alternativas:

  • Modo Standalone: Donde se ejecuta como un proceso NodeJS independiente del resto de procesos.
  • Modo Embebido: Donde forma parte de una aplicación mayor, de forma que es responsabilidad de esta controlar el ciclo de vida del propio Node-RED

Ambas instalaciones son securizables tanto a nivel control de acceso con usuario y contraseña, como con certificado SSL para acceder al editor por protocolo seguro HTTPS.

Asimismo dispone de un API Rest de administración y operación (http://nodered.org/docs/api/) de manera que puede interactuar y ser controlado por un sistema externo.

Estas características son las que hacen que Node-RED sea adecuado para ejecutarse casi en cualquier plataforma, ya que le dan la versatilidad de ser instalado tal cual, por ejemplo en una Raspberry. O poder ser administrado por un sistema mayor, como por ejemplo IBM Bluemix.

Instalación: https://nodered.org/docs/getting-started/ 

  • Localmente
  • En un dispositivo
  • En la nube

Guia de usuario: https://nodered.org/docs/user-guide/

Es posible instalar Node-RED en un portátil y controlar el broker desde el mismo.

Configuración node red: https://nodered.org/docs/configuration 

Node-RED con Arduino: https://nodered.org/docs/hardware/arduino 

API nodered: https://nodered.org/docs/api/ 

Dónde obtener ayuda de Node-RED:

Comunidad node red: https://nodered.org/about/community/ 

Más información:

Vídeo Introducción IoT: https://www.youtube.com/watch?time_continue=85&v=vYreeoCoQPI 

Curso IoT simatic (Siemens con Node red); http://www.infoplc.net/descargas/109-siemens/comunicaciones/2847-manual-simatic-iot2040-node-red 

Webinar Siemens y Node-RED: https://assets.new.siemens.com/siemens/assets/api/uuid:1c32c3de-4a78-4143-af7b-49422b471a82/webinar-simatic-iot-2040-2050.pdf