Autor: Oscar Gonzalez
Tiempo de lectura: 21 minutos
En ésta guía aprenderás cómo instalar Node-RED en Raspberry Pi para automatizar procesos IoT con MQTT y Arduino ESP8266/ESP32
La instalación de Node-Red en Raspberry Pi no puede ser más sencilla, ya que los desarrolladores proporcionan un script que automatiza todo el proceso y garantiza que instales tanto la última versión disponible como sus dependencias.
Para eso, primero debemos conectar mediante SSH a nuestro servidor Raspberry Pi. Para eso usaremos el programa KiTTY, un cliente SSH gratuito y para Windows. Si utilizas Linux o MacOS, seguramente ya tengas el comando ssh instalado en tu sistema.
Hay muchos programas cliente SSH para Windows. Los dos más populares son KiTTY y PuTTY. Ambos los puedes descargar de forma gratuita.
Conexión SSH con PuTTY
Si has puesto un Hostname en la configuración de tu Raspberry Pi, deberías poder conectar por nombre directamente utilizando el puerto por defecto 22.
Si eso no funciona, debes conocer la dirección IP de la Raspberry Pi. Eso lo puedes saber entrando en tu router o bien con un escáner de puertos de red. Una vez hecho pulsamos el botón "Open" y podremos entrar con el usuario Pi y la contraseña que has establecido en la configuración.
Obtener la dirección IP de la Raspberry Pi desde el router depende del modelo de router que tengas. Suele haber algún tipo de lista de usuarios DHCP o algo similar. Desde ahí debes poder ver el dispositivo y su dirección IP.
Por fin llega la parte interesante y no puede ser más sencillo, ya que gracias a un simple comando podremos realizar todo el proceso de forma automática.
Pero antes, debemos preparar el sistema con los paquetes que necesita. Primero vamos a instalar las herramientas de compilación y el soporte Curl:
sudo apt install build-essential git curl
Se descargarán los paquetes necesarios y una vez hecho, podemos pasar a instalar Node-Red. En el momento de escribir éste tutorial, la versión más reciente de Node-Red es la 1.3.5.
Ejecutamos el siguiente comando:
sudo bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Éste comando realizará de forma automática las siguiente tareas:
Ahora puedes iniciar Node-red mediante diferentes comandos que podrás ejecutar desde la consola:
Por supuesto, lo que queremos es que se inicie automáticamente cuando tu Raspberry Pi se encienda. Para eso debemos iniciar el servicio en el arranque del sistema con el siguiente comando:
sudo systemctl enable nodered.service
¡Y ésto es todo! Ya tenemos node-Red instalado y funcionando. Ahora podremos acceder a su panel web mediante la dirección http://<hostname>:1880
En "hostname" debes indicar o bien el nombre de tu servidor o bien su dirección IP. Por ejemplo http://piserver.local:1880 o bien http://192.168.1.168:1880.
Ten en cuenta que tanto el nombre del servidor como la dirección IP del ejemplo depende de la propia configuración de tu Raspberry Pi y de tu red.
Si no quieres complicarte con una Raspberry Pi o simplemente quieres probar el sistema Node-Red con Mosquitto, existe también la posibilidad de usar una imagen de Docker.
¡Si has seguido los pasos anteriores, no necesitas hacer esto!
Solo es una opción más para usar node-red con Mosquitto por si no tienes acceso a una Raspberry Pi.
Por si no lo conoces, Docker es un sistema de virtualización basado en contenedores y que te permite montar un sistema rápidamente. Debes primero instalar Docker desde su web y luego ejecutar unos comandos que veremos a continuación.
Docker funciona con ficheros de configuración (entre otras muchas cosas) donde se define los servicios que queremos levantar. Esos ficheros generalmente tienen la extensión .yml. Nosotros crearemos uno propio, por lo tanto elije un directorio cualquier en tu equipo y crea un nuevo archivo llamado node-red-mosquitto.yml.
En ese archivo, pega el siguiente bloque con un editor de texto:
services:
node-red:
image: nodered/node-red:latest
restart: unless-stopped
environment:
- TZ=Europe/Madrid
networks:
- node-red-net
ports:
- "1880:1880"
volumes:
- node-red-data:/data
MQTTbroker:
image: eclipse-mosquitto:1.6.13
restart: unless-stopped
networks:
- node-red-net
volumes:
node-red-data:
networks:
node-red-net:
ahora, desde el mismo directorio donde se encuentra el archivo, podemos lanzar el servicio con:
docker-compose up -d
Si todo ha sido bien, Docker levantará los servicios y veremos en la consola el resultado de la operación.
Resultado de la consola
Para acceder a node-red, abriremos un navegador y pondremos: