IoT con MQTT - Cómo enviar texto e imagenes a un dispositivo móvil

Actualizado: 9 junio 2022

Ahora que tenemos nuestro broker y publicador MQTT montado, vamos a suscribir a ellos y recibir mensajes utilizando una aplicación MQTT de código abierto. Esto es un uso típico de MQTT para la comunicación IoT.

Materiales

  • Acceso a un broker MQTT (ver este artículo si necesitas saber cómo hacer esto)
  • Un cliente MQTT instalado en tu PC (ver este artículo si necesitas saber cómo hacer esto)
  • Un cliente MQTT instalado en tu teléfono móvil (que veremos a continuación)

Pasos

Instalar un cliente MQTT en Android o IOS

En este ejemplo instalaremos Routix MQTT dash en android (que puedes intalar de forma segura y rápida desde Google Play Store). Existen otras apps para Android pero MQTT Dash es sin duda la más intuitiva y brinda las más opciones de configuración. Permite montar un proyecto IoT en cuestión de minutos.

Configurar la conexión al broker

Una vez que hayas instalado MQTT Dash, abre la app y sigue estas instrucciones (hay pantallazos más abajo):

  1. Dale al icono para crear una conexión al broker (1).
    Cliente MQTT - añadir broker
    Cliente MQTT - añadir broker
  2. En la siguiente pantalla rellena los parámetros de conexión:
    Paso Campo Valor
    2 Name Algún nombre sensato - cualquier cosa que quieras
    3 Address El URL exacto que consta en la configuración de tu broker
    4 Port 8883
    5 SSL/TLS encryption habilitar
    6 Self-signed certificates habilitar
    7 User name El usuario exacto que introduciste cuando creaste tu broker
    8 User password La contraseña exacta que introduciste cuando creaste tu broker
    Configuración del cliente MQTT
    Configuración del cliente MQTT

Ejemplo de comunicación IoT por MQTT - tipo texto

  1. Dale a la conexión de broker que acabas de crear.
  2. Dale al icono ⊕ y selecciona Text en el menú emergente (ya que la carga útilen inglés payload de este topic será solo texto).
  3. Rellena el campo Topic (sub). Vamos a crear uno nuevo llamado my/test/topic2. No hace falta tocar más parámetros en esta pantalla.
    Configuración topic MQTT tipo texto
    Configuración topic MQTT tipo texto
  4. Abre una ventana de terminal en tu PC y lanza el siguiente comando (el URL, usuario y contraseña tienen que coincidir con los datos configurados en tu broker):
    mqtt pub -h {URL} -p 8883 -s -u {tu usuario} -pw {tu contraseña} -t 'my/test/topic2' -m "Hello!"

De seguida deberías ver esto en tu móvil:

Texto IoT con MQTT
Texto IoT con MQTT

Ejemplo de comunicación IoT por MQTT - tipo imagen

Para enviar una imagen simplemente repetimos el proceso anterior, solo que esta vez configuramos la aplicación MQTT Dash en el móvil para recibir una imagen y, en vez de publicar texto desde el terminal, enviaremos una imagen desde nuestro disco duro.

  1. Abre MQTT Dash y selecciona la conexión al broker que ya creaste antes.
  2. Dale al icono ⊕ y selecciona Image en el menú emergente (porque esta vez la carga útil serán datos de imagen).
  3. Rellena el campo Topic (sub). Lo vamos a llamar my/test/images.
  4. Abre una ventana de terminal en tu PC y lanza el siguiente comando. Fíjate que esta vez, en vez de escribir un mensaje, debes incluir la ruta a una imagen en tu disco duro con el prefijo -m:file:
    mqtt pub -h {URL} -p 8883 -s -u {tu usuario} -pw {tu contraseña} -t 'my/test/images' -m:file "ruta/a/imagen.png"

De seguida deberías ver algo parecido a esto en tu móvil (tu imagen será diferente a ésta, evidentemente).

Imagen IoT con MQTT
Imagen IoT con MQTT

¿Y ahora qué?

Ahora toca experimentar con la publicación desde sensores (en vez de publicar manualmente desde el terminal) y tal vez codificar nuestro propio suscriptor :)

© 2022