En el siguiente enlace se muestra paso a paso como instalar Node Red y Mosquitto en una Raspberry Pi Zero, que es muy económica y cumple perfectamente con el cometido. Todo ello sin necesidad de cables ni ningún tipo de conector.
Si deseas realizar el proceso en una Raspberry Pi 3, 4, etc., el proceso es similar, aunque se suele hacer con cable ethernet. Se irá documentando, aunque hay multitud de tutoriales sencillos de seguir por internet. En el siguiente vídeo se muestra todo el proceso. Los comandos también se incluyen en el tutorial en texto en el resto del artículo.
Node Red y Mosquitto en Raspberry #
Presentamos aquí la idea o proyecto de combinar el trabajo entre raspberry y Esp32, inicialmente, ya que podremos añadir multitud de dispositivos, tanto domóticos como industriales.
Raspberry nos permite utilizar Node – red, que a su vez posibilita trabajar con varios servidores (brokers) mqtt. Esto significa que podemos trabajar con un gran volumen de datos en un servidor en nuestro domicilio (también en local e instalado también en la propia raspberry), como por ejemplo Mosquitto, y además, sacar ciertos datos de especial interés al exterior, o igualmente, recibir ciertos datos u órdenes, desde el exterior, es decir en remoto.
Por tanto, ya para este proyecto ejemplo, vamos a trabajar inicialmente con dos servidcores mqtt. Uno local, Mosquitto, y otro remoto, en su versión gratuita: io.adadruit.
Intalación del sistema operativo #
Se va a instalar un sistema operativo de línea de comandos (no gráfico) para ahorrar potencia en el dispositivo, aunque no sería necesario. Se verán otros tutoriales realizando el proceso de forma mas “amable” y gráfica.
Acudimos a la web oficial: https://www.raspberrypi.com/software/
Y tras descargar el grabador de imagen propio de Raspberry Pi, introducimos una tarjeta SD en el PC, ya sea directamente si tiene ranura para ello o mediante un adaptador.
Conexión desde un pc #
Con la tarjeta ya preparada, conectada y la placa encendida, descargamos el programa “putty”, y tras instalarlo y abrirlo, ya se pueden introducir los datos de la raspberry para conectar con ella y meto el nombre (raspberrypi), y le doy a aceptar al mensaje de peligro. Luego meto ya en consola de nuevo el nombre (raspberrypi) y tras esto, la contraseña (raspberry)
Si no es capaz de localizar la placa con el nombre anterior, se puede buscar la IP que le ha asignado el rúter y entrar con ella. Un programa para eso puede ser «ip advance scanner».
Y ahora introducimos nuevamente el nombre de la placa, hacemos intro, y tras esto, la clave.
Cuidado porque al introducir la clave no aparecen caracteres ni se mueve el cursor, lo que resulta poco intuitivo y en ocasiones parece que no se está haciendo nada, pero tras meter la clave, hacer clic en intro.
Y ya tenemos acceso a la placa:
Instalación de node-red #
Fuente principal: https://nodered.org/docs/getting-started/raspberrypi
Se trabaja con comandos, lo que puede resultar diferente al principio, pero es muy fácil y rápido si se hace paso por paso. Simplemente copia el comando y haz clic derecho sobre la consola de raspberry para que se pegue. Luego, intro.
- Con esta línea habilitamos la descarga de software de git:
sudo apt install build-essential git curl
- Y con la siguiente, la instalación de node-red
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Al finalizar la instalación pregunta si se quieren configurar parámetros mas concretos, pero de momento no se va a realizar este proceso.
Antes de abrir el programa, necesitamos saber la IP de la raspberry, para poder acceder a node-red desde otro PC. Desde la propia raspberry podríamos acceder con la dirección típica 127.0.0.0: :1880, pero es algo que aquí no tiene lugar.
- Consulta la ip de la raspberry con el comando:
hostname -I
Anota la IP que aparezca en pantalla. Como ejemplo vamos a tomar 192.168.1.58
- Para abrir node red, introduce el siguiente comando:
node-red
- La dirección para el ejemplo anterior, una vez abierto node red, será 192.168.1.58:1880. Si pones la dirección en un navegador de un ordenador, accederás al node red que está ejecutando raspberry.
- Con la tecla Ctrl+C salimos de Node red.
- Si se quiere que node red se encienda por defecto cada vez que se enciende la raspberry, entonces introduce el siguiente comando:
sudo systemctl enable nodered.service
- Si quieres desactivar lo anterior, simplemente introduce el siguiente comando:
sudo systemctl disable nodered.service
Instalación del servidor MQTT Mosquitto #
Fuente principal: https://randomnerdtutorials.com/how-to-install-mosquitto-broker-on-raspberry-pi/
Cuando se va a instalar algo nuevo en Raspberry, primero conviene comprobar si hay actualizaciones del sistema e instalarlas. Aunque este paso puede ser evitable si te lo acabas de instalar. Los comandos son:
sudo apt update
y a continuación:
sudo apt upgrade
- Para instalar mosquitto, solo hay que ejecutar lo siguiente:
sudo apt install -y mosquitto mosquitto-clients
- Para que se abra automáticamente al arrancar la placa:
sudo systemctl enable mosquitto.service
- Para testear si el servidor está activo:
mosquitto -v
Finalmente, hay que abrir Mosquitto para que pueda accederse sin usuario ni contraseña. Para ello:
Si todo ha ido bien, aparecerá que los puertos están abiertos y ocupados.
- Se ha de abrir el archivo mosquitto.conf como se hace al trabajar desde Windows. Introduce el siguiente comando:
sudo nano /etc/mosquitto/mosquitto.conf
- A continuación, muévete al final de la pantalla con las flechas del teclado, para llegar al final del documento y pegar las siguientes dos líneaqs:
listener 1883
allow_anonymous true
Y para guardar y cerrar, pulsar CTRL-X. Al presionar la tecla Y and darle a Enter, el proceso habrá finalizado.
- No olvides reiniciar mosquito para que entre en funcionamiento con los cambios aplicados. Lo puedes hacer mediante el comando:
sudo systemctl restart mosquitto