Interacción con Mosquitto en Python: Tutorial de MQTT
MQTT es un protocolo de mensajería ligero que se utiliza para la comunicación entre dispositivos en Internet de las Cosas (IoT). Es un protocolo pub/sub, lo que significa que los dispositivos pueden publicar mensajes en un tema y otros dispositivos pueden suscribirse a ese tema para recibir los mensajes.
Mosquitto es un servidor MQTT de código abierto que se puede ejecutar en una amplia gama de plataformas, incluidas Linux, Windows y macOS.
En este tutorial, aprenderemos a interactuar con Mosquitto en Python.
¿Qué es MQTT?
MQTT es un protocolo de mensajería ligero que se utiliza para la comunicación entre dispositivos en IoT. Es un protocolo pub/sub, lo que significa que los dispositivos pueden publicar mensajes en un tema y otros dispositivos pueden suscribirse a ese tema para recibir los mensajes.
MQTT es un protocolo ideal para IoT porque:
- Es ligero y eficiente, lo que lo hace ideal para dispositivos con recursos limitados.
- Es fiable, incluso en redes inestables.
- Es escalable, lo que lo hace adecuado para aplicaciones de IoT a gran escala.
¿Qué es Mosquitto?
Mosquitto es un servidor MQTT de código abierto que se puede ejecutar en una amplia gama de plataformas, incluidas Linux, Windows y macOS.
Mosquitto es un servidor MQTT popular porque:
- Es ligero y eficiente.
- Es fiable.
- Es escalable.
Instalación de Mosquitto
Para instalar Mosquitto en Linux, ejecute los siguientes comandos:
sudo apt install mosquitto
Para instalar Mosquitto en Windows, descargue el instalador de la página web de Mosquitto.
Para instalar Mosquitto en macOS, ejecute los siguientes comandos:
brew install mosquitto
Iniciar Mosquitto
Para iniciar Mosquitto, ejecute el siguiente comando:
sudo systemctl start mosquitto
Interacción con Mosquitto en Python
Para interactuar con Mosquitto en Python, utilizaremos la biblioteca Paho MQTT.
Para instalar Paho MQTT en Python, ejecute el siguiente comando:
pip install paho-mqtt
Publicando mensajes
Para publicar un mensaje en Mosquitto, utilizaremos el método publish() de la clase Client de Paho MQTT.
El siguiente código publica un mensaje en el tema «/test»:
import paho.mqtt.client as mqtt
# Crea un cliente MQTT
client = mqtt.Client()
# Conecta al servidor MQTT
client.connect("localhost", 1883)
# Publica un mensaje
client.publish("/test", "Hola, mundo!")
# Desconecta del servidor MQTT
client.disconnect()
Este código producirá el siguiente resultado:
[MQTT] Connected with result code 0
[MQTT] Sent PUBLISH to topic /test (qos 0, retain 0)
[MQTT] Disconnected
Suscribiéndose a mensajes
Para suscribirse a mensajes en Mosquitto, utilizaremos el método subscribe() de la clase Client de Paho MQTT.
El siguiente código se suscribe al tema «/test»:
import paho.mqtt.client as mqtt
# Crea un cliente MQTT
client = mqtt.Client()
# Conecta al servidor MQTT
client.connect("localhost", 1883)
# Suscríbete al tema
client.subscribe("/test")
# Bucle infinito para recibir mensajes
while True:
# Recibe un mensaje
message = client.receive()
# Imprime el mensaje
print(message.topic, message.payload)
# Desconecta del servidor MQTT
client.disconnect()
Este código producirá el siguiente resultado:
/test Hola, mundo!
Conclusión
En este tutorial, aprendimos a interactuar con Mosquitto en Python. Aprendimos a publicar mensajes y a suscribirse a mensajes.