Hablando ModBus con NODE-RED en una Raspberry PI: Parte 1

blog-image

Hablando ModBus con NODE-RED en una Raspberry PI

Para la instalación de Node-Red en una Raspberry, lo primero sera configurarla.

Para ello utilizaremos una version lite de Raspbian, para que sea más ligero el sistema y activaremos tambien el servicio SSH para la administración remota. También configuraremos el firewall para el uso de Node-Red.

 

Instalación de Raspbian en la Raspberry PI

Primero se ha de copiar la imagen en la tarjeta SD. Para ello descargamos la imagen de Raspbian lite (sin escritorio) [downloads.raspberrypi.org/raspbian_lite_latest]

La copiamos en la SD mediante el comando dd

dd if=/path/a/la/imagen of=/path/a/la/sd

o si utilizamos Windows se puede hacer con Etcher (etcher.io).

Una vez copiado el sistema, se coloca la tarjeta en la Raspberry y se alimenta.

 

Configurar internet

Para poder continuar, es necesario configurar internet. Para ello se puede o bien conectar el cable ethernet o bien mediante WiFi.

Para poder conectarse a una red WiFi habrá que editar el archivo localizado en /etc/wpa_supplicant/wpa_supplicant.conf y añadir las siguientes líneas al final del fichero:

network={

  ssid="SSID"

  psk="WiFiPass"

}

Guardado el fichero, reiniciamos la Raspberry para forzar la conexión con sudo reboot.

Para comprobar que se ha conectado a la red wifi utilizamos ifconfig wlan0. Si aparece una IP es que está todo correcto.

Actualizar Raspbian

El siguiente paso es actualizar los paquetes de Raspbian.

sudo apt update

sudo apt upgrade

Instalar Node-Red

Nodered viene preinstalado en la imagen de Raspbian, pero es necesario actualizarlo. Para ello utilizamos el siguiente comando:

bash <(curl -sL raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

Aparecerá un texto de confirmación y habra que confirmar la acción.

Instalación del módulo de ModBus

Modbus es un protocolo industrial ampliamente extendido. En siguientes tutoriales, explicaremos como usar Node-Red con ModBus, por lo que necesitaremos instalarlo.

cd ~/.node-red/

npm install node-red-contrib-modbustcp

Configuraciones adicionales

Para finalizar, hacemos que el servicio se arranque en el inicio con el siguiente comando:

sudo systemctl enable nodered.service

Para arrancar y parar el servicio manualmente se utilizan los siguiente comandos:

node-red-start

node-red-stop

Para poder acceder a la interfaz web es necesario abrir el puerto 1880, lo cual se hace mediante este comando:

iptables -I INPUT -p tcp --dport 1880 -j ACCEPT

Si se reinicia la Raspberry el puerto estará cerrado de nuevo, para tenerlo siempre abierto utilizamos los siguientes comandos:

Colocamos una copia de los ajustes actuales (una vez ejecutado el comando anterior) en /etc/firewall.conf :

iptables-save > /etc/firewall.conf

Creamos y editamos el archivo iptables en /etc/network/if-up.d/iptables y colocamos el siguiente codigo:``

#!/bin/sh 
iptables-restore < /etc/firewall.conf

Una vez guardado, se le hace ejectutable:

chmod +x /etc/network/if-up.d/iptables

Ahora cuando se inicien los scripts de red, las reglas quedaran activadas.

Si es necesario añadir mas reglas, se pueden editar en vivo y almacenarlas de nuevo con el comando :

iptables-save > /etc/firewall.conf

Si se requiere administrar la Raspberry en remoto es necesario activar el servicio ssh. Si se quiere activar en el inicio el comando es el siguiente:

sudo systemctl enable ssh.service

Resultado final

Finalmente, para acceder a la interfaz web, tan sólo hay que entrar mediante la IP de la Raspberry por el puerto 1880.

Conclusiones

La configuración de Node-Red en una Raspberry PI es extremadamente sencillo, y realmente, lo descrito en este post es una de las múltiples configuraciones posibles, aun que para mí, la más ligera.

Iñaki Amorrortu