# publish_basic.py
import time
from datetime import datetime
import json
import random
from paho.mqtt import client as mqtt_client
broker = 'ip' # mqtt代理服務(wù)器地址
port = 5000 # 端口
keepalive = 60 # 與代理通信之間允許的最長(zhǎng)時(shí)間段(以秒為單位)
topic = "topic" # 消息主題
client_id = f'python-mqtt-send-{random.randint(0, 1000)}' # 客戶端id不能重復(fù)
def connect_mqtt():
'''連接mqtt代理服務(wù)器'''
def on_connect(client, userdata, flags, rc):
'''連接回調(diào)函數(shù)'''
if rc == 0:
print("Connected to MQTT successfully!")
else:
print("Failed to connect, return code {0}".format(rc))
# 連接mqtt代理服務(wù)器,并獲取連接引用
client = mqtt_client.Client(client_id)
client.on_connect = on_connect
# 如果有的話,如果沒(méi)有就不要這句了
client.username_pw_set('admin','admin')
client.connect(broker, port, keepalive)
return client
def publish(client):
'''發(fā)布消息'''
while True:
# 每隔4秒發(fā)布一次信息
time.sleep(4)
# mqtt只能傳輸字符串?dāng)?shù)據(jù)
# 一個(gè)info就是一條數(shù)據(jù),里面可以替換成你想要的
info = {
"data": data_list,
"age": 10,
"name": "Lucy"}
msg = json.dumps(info)
# 默認(rèn)retain=False,一個(gè)Topic只能有一個(gè)retained消息,后設(shè)置的會(huì)覆蓋前面的消息
result = client.publish(topic=topic, payload=msg, qos=0, retain=True)
# 刪除retained消息
# result = client.publish(topic=topic, payload=None, qos=0, retain=True)
if result[0] == 0:
print("Send {0} to topic {1}".format(msg, topic))
else:
print("Failed to send message {0} to topic {1}".format(msg, topic))
def run():
'''運(yùn)行發(fā)布者'''
client = connect_mqtt()
# 運(yùn)行一個(gè)線程來(lái)自動(dòng)調(diào)用loop()處理網(wǎng)絡(luò)事件, 非阻塞
client.loop_start()
publish(client)
if __name__ == '__main__':
run()
python-mqtt發(fā)送數(shù)據(jù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 1.MQTT發(fā)送數(shù)據(jù): 2.標(biāo)準(zhǔn)的數(shù)據(jù):{uuid:'E5B6-5068-08C7-5BB5'data:{hell...
- maven的pom.xml引入包 mqtt.yml配置文件 初始化MQTT配置bean mqtt發(fā)送數(shù)據(jù)網(wǎng)關(guān)配置 ...
- 一、說(shuō)明 基于上篇socket 通訊問(wèn)題 ,今天給大家分享一個(gè)解決 用 socket 建立 長(zhǎng)連接時(shí) ,數(shù)據(jù)粘包的...
- 定時(shí)功能,即程序可以根據(jù)我們?cè)O(shè)定的時(shí)間自動(dòng)爬取數(shù)據(jù);通知功能,即程序可以把爬取到的數(shù)據(jù)結(jié)果以郵件的形式自動(dòng)發(fā)送到我...