写一个定时自动发送MQTT协议的程序,主题、内容、订阅需要能自定义
时间: 2023-11-22 19:56:26 浏览: 52
以下是一个 Python 3 的定时自动发送MQTT协议的程序,通过 paho-mqtt 库实现:
```python
import time
import json
import paho.mqtt.client as mqtt
# MQTT服务器信息
mqtt_broker = "localhost"
mqtt_port = 1883
mqtt_keepalive = 60
# MQTT 订阅主题和内容
mqtt_topic = "test/topic"
mqtt_payload = {"message": "Hello, World!"}
# 定时发送MQTT消息的间隔时间,单位为秒
interval = 10
# MQTT客户端设置
client = mqtt.Client()
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
def on_publish(client, userdata, mid):
print("Message published")
client.on_connect = on_connect
client.on_publish = on_publish
client.connect(mqtt_broker, mqtt_port, mqtt_keepalive)
# 循环发送MQTT消息
while True:
payload_str = json.dumps(mqtt_payload)
client.publish(mqtt_topic, payload_str)
time.sleep(interval)
```
可以根据需要自定义 MQTT 服务器信息、订阅主题和内容,以及定时发送消息的间隔时间。可以使用 `json.dumps()` 方法将字典类型的消息内容转换为 JSON 字符串,再发送到 MQTT 服务器上。