Conceptos básicos de MQTT
MQTT es una arquitectura de publicación/suscripción desarrollada principalmente para conectar dispositivos con ancho de banda y energía limitada a través de redes inalámbricas. Es un protocolo simple y liviano que se ejecuta sobre sockets TCP/IP o WebSockets. MQTT sobre WebSockets se puede proteger con SSL. La arquitectura de publicación/suscripción permite enviar mensajes a los dispositivos cliente sin que el dispositivo necesite sondear continuamente el servidor.
El corredor MQTT es el punto central de comunicación y está a cargo de enviar todos los mensajes entre los remitentes y los destinatarios legítimos. Un cliente es cualquier dispositivo que se conecta al corredor y puede publicar o suscribirse a temas para acceder a la información. Un tema contiene la información de enrutamiento para el corredor. Cada cliente que quiere enviar mensajes los publica en un tema determinado, y cada cliente que quiere recibir mensajes se suscribe a un tema determinado. El corredor entrega todos los mensajes con el tema correspondiente a los clientes correspondientes.
ThingSpeak™ tiene un broker MQTT en la URL mqtt3.thingspeak.com
y el puerto 1883
. El broker ThingSpeak admite tanto la publicación MQTT como la suscripción MQTT, como se muestra en los siguientes diagramas.
Publicación MQTT
Esta figura describe la estructura del tema. El corredor reconoce una solicitud CONNECT
correcta con CONNACK
.
MQTT Suscribirse
Esta figura describe la estructura del tema. El corredor reconoce una solicitud SUBSCRIBE
correcta con SUBACK
.
Crear un dispositivo ThingSpeak MQTT
El acceso MQTT a sus canales, incluidas las credenciales, se gestiona mediante un dispositivo ThingSpeak MQTT. Su dispositivo está configurado con las credenciales necesarias para que su cliente MQTT se comunique con ThingSpeak y para autorizar canales específicos. Utilice los siguientes pasos para crear un dispositivo MQTT.
En el menú de ThingSpeak, haga clic en Devices > MQTT.
En la página Dispositivos MQTT, haga clic en Add a new device.
Complete el cuadro de diálogo Agregar un nuevo dispositivo:
Proporcione un nombre de dispositivo.
Proporcione una descripción opcional.
En la sección Autorizar canales, elija un canal del menú de lista y luego haga clic en Add Channel. Repita esto hasta que tenga todos los canales que desea conectar al dispositivo en la lista de canales autorizados. Configure cada uno para permitir la publicación y permitir la suscripción según sea necesario.
Haga clic en Add Device.
En este punto, ThingSpeak genera una lista de credenciales para su dispositivo que incluye ID de cliente, nombre de usuario y contraseña. Puede ver y copiar estos elementos desde esta página o hacer clic en Download Credentials para guardar las credenciales en un archivo local. "Importante": Registre o guarde sus credenciales ahora, ya que no tendrá otra oportunidad de ver o guardar la contraseña.
Haga clic en Done para completar la creación del dispositivo.
Su nuevo dispositivo ahora aparece en la página Dispositivos MQTT. Puede modificar la configuración de su dispositivo y agregarle canales haciendo clic en Edit. Puede utilizar el ID de cliente, el nombre de usuario y la contraseña en su cliente MQTT para acceder a su dispositivo ThingSpeak MQTT para publicar y suscribirse a sus canales.
Nota
Puedes tener hasta 100 dispositivos MQTT por usuario, con un máximo de 10 canales autorizados por dispositivo. Si requieres más dispositivos o canales, Contact Support.
Para obtener información sobre el uso de un cliente MQTT de escritorio, consulte Publicar y suscribirse a un canal utilizando el cliente MQTT de escritorio.
Restablecer contraseña del dispositivo. Si necesita restablecer la contraseña de su dispositivo en cualquier momento, puede restablecerla desde la página de edición del dispositivo:
Seleccione Devices > MQTT.
En la lista mostrada de sus dispositivos MQTT, para el dispositivo que desea restablecer, haga clic en Edit para ver sus detalles de configuración.
En la sección MQTT Credentials , haga clic en el icono de regenerar para restablecer la contraseña. Las conexiones que utilicen la contraseña anterior se desactivarán.
Respuesta del servidor para conexiones
Si la conexión se realiza correctamente, el agente ThingSpeak MQTT responde con un reconocimiento de conexión, CONNACK
. El corredor MQTT responde a una solicitud de suscripción exitosa con un mensaje SUBACK
y transmite al cliente cualquier dato nuevo publicado en el canal o campo suscrito. Para obtener más información sobre estos mensajes, consulte la especificación MQTT v3.1.1 . Luego puede publicar mensajes en temas utilizando el formulario Publish to a Channel Feed o Publish to a Channel Field Feed.
Configuración del cliente MQTT
ThingSpeak tiene un corredor MQTT en la URL mqtt3.thingspeak.com
. Configure su cliente MQTT para comunicarse con el corredor ThingSpeak MQTT según una de las siguientes opciones:
Puerto | Tipo de conección | Cifrado |
---|---|---|
1883 | tcp | Ninguno |
8883 | tcp | TLS/SSL |
80 | WebSocket | Ninguno |
443 | WebSocket | TLS/SSL |
Al configurar su conexión de cliente, considere lo siguiente:
Si su hardware admite el modo de conexión de socket SSL seguro, utilice ese modo para comunicarse con el agente ThingSpeak MQTT siempre que sea posible.
ThingSpeak implementa la funcionalidad de publicación y suscripción de MQTT con
QoS
=0
. Este protocolo de "disparar y olvidar" significa que su cliente no recibe un reconocimiento cuando publica en un canal ThingSpeak .Las conexiones MQTT se agotan después de una hora de inactividad.
Cuando se utiliza una conexión WebSocket, la ruta requerida es
/mqtt
.Usando la biblioteca Paho con Python® en Raspberry Pi®, la ruta MQTT predeterminada es
"/mqtt"
, pero también puede configurar esto con la línea de código :client.ws_set_options("/mqtt")
Con la CLI de HiveMQ MQTT, configura la ruta con la opción de comando:
mqtt pub … -ws -ws:path /mqtt …
Consulte también
Publish to a Channel Feed | Publish to a Channel Field Feed | Subscribe to a Channel Field Feed | Subscribe to a Channel Feed
Temas relacionados
- Solucionar problemas de publicación MQTT
- API MQTT
- Publique y suscríbase a un canal de ThingSpeak utilizando Secure MQTT
- Publicar y suscribirse a un canal utilizando el cliente MQTT de escritorio
- Publicar en un canal ThingSpeak utilizando un cliente de dispositivo de partículas a través de MQTT
- Publicar usando WebSockets en Python en una Raspberry Pi
- Utilice Particle Photon Client para suscribirse a las actualizaciones del canal
- Solucionar problemas de suscripción MQTT
- Utilice Particle Photon Client para suscribirse a las actualizaciones del canal