Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

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.

  1. En el menú de ThingSpeak, haga clic en Devices > MQTT.

    Device menu

  2. En la página Dispositivos MQTT, haga clic en Add a new device.

    Add device option

  3. Complete el cuadro de diálogo Agregar un nuevo dispositivo:

    New device dialog

    1. Proporcione un nombre de dispositivo.

    2. Proporcione una descripción opcional.

    3. 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.

    4. Haga clic en Add Device.

    5. 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.

    6. 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:

  1. Seleccione Devices > MQTT.

  2. 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.

  3. 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.

    MQTT device password reset icon

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

| | |

Temas relacionados

Sitios web externos