Correo: [email protected] - Teléfono: +56979962128

Node-RED es una potente herramienta de código abierto para la programación visual con el fin de crear aplicaciones de Internet de las cosas (IoT). En este tutorial, cubriremos qué es Node-RED, cómo instalarlo y cómo usar la interfaz visual para crear un esquema simple.

 
Getting Started with Node-RED on Raspberry Pi
 

Prerrequisitos 

Suponemos que estáS familiarizado con la Raspberry Pi, sabeS cómo instalar el sistema operativo y cómo establecer una conexión SSH con su Pi.

¿Qué es Node-RED? 

Node-RED

es una potente herramienta de código abierto para crear aplicaciones de Internet de las cosas (IoT) con el objetivo de simplificar el componente de programación.

Node-RED se ejecuta en el navegador web y utiliza una programación visual que le permite conectar bloques de código, conocidos como

nodos

, para realizar una tarea. Los nodos, cuando se conectan entre sí, se denominan

flujos(flows)

. 

node-red overview
 

¿Por qué Node-RED es una gran solución? 

  • Node-RED es de código abierto y desarrollado por IBM. 
  • La Raspberry Pi ejecuta Node-RED perfectamente. 
  • Es una herramienta de programación visual, lo que la hace más accesible a una gama más amplia de usuarios. 
  • Con Node-RED puedes dedicar más tiempo a crear cosas interesantes, en lugar de pasar incontables horas escribiendo código.

¿Qué se puede hacer con Node-RED? 

Node-RED hace que sea fácil:

  • Acceder a sus GPIO de RPi 
  • Establecer una conexión MQTT con otros dispositivos (Arduino, ESP8266, ESP32 etcetera)
  • Crea una interfaz gráfica de usuario receptiva para sus proyectos
  • Comunicar con servicios de terceros (IFTTT.com, Adafruit.io, ThingSpeak, Home Assistant, InfluxDB etcetera)
  • Recuperar datos de la web (pronóstico del tiempo, precios de acciones, correos electrónicos, etcétera)
  • Crear eventos desencadenados por el tiempo
  • Almacene y recupere datos de una base de datos. 

Aquí hay una biblioteca con algunos

ejemplos de flujos y nodos

para Node-RED.

Instalación de Node-RED en Raspberry Pi 

Una vez establecida una

conexión SSH con tu Raspberry Pi

, introduce lo siguiente para instalar Node-RED:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered) 

Node-RED se instala de forma predeterminada en el sistema operativo Raspberry Pi (32 bits). Sin embargo, se recomienda ejecutar el comando anterior para instalar los paquetes necesarios y actualizarlo a la versión más reciente. Recibirás un mensaje informándote sobre esto. Pulse

Y

y luego pulse

Enter

para aceptar.

Node-RED no se instala de forma predeterminada en el sistema operativo Raspberry Pi (64 bits).

A continuación, se te preguntará: “¿Le gustaría instalar nodos específicos de Pi?” Presiona

Y

y luego

Enter

.

La instalación de Node-RED tardará unos minutos. Al final, debería recibir un mensaje similar en la ventana de la Terminal:

 
Installing Node-RED on Raspberry Pi
 

Configurar los ajustes de Node-RED      

Después de la instalación, se recomienda configurar las opciones y los ajustes iniciales. Ejecuta el siguiente comando:

node-red admin init
Configure Node-RED Settings
 
  • Presione Enter para crear un archivo de configuración de Node-RED en /home/pi/.node-red/settings.js 
  • ¿Desea configurar la seguridad del usuario? Y(si). 
  • Ingrese un nombre de usuario y presione Enter (debe recordarlo más tarde). 
  • Introduzca una contraseña y pulse Enter(debe recordarla más tarde). 
  • A continuación, debe definir los permisos de usuario. Estableceremos el acceso completo, asegúrese de que la opción de acceso completo esté resaltada en azul y presione Enter. 
  • Puede agregar otros usuarios con diferentes permisos si lo desea. Por ahora, solo crearemos un usuario. Siempre puede agregar otros usuarios más adelante. 
  • ¿Desea habilitar la función Proyectos? No. 
  • Introduzca un nombre para el archivo de flujos.  
  • Pulse Enter para seleccionar el nombre predeterminado flows.json. 
  • Proporcione una frase de contraseña para cifrar el archivo de credenciales. Obtén más información sobre qué es una frase de contraseña. 
  • Seleccione un tema para el editor. Basta con pulsar Enter ara seleccionar el valor predeterminado. 
  • Pulse Enter de nuevo para seleccionar el editor de texto predeterminado. 
  • ¿Permitir que los nodos de función carguen módulos externos? Y(si). 
  • La configuración de Node-RED se ha realizado correctamente. Se guardan todos los ajustes on settings.js. 

 Inicio de Node-RED 

