En este artículo veremos cómo empezar a usar Node-Red en una computadora Raspberry Pi. Si no conoces Node-Red, te invito a ver este otro artículo, donde cuento de qué se trata.
Qué es Node-Red y para qué sirve
Instalando Node-Red
En principio vamos a necesitar instalar los paquetes de software si es que no venían por defecto en la imagen que estamos utilizando.
Hay varias maneras de instalar Node-Red en Raspbian (el sistema operativo de Raspberry Pi). En esta oportunidad usaremos el repositorio de paquetes de Raspbian, ya que hace ya tiempo que Node-Red fue incluido en este.
Ejecutamos en la consola:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nodered
Esto instalará Node-Red y todas las dependencias.
Ejecutando Node-Red
Una vez instalado, podemos ejecutarlo desde la consola usando el comando
node-red
Esto ejecutará node-red como aplicación, por lo que si hacemos ctrl+c o cerramos la ventana de la consola, inmediatamente se detendrá.
Generalmente se desea que Node-Red corra como servicio, para evitar que la aplicación se cierre cuando cerramos la consola. Además, al correr como servicio se puede gestionar de una manera mucho más confiable y eficiente.
Correr Node-Red como servicio es tan fácil como ejecutar el siguiente comando
sudo node-red-start
Para detener el servicio usamos
sudo node-red-stop
Y para reiniciarlo
sudo node-red-restart
Para hacer que Node-Red se inicie cada vez que arranca nuestra Raspberry, ejecutamos el siguiente comando.
sudo systemctl enable nodered.service
Accediendo a Node-Red
Una vez que el Node-Red está arriba, ya sea como servicio o como aplicación, podemos acceder a él mediante la interfaz web apuntando nuestro navegador a la siguiente url.
http://<ip de la raspberry>:1880
En caso que estemos accediendo a Node-Red desde la misma Raspberry, podemos usar:
http://localhost:1880
Armando nuestra primer aplicación
Ahora realicemos nuestros primeros pasos para usar Node-Red en Raspberry Pi.
Primero vamos a agregar dos nodos de la paleta de la izquierda al área de trabajo. Estos nodos son inject y debug.
Para esto solo tenemos que seleccionar al nodo correspondiente y arrastralo hasta el área de trabajo, que por defecto se llama Flow 1.

Una vez que los nodos están incorporados, los conectamos haciendo click en la salida del nodo inject, llevando la otra punta de la conexión a la entrada del nodo debug.
Luego de conectar los nodos debemos hacer un deploy, lo que equivale a enviar el código al servidor, en este caso nuestra Raspberry. Para esto hacemos click en el botón rojo que dice Deploy, como no podía ser de otra manera :>).
Ahora nuestro proyecto ya está listo para usarse. Para verificar el funcionamiento hacemos click en el botón de entrada del nodo inject. Esto generará un mensaje de salida en este nodo, que será transmitido a la entrada del nodo debug.
El mensaje por defecto es la marca de tiempo del momento en que se presione el botón. Obviamente este mensaje se puede modificar en la configuración del nodo o agregando algún otro nodo en el medio. Esto lo haremos en el siguiente paso.
Cada vez que hagamos click en este botón, veremos cómo aparecen los mensajes en la pestaña debug, tal como se muestra el la figura.

Agregando una función Javascript
Agreguemos ahora un bloque de función para modificar el mensaje. Para esto seleccionamos un bloque function de la paleta y lo arrastramos al espacio de trabajo. Luego lo conectamos entre los nodos inject y debug.

Haciendo doble click en el nodo function abrimos la configuración del nodo. Dentro del nodo copiamos y pegamos el siguiente código.
// Create a Date object from the payload
var date = new Date(msg.payload);
// Change the payload to be a formatted Date string
msg.payload = date.toString();
// Return the message so it can be sent on
return msg;

Este código tomará el mensaje que viene del nodo inject y le dará formato para que lo muestre como fecha. Una vez copiado el código, hacemos click en el botón Done y luego volvemos a hacer Deploy, ya que hemos modificado el código y tenemos que enviarlo de nuevo al servidor Node.
Ahora cada vez que hacemos click en el botón del nodo inject, veremos que en la solapa de debug aparece un mensaje con la fecha y el tiempo actual.

Hasta aquí aprendimos la operación básica de Node-Red, pero las capacidades de este software son muy amplias. Usando Node-Red podemos crear interacciones entre sensores, servicios, bases de datos, gráficas, etc.
Si te gustó esta introducción a Node-Red no dejes de compartir este artículo. También te invito a hacer tus comentarios o consultas en el área de comentarios.
0 comentarios