viernes, 25 de enero de 2019

Servidor Web con Raspberry Pi y Arduino (III)


Tercera entrada de la serie, vamos a instalar las herramientas para realizar la conexión entre Arduino y Raspberry, grabando los datos recibidos en nuestra base de datos. Son los siguientes:


Comenzamos instalando Node.js y npm, lo realizamos según la guía oficial, abrimos una consola y tecleamos:

# curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -

Este comando nos actualiza la lista de repositorios

# sudo apt-get install -y nodejs

para comprobar la instalación, tecleamos:

# node -v
# npm -v

Estos dos comandos nos devolverá la versión instalada de cada uno de los paquetes.
Una vez instalado Node.js y npm, continuamos con la instalación de Node-Red.
Se trata de una herramienta de programación, especifica para el IoT, desarrollada por IBM, su editor esta basado en web y no es necesario un conocimiento de programación, todo se realiza mediante lo que llama "nodos" y basta con arrástralos definir algunas propiedades y conectarlos.
Para instalar Node-Red en Raspberry Pi seguimos los pasos siguientes:

Abrimos una consola y tecleamos

# sudo apt-get install npm && sudo npm i -g npm
# bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

Para instalar los "Flows" (modulos) necesarios, debemos buscar el acceso directo que nos ha creado en el apartado de "Programación" "Node-red" o bien en una consola tecleamos:

# node-red-start

podemos hacer que Node-Red arranque automaticamente al iniciar nuestro sistema con el comando:

# sudo systemctl enable nodered.service

Cuando termina la carga, abrimos ventana del navegador y escribimos la dirección:

http://localhost:1880 (desde navegador local)
http://ip_de _nuestra_raspberry:1880 (desde otra maquina)

nos mostrara la siguiente ventana


Accedemos al menú, (tres rayas, arriba a la derecha)
y vamos a la opción "Manage Palette"
seleccionamos la pestaña "Install"
y buscamos, cada uno de los siguientes nodos, procediendo a instalarlos de uno en uno:

Tambien podemos instalarlos de forma manual según los pasos descritos en la web de cada uno de ellos.
abrimos consola

# cd ~/.node-red

# npm install node-red-node-mysql
# npm install node-red-dashboard
# npm install node-red-contrib-moment

Esta instalación nos creara nuevos nodos en la columna correspondiente en la parte izquierda de la ventana.

Para poder comunicar Arduino y Raspberry Pi vamos a utilizar el protocolo MQTT y en concreto, vamos a utilizar el "intermediario" o "Broker"  Mosquitto.
Abrimos consola y tecleamos los siguientes comandos:

# sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

cargamos el repositorio

# sudo apt-key add mosquitto-repo.gpg.key

Obtenemos la "Key"

# cd /etc/apt/sources.list.d/
# sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list 
# sudo apt-get update

Añadimos la a la lista de paquetes y actualizamos

  # sudo apt-get install mosquitto mosquitto-clients

Instalamos Mosquitto y sus herramientas

# sudo systemctl status mosquitto

Comprobamos el funcionamiento de Mosquitto
Nos debe mostrar "Active: Running"
Podemos verificar el funcionamiento abriendo dos consolas, en una tecleamos el comando:

# mosquitto_sub -v -t "test/topic" (aquí vamos a recibir el mensaje)(consola 1)
# mosquitto_pub -t "test/topic" -m "Hello World!" (con este comando enviaremos el mensaje)(consola 2)

Si vamos a utilizar Mosquitto con GPIO podemos instalar tambien los siguientes paquetes

# sudo apt-get install python-pip
# sudo pip install paho-mqtt

Ahora vamos a configurar la seguridad para evitar accesos no deseados.

# sudo mosquitto_passwd -c /etc/mosquitto/passwd USUARIO

Con este comando asignaremos Usuario y contraseña, esta informacion se guardara en el fichero:

/etc/mosquitto/passwd

Ahora debemos modificar el fichero de configuración. lo encontramos en /etc/mosquitto/mosquitto.conf.
Recordar hacer copia del fichero antes de hacer alguna modificación.
Tecleamos:

# cd  /etc/mosquitto
# sudo nano mosquitto.conf

Dejamos con el siguiente contenido:

        # Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
# Save all log in file
log_type all
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile

ahora "Ctrl"+ O (e Intro) para salvar y "Ctrl" + X para salir

Reiniciamos el servicio

# sudo systemctl restart mosquitto

y comprobamos el funcionamiento

# sudo systemctl status mosquitto

Para comprobar el funcionamiento con usuario y contraseña, abrimos dos consolas y repetimos los comandos de publicación/suscripción en cada una de ellas

# mosquitto_pub -d -t “test” -m “hola_mundo” -u USUARIO -P CONTRASEÑA
# mosquitto_sub -d -t “test” -u USUARIO -P CONTRASEÑA

Verificamos que llega el mensaje enviado.

Siempre recordar, que es conveniente realizar copia de la tarjeta SD, como hemos descrito en la primera entrada, así, podremos recuperar los puntos de instalación en cualquier momento.

con esto terminamos esta entrada, creo que ha ha podido ser algo densa, a si que
Continuamos en la siguiente entrada de la serie, la Entrada 4.

No hay comentarios:

Publicar un comentario