MQTT con Mosquitto entre computadora con Windows y Raspberry Pi en IOTeca

MQTT con Mosquitto entre computadora con Windows y Raspberry Pi

Mosquitto es un broker OpenSource para arquitectutra MQTT ampliamente utilizado debido a su ligereza, lo que nos permite, fácilmente, emplearlo en gran número de ambientes, incluso si éstos son de pocos recursos.

Pueden recordar los conceptos de MQTT en Introducción a MQTT

Instalación de Mosquitto en Windows

Para instalar el broker en Windowsse deben realizar los siguientes pasos:

  1. Abrir http://mosquitto.org/download/ en el navegador y descargar mosquitto-1.6.4-install-windows-x64.exe (o 32 según corresponda)
  2. Instalar mosquitto
  3. Abrir http://slproweb.com/products/Win32OpenSSL.html y descargar Win64 OpenSSL 1.1.0* Light (o 32 según corresponda), dado se necesitan DLLs adicionales para que funcione. Pueden obtener más información en el archivo readme.-windows.txt, en la carpeta de instalación de mosquitto
  4. Instalar Win64 OpenSSL
  5. Ir a Servicios , buscarlo e iniciarlo.

Para probar que mosquitto se esté ejecutando realizaremos un netstat

netstat -an

Si vemos el resultado por consola veremos que el puerto 1883 donde se ejecuta mosquitto se encuentra activo.

Prueba de funcionamiento

Para probar la funcionamiento utilizaremos dos cenanas con la consola abierta. Para abir una consola tecla Windows + R, escribir cmd y luego tecla Enter.

a) Ventana Suscriptor:

En una consola colocarse en el directorio donde hara instalado mosquitto y escribir:

mosquitto_sub.exe -d -t /test

De esta forma nos subscribiremos al topico test. Veremos cono se conecta y se envía la subscripción.

En al imagen se puede ser tambien las publicaciones que realizamos en a continuación.

b) Ventana Publicador:
En la otra consola colocarse en el directorio donde hara instalado mosquittoy enviar los mensajes de la siguiente forma:

mosquitto_pub -d -t /test -m gpio14=1

mosquitto_pub -d -t /test -m gpio14=0

De esta forma estaremos publicando en el topico mensajes gpio14=1 y gpio14=0. Veremos como se conecta y realiza la publicación

Mosquitto en Raspberry Pi

Para instalar Mosquitto en la Raspberry Pi, debemos instalar el cliente por medio de los siguientes comandos en el BASH:

sudo apt-get update
sudo apt-get install mosquitto-clients

Antes de controlar una salida debemos configurarla tal como se explica en a href="https://www.ioteca.com.ar/raspberry-pi/10/acceder-a-los-pines-gpio-de-la-raspberry-pi-como-directorios/" target="_blank">Acceder a los pines GPIO de la Raspberry Pi como directorios. Además la Raspberry Pi y la computadora con Windows deben estar conectados a la misma red.

Subscribiremos la Raspberry a una conexión con topic Mensaje y como host pondremos la dirección IP de computadora donde hemos instalado el Broker. El comando en el siguiente:

mosquitto_sub -d -h 192.168.0.12 -t Mensaje

En donde:

  • -d: indica depuración (debug). Esto hace que podamos ver todos y en más detalle los mensajes que recibe.
  • -h: indica el broker (host) y a continuación la dirección IP del Broker.
  • -t: indica el topic y a continuación el nombre del tópico

Una vez ejecutado podemos ver que la consola queda bloqueada a la espera de mensajes con ese topic.

En la computadora Windows con el Broker, abrimos una consola y nos ubicamos en el directorio donde instalamos mosquitto (C:Program Filesmosquitto>). Procederemos a enviar un mensaje de prueba a la Raspberry Pi ingresando el siguiente mensaje:

mosquitto_pub -h 192.168.0.12 -t Mensaje -m "mensaje usando MQTT"

En donde:

  • -h: indica el broker (host) y a continuación la dirección IP del Broker.
  • -t: indica el topic y a continuación el nombre del tópico
  • -m: indica el mensaje a publicar y a continuación se coloca el mismo

Comprobamos que la comunicación entre ambos es correcta y se muestra el mensaje en la consola de Raspberry, además aparecen más mensajes. Esto se debe a que hemos puesto la suscripción en modo depuración y aparecen todos los mensajes que se envía con el broker para mantener activa la conexión.

Ahora cerraremos la consola en la Raspberry, abriremos otra y nos suscribiremos a un tópico para la salida GPIO que hemos configurado previamente. Utilizamos nuevamente una línea de comando similar a la anterior cambiando el tópico y quitándo la opción de depuración.

mosquitto_sub -h 192.168.0.12 -t GPIO16 > /sys/class/gpio/gpio16/value

El operador > redirecciona lo que reciba el tópico al archivo value.

Desde la computadora con el Broker deberemos publicar los '1' o '0' para poder encender y apagar la salida.

mosquitto_pub -h 192.168.0.12 -t GPIO16 -m 1 
mosquitto_pub -h 192.168.0.12 -t GPIO16 -m 0

En caso de necesitar utilizar otra salida se debe abrir otra consola adicional en la Raspberry y operar de la misma manera.

Creado: 14/01/2020  

Publicidad

| Volver a Raspberry Pi |

Comentarios

Para poder comentar debés registrarte e ingresar al sitio.