---
title: "Ejemplo MQTT con Python: conectar, publicar y suscribirse | ConnectMQ"
description: "Ejemplo de cliente MQTT en Python con paho-mqtt 2.x: código para el broker público gratuito broker.connectmq.com y conexión TLS segura a ConnectMQ."
url: "https://connectmq.com/es/ejemplos-de-codigo/python/"
language: "es"
---

Ejemplos de código

# Ejemplo MQTT con Python

Conecta Python a un broker MQTT con paho-mqtt. Empieza con el broker público gratuito y después apunta el mismo código a un broker privado y seguro en ConnectMQ.

Biblioteca

[paho-mqtt 2.x](https://pypi.org/project/paho-mqtt/)

Instalación

`pip install "paho-mqtt>=2.0"`

[**Código fuente en GitHub**`mqtt-code-samples/python`Clona los ejemplos completos y listos para ejecutar. Se agradecen estrellas y pull requests. Ver en GitHub](https://github.com/connectmq/mqtt-code-samples/tree/main/python)

## 1\. Pruébalo en el broker público gratuito

Sin necesidad de cuenta: conéctate a `broker.connectmq.com` en el puerto 1883 y empieza a publicar en segundos.

main.py

```
import json
import paho.mqtt.client as mqtt

TOPIC = "your-project/sensors/temperature"  # Usa un prefijo de topic único: cualquiera puede leer el broker público

# Se ejecuta al establecer la conexión
def on_connect(client, userdata, flags, reason_code, properties):
    print("Connected:", reason_code)
    # Suscribirse al topic de temperatura
    client.subscribe(TOPIC, qos=1)
    # Publicar una lectura en JSON
    client.publish(TOPIC, json.dumps({"temperature": 21.5}), qos=1)

# Se ejecuta con cada mensaje de un topic suscrito
def on_message(client, userdata, msg):
    print(msg.topic, msg.payload.decode())

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
client.on_connect = on_connect
client.on_message = on_message

# Conectar al broker público gratuito (sin cuenta)
client.connect("broker.connectmq.com", 1883)
# Mantener el cliente en ejecución
client.loop_forever()
```

### Broker MQTT público gratuito

El broker público es compartido: cualquiera puede suscribirse a tus topics. Nunca envíes por él contraseñas, datos personales ni información confidencial.

[Acerca del broker MQTT público gratuito](https://connectmq.com/es/broker-mqtt-publico/)

## 2\. Pasa a producción con ConnectMQ

Para dispositivos reales, usa un broker MQTT serverless privado en ConnectMQ en lugar del público: cifrado TLS, usuario y contraseña para cada dispositivo y control de acceso por topic, totalmente gestionado. Empieza con el plan Free, sin tarjeta.

Sustituye YOUR\_BROKER\_HOST, YOUR\_USERNAME y YOUR\_PASSWORD por los valores de tu panel de ConnectMQ.

[Empieza gratis](https://app.connectmq.com/signup) [Ver precios](https://connectmq.com/es/precios/)

main.py

```
import json
import paho.mqtt.client as mqtt

TOPIC = "your-project/sensors/temperature"

# Se ejecuta al establecer la conexión
def on_connect(client, userdata, flags, reason_code, properties):
    print("Connected:", reason_code)
    # Suscribirse al topic de temperatura
    client.subscribe(TOPIC, qos=1)
    # Publicar una lectura en JSON
    client.publish(TOPIC, json.dumps({"temperature": 21.5}), qos=1)

# Se ejecuta con cada mensaje de un topic suscrito
def on_message(client, userdata, msg):
    print(msg.topic, msg.payload.decode())

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
client.on_connect = on_connect
client.on_message = on_message

# Usuario y contraseña de tu panel de ConnectMQ
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
# TLS: el almacén de CA del sistema verifica el certificado del broker
client.tls_set()

# Conectar a tu broker privado de ConnectMQ en el puerto 8883
client.connect("YOUR_BROKER_HOST", 8883)
# Mantener el cliente en ejecución
client.loop_forever()
```

## Preguntas frecuentes sobre MQTT con Python

¿Cómo conecto Python a un broker MQTT?

Instala paho-mqtt 2.x, conéctate al host del broker en el puerto 1883 (o 8883 con TLS), suscríbete a un topic y publica mensajes en él. Los ejemplos de esta página se conectan al broker público gratuito broker.connectmq.com y a un broker privado de ConnectMQ.

¿Hay un broker MQTT gratuito para probar Python?

Sí. broker.connectmq.com es un broker MQTT público y gratuito que no requiere cuenta. Cualquiera puede leer sus topics, así que úsalo solo para pruebas y con un prefijo de topic único.

¿Cómo protejo una conexión MQTT con Python?

Conéctate mediante TLS en el puerto 8883 con un usuario y una contraseña de tu panel de ConnectMQ, y asigna a cada dispositivo sus propias credenciales y permisos de topic en lugar de usar el broker público.

## Más ejemplos de código

[

### Node.js

Conecta Node.js a un broker MQTT con MQTT.js.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/nodejs/)[

### ESP32

Conecta un ESP32 a un broker MQTT por Wi-Fi con la biblioteca PubSubClient de Arduino.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/esp32/)[

### Go

Conecta Go a un broker MQTT con el cliente Eclipse Paho para Go.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/go/)[

### CLI (mosquitto)

Publica y suscríbete desde la línea de comandos con mosquitto\_pub y mosquitto\_sub.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/cli/)[

### Java

Conecta Java a un broker MQTT con el cliente Eclipse Paho para Java.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/java/)[

### C# (.NET)

Conecta C# y .NET a un broker MQTT con MQTTnet.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/csharp/)[

### Rust

Conecta Rust a un broker MQTT con el crate rumqttc.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/rust/)[

### Dart (Flutter)

Conecta apps de Dart y Flutter a un broker MQTT con el paquete mqtt\_client.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/dart-flutter/)[

### Swift / Kotlin

Conecta apps nativas de iOS (Swift) y Android (Kotlin) a un broker MQTT.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/swift-kotlin/)[

### Home Assistant

Conecta Home Assistant a un broker MQTT y convierte los mensajes MQTT en sensores.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/home-assistant/)[

### Node-RED

Conecta Node-RED a un broker MQTT con un flujo importable.

Ver ejemplo](https://connectmq.com/es/ejemplos-de-codigo/node-red/)

[Todos los ejemplos de código](https://connectmq.com/es/ejemplos-de-codigo/)

### Broker MQTT público gratuito

Prueba cualquier ejemplo en broker.connectmq.com: sin registro, con MQTT 3.1.1 y 5, TCP, TLS y WebSocket.

[Acerca del broker MQTT público gratuito](https://connectmq.com/es/broker-mqtt-publico/)

### MQTT serverless seguro para producción

Cuando llegue el momento de usar dispositivos reales, ejecuta el mismo código en un broker de ConnectMQ privado y totalmente gestionado, con TLS y credenciales por dispositivo.

[Empieza gratis](https://app.connectmq.com/signup)

## Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.

[Empezar](https://app.connectmq.com/signup) [Ver precios](https://connectmq.com/es/precios/)

## Artículos

[Todos los artículos](https://connectmq.com/es/blog/)

Tutoriales de IoT

### [Tutorial ESP32 MQTT: publica datos de sensores y controla un LED con Arduino IDE](https://connectmq.com/es/blog/tutorial-esp32-mqtt/)

Conecta un ESP32 a un broker MQTT con Arduino IDE y PubSubClient, publica lecturas de temperatura en JSON, controla el LED integrado desde la línea de comandos y pasa a TLS con credenciales del portal.

23 de agosto de 202610 min de lectura

Tutoriales de IoT

### [Servidor MQTT público gratuito para pruebas: conéctate a broker.connectmq.com en minutos](https://connectmq.com/es/blog/broker-mqtt-publico-gratuito/)

broker.connectmq.com es un servidor MQTT público gratuito para pruebas y aprendizaje. Aquí tienes los puertos, las reglas de acceso anónimo, los límites y ejemplos listos para copiar para la CLI, Python, Node.js y el navegador.

20 de septiembre de 20268 min de lectura

Tutoriales de IoT

### [MQTT sobre WebSocket: conecta un navegador a un broker MQTT con MQTT.js](https://connectmq.com/es/blog/mqtt-sobre-websocket/)

Los navegadores no pueden abrir sockets TCP directos, así que las aplicaciones web hablan MQTT sobre WebSocket. Construye un cliente de navegador y un cliente Node.js funcionales contra broker.connectmq.com y aprende a resolver los errores de conexión más comunes.

29 de septiembre de 20269 min de lectura
