¿Qué es Node-RED?
Node-RED es una herramienta de desarrollo basada en flujos que permite conectar dispositivos y servicios de forma visual mediante un navegador web.
Creado originalmente por IBM, Node-RED está diseñado para facilitar la integración de servicios de IoT y automatización mediante una interfaz gráfica de arrastrar y soltar.
Node-RED permite crear nuestros “programas” mediante flujos de trabajo visuales a través una interfaz gráfica muy sencilla. Esto facilita la integración de diferentes servicios y dispositivos sin necesidad de escribir código extensivo.
Características principales de Node-RED,
- Interfaz Visual: Utiliza una interfaz gráfica basada en navegador para diseñar flujos de trabajo.
- Arrastrar y Soltar: Permite arrastrar nodos y conectarlos para definir la lógica del flujo.
- Integración: Soporta una amplia variedad de protocolos y servicios, como HTTP, MQTT, y más.
- Extensible: Ofrece una amplia gama de nodos para diferentes propósitos y permite la creación de nodos personalizados.
Para más información y recursos sobre Node-RED, puedes visitar la documentación oficial de Node-RED.
Instalación de Node-RED en Raspberry Pi
Para instalar Node-RED en nuestra Raspberry Pi, seguimos estos pasos. Como siempre, primero es recomendable actualizar los paquetes existentes en el sistema
sudo apt update
sudo apt upgrade
Luego, instalamos Node-RED utilizando el script de instalación oficial proporcionado por el proyecto. Ejecutamos el siguiente comando para descargar e instalar Node-RED:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Este script se encargará de instalar Node.js (si no está ya instalado) y Node-RED en nuestra Raspberry Pi.
Para que Node-RED se inicie automáticamente al arrancar la Raspberry Pi, ejecutamos el siguiente comando:
sudo systemctl enable nodered.service
Finalmente, podemos iniciar Node-RED con el siguiente comando:
node-red
Si quieres probar en un ordenador, puedes instalarlo simplemente consudo npm install -g --unsafe-perm node-red
Uso Básico de Node-RED
Una vez instalado, puedes acceder a la interfaz de usuario de Node-RED desde un navegador web en la dirección http://<IP-de-tu-Raspberry-Pi>:1880
. Aquí es donde construirás tus flujos de trabajo.
Para crear un flujo de trabajo en node-red, simplemente arrastramos los nodos que queremos utilizar desde la paleta de nodos en la izquierda de la pantalla y los conectamos entre sí.
Luego, podemos configurar cada nodo para que se adapte a nuestras necesidades específicas. Para ello hacemos click sobre él, y en la paleta de la derecha nos aparecerán las opciones disponibles.
Por ejemplo, si queremos leer el valor de un sensor y publicarlo en una red social, podríamos arrastrar un nodo de sensor, un nodo de publicación en redes sociales y conectarlos entre sí.
Luego, configuraríamos el nodo de sensor para leer el sensor específico que estemos utilizando y el nodo de publicación en redes sociales para conectarnos a nuestra cuenta de Twitter o Facebook.
Finalmente, una vez que hayamos creado nuestro flujo de trabajo podemos desplegarlo (ejecutarlo). Para ello hacemos clic en el botón “Deploy” para implementarlo y empezar a procesar datos.
También podemos acceder a los datos procesados y visualizarlos en gráficos y tablas utilizando los nodos de visualización disponibles en la paleta de nodos.
Ejemplo de Flujo de Trabajo
Vamos a crear un flujo simple que inyecte un mensaje y lo muestre en la consola de depuración:
- Arrastra un nodo “Inject”, este nodo nos permite introducir un texto
- Arrastra un nodo “Debug”, este nodo nos permite ver en la ventana Debug un texto
- Conecta el nodo “Inject” al nodo “Debug”
Este flujo simplemente usa un nodo Inject para generar un texto que enviamos a Debug para visualizarlo. Por defecto, si no cambiamos la configuración, el modo Inject simplemente genera un Timestamp (la hora actual).
Ahora le damos encendemos la pestaña de Debug y le damos al botón de “Deploy” para desplegar el flujo. Cuando activemos el nodo “TimeStamp” (pulsando en el cuadradito azul que tiene a la izquierda) veremos que el mensaje aparece en la pestaña de Debug.
Integración de dispositivos
Node-RED es está muy bien integrado con Raspberry PI ya puede acceder directamente a sus GPIO para realizar lecturas o generar salidas.
Para ello antes deberemos instalar la biblioteca de arboles de nodos Raspberry Pi GPIO para controlar los pines GPIO de la Raspberry Pi:
- Abre el menú de nodos y busca “node-red-node-pi-gpio”
- Haz clic en “Instalar” para añadir este nodo a tu instancia de Node-RED
Una vez instalado.
Añade un nodo “GPIO Output” a tu flujo
Configura el nodo “GPIO Output” para controlar un pin específico de la Raspberry Pi (por ejemplo, el pin GPIO 17)
Conecta el nodo “Inject” al nodo “GPIO Output”
Despliega el flujo
Ahora, cuando envíes un mensaje desde el nodo “Inject”, el pin GPIO 17 cambiará de estado, encendiendo o apagando un LED conectado a él.