Ejecute el siguiente comando para iniciar Node-RED:

Debería recibir un mensaje similar en la Terminal: 

node-red-start
Deberías tener el siguiente mensaje:
Node-RED start Terminal Window
   

Inicio Automático de  Node-RED en el arranque 

Para ejecutar automáticamente Node-RED cuando se inicia la tarjeta raspberry Pi, debe ingresar el siguiente comando. Esto significa que mientras su Raspberry Pi esté encendida, Node-RED estará funcionando. 

sudo systemctl enable nodered.service

Ahora, reinicia tu Pi para que el inicio automático surta efecto. La próxima vez que se reinicie la Raspberry Pi, Node-RED ya estará funcionando.

sudo reboot

Si, más adelante, desea deshabilitar el inicio automático en el arranque, puede ejecutar: 

sudo systemctl disable nodered.service

Para obtener más información sobre el proceso de instalación, consulte la

documentación oficial

.

Acceso a Node-RED 

Node-RED se ejecuta en el puerto 1880. Para acceder a Node-RED, abra un navegador y escriba la dirección IP de Raspberry Pi seguida de :1880. Por ejemplo:

192.164.1.106:1880  

Para obtener la dirección IP de tu Raspberry Pi, puedes ejecutar el siguiente comando: 

hostname -I

Get Raspberry Pi IP Address 

Después de ingresar la dirección IP de Raspberry Pi seguida de :1880 en el navegador web, obtendrá acceso a la página de inicio de sesión de Node-RED. Inicie sesión con el nombre de usuario y la contraseña que ha establecido anteriormente.

Node-RED Login Page

Ahora, tiene acceso a Node-RED. Puede empezar a crear sus flujos.

Node-RED Welcome Screen
 

Descripción general de Node-RED 

Echemos un vistazo a la interfaz visual de Node-RED.

Node-RED Visual Interface

Secciones principales de la interfaz Node-RED 

La siguiente imagen muestra las secciones principales de Node-RED etiquetadas.

Node-RED Overview
 

Nodos 

En la barra lateral izquierda, puedes ver una lista con un montón de bloques. Estos bloques se

denominan nodos

y están separados por su funcionalidad. Si selecciona un nodo, puede ver cómo funciona en la pestaña

de documentación de nodos

.

Los nodos tienen puertos de entrada y/o salida para recibir y enviar información a otros nodos. Por ejemplo, un nodo recibe una entrada de un nodo anterior, procesa esa información y envía un mensaje diferente a otro nodo que hará algo con esa información. La información que se pasa entre los nodos se denomina

mensaje(message)

.

Flow(Flujo) 

Los nodos son los componentes básicos de un

flujo(Flow)

. Los nodos se conectan entre sí para crear un flujo que realizará una tarea determinada. Un

flujo (Flow)

.También es una pestaña en el espacio de trabajo donde se colocan y organizan los nodos.

En el centro, tienes el

Flow

y aquí es donde colocas los nodos.

Barra lateral derecha 

La barra lateral de la derecha tiene varias herramientas.

  • Information: muestra información sobre los flujos; 
  • Help: muestra la documentación de los nodos; 
  • Debug: el icono de error abre una ventana de depuración que muestra los mensajes pasados a los nodos de depuración, es útil para fines de depuración; 
  • Config nodes: El icono de engranaje muestra información sobre los nodos de configuración. Los nodos de configuración no aparecen en el espacio de trabajo principal y son nodos especiales que contienen configuraciones reutilizables que pueden ser compartidas por varios nodos en un flujo. 

Deploy 

El deploy guarda todos los cambios realizados en el flujo (Flow) y comienza a ejecutarlo.

 

Creación de un simple archivo de flujo(Flow) 

Para que te acostumbres a la interfaz de Node-RED, vamos a crear un flujo sencillo. El flujo que crearemos, simplemente imprime un mensaje en la consola de depuración, cuando se activa.

Arrastre un

nodo de

inserción y un

nodo de depuración al flujo y conéctelos.
Node-RED debug flow

Ahora, editemos el nodo de inyección. Haga doble clic en el nodo. En la siguiente figura, puede ver las diferentes configuraciones que puede cambiar.

En el  campo

msg.payload

, seleccione string y escriba

Hello

. A continuación, haga clic en

Done

. 

Node-RED Edit Inject Node

Los mensajes (

msg

) en Node-RED son objetos javascript que pueden tener varias propiedades. El payload (

carga útil)

es la propiedad predeterminada con la que trabajan la mayoría de los nodos. Puede pensar en él como el contenido principal del mensaje que desea enviar al siguiente nodo. En nuestro caso, simplemente estamos enviando un mensaje de texto.

