确保你已经安装了paho-mqtt库,如果没有安装,可以使用以下命令进行安装:
pip install paho-mqtt
import paho.mqtt.client as mqtt
import time
# 定义事件回调函数
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("Connected successfully")
else:
print(f"Connection failed with code {rc}")
def on_publish(client, userdata, mid):
print(f"Message {mid} published successfully")
def on_disconnect(client, userdata, rc):
print("Disconnected")
if rc != 0:
print("Unexpected disconnection. Reconnecting...")
try:
client.reconnect()
except Exception as e:
print(f"Reconnection failed: {e}")
def mqtt_pub():
# mqtt连接信息
mqtt_host = "192.168.0.93"
# 端口号需要是整型
mqtt_port = 1883
mqtt_username = "admin"
mqtt_pwd = "Senscape"
mqtt_topic = "/test/"
mqtt_msg = "test"
# 创建MQTT客户端实例
client_id = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
client = mqtt.Client(client_id)
# 设置用户名和密码
client.username_pw_set(mqtt_username, mqtt_pwd)
# 设置事件回调函数
client.on_connect = on_connect
client.on_publish = on_publish
client.on_disconnect = on_disconnect
# 连接到MQTT代理
client.connect(mqtt_host, mqtt_port, 60)
# 启动客户端循环
client.loop_start()
# 发布消息
result = client.publish(mqtt_topic, mqtt_msg)
status = result.rc
if status == 0:
print(f"Sent `{mqtt_msg}` to topic `{mqtt_topic}`")
else:
print(f"Failed to send message to topic `{mqtt_topic}`")
# 停止客户端循环并断开连接
client.loop_stop()
client.disconnect()
if __name__ == '__main__':
mqtt_pub()