No editaremos el nodo de depuración, pero puede hacer doble clic en él para verificar sus propiedades. 

Node-RED debug node 

Puede seleccionar la salida del nodo de depuración, que es

msg.payload

y donde queremos enviar esa salida. En nuestro caso, queremos enviarlo a la ventana de depuración.

Para guardar su aplicación, debe hacer clic en el botón

Deploy

en la esquina superior derecha.

Node-RED deploy button

La aplicación se ha guardado.

Probando el Flow (flujo) 

Probemos nuestro flujo simple. Abra la ventana de

debug

y haga clic en el nodo de inyección para activar el flujo.

Node-RED Hello World Example

Como puede ver, nuestro mensaje se imprime en la ventana de

debug

cuando activa el nodo de inyección. Este es un ejemplo muy básico y no hace nada útil. Sin embargo, el propósito de esta publicación es familiarizarlo con la interfaz Node-RED. En poco tiempo, comenzarás a crear tus propios flujos.

Exportación e importación de nodos 

En esta sección, aprenderá a guardar los nodos. Esto es útil si necesitas:

  • Copia de seguridad de su flujo de Node-RED 
  • Mover tu flujo a otra Raspberry Pi (o máquina) 
  • Comparte tu proyecto Node-RED con otras personas 

 Abra el menú principal y seleccione la

opción Exportar

.

Node-RED export nodes

Se abre una nueva ventana. Puede seleccionar si desea guardar los nodos seleccionados, el flujo actual o todos los flujos. También puede descargar los nodos como un archivo JSON o copiar el JSON en el portapapeles.

Node-RED export nodes window
 

Para mostrarle cómo funciona, haga clic en Descargar

para

los nodos seleccionados. Descargará un archivo JSON llamado

flows.json

.

Puedes importar esos nodos posteriormente a otra Raspberry Pi u otra máquina con Node-RED instalado, yendo al menú principal y seleccionando la opción

Importar

.

En la ventana

Importar nodos

, puede cargar un archivo JSON o pegar JSON sin procesar.

Import flow Node-RED
   

Instalación de nodos Pallete 

Como hemos visto anteriormente, Node-RED viene con un montón de nodos preinstalados en el Pallete (barra lateral izquierda). Hay muchos más nodos disponibles que puede instalar y usar para sus proyectos. Puedes encontrarlos en la

biblioteca de Node-RED

. Si necesitas alguna tarea específica para tu proyecto, probablemente ya haya un nodo para eso.

Por ejemplo, si necesita agregar la función para enviar un correo electrónico a, puede buscar en Google algo como esto: “enviar nodo de correo electrónico-nodo rojo”. Uno de los primeros resultados de búsqueda es esta página con el

nodo-red-node-email

. Viene con algunos nodos para enviar y recibir correos electrónicos.

Si quieres instalar esos nodos (o cualquier otro nodo) para poder utilizarlos en tu flujo, ve al menú principal y selecciona la opción

Manage pallete

.

Node-RED manage palette

Se abrirá la siguiente ventana. Seleccione la pestaña de instalación y busque los nodos que desea instalar, por ejemplo,

node-red-node-email

.

Install Node-RED Nodes
 

Dashboard de Node-RED 

Node-RED Dashboard es un módulo que proporciona un conjunto de nodos en Node-RED para crear rápidamente un panel de datos en vivo. Puede instalar esos nodos mediante el

menu

>

Manage Pallete

. A continuación, busque

node-red-dashboard

e instálelo.

Install Node-RED dashboard palette

Después de la instalación, los nodos del panel de control aparecerán en la paleta.

Node-RED dashboard nodes 

Los nodos de la sección del panel proporcionan widgets que se muestran en la interfaz de usuario (UI) de la aplicación. Se puede acceder a la interfaz de usuario en la siguiente URL:

http://Your_RPi_IP_address:1880/ui  
 

Por ejemplo, en mi caso:

http://192.168.1.106:1880/ui  
welcome node-red dashboard

Por el momento, verás la pantalla anterior cuando accedas a la interfaz de usuario. Esto se debe a que no ha agregado ninguno de esos nodos de panel al flujo. No cubriremos cómo crear una interfaz de usuario de panel en este tutorial.

Finalizando 

Este tutorial es una guía rápida de introducción a Node-RED. Aquí Aprendió cómo instalar Node-RED en una Raspberry Pi, cómo crear un flujo simple, importar y exportar nodos, instalar nodos e instalar el panel de control de Node-RED.

 

Aprende esto en un curso

Si prefieres verlo en vivo y con alguien que resuelva tus dudas, estos cursos presenciales de MCI Educación cubren el tema de este tutorial: