mqtt 組成
1、mqtt 伺服器 2、mqtt 訂閱者 sub 3、mqtt 傳送者 pub
搭建mqtt 使用emqx,我的本地機器是centos 8 雲服務是 centos 7.8,搭建大同小異
搭建服務的話,看官網最好
然後就是測試啥的了,用python 測試 訂閱 傳送
先寫訂閱 建立 sub_car.py
class mqttsub(object):
def __init__(self, topic):
self.client = mqtt.client()
self.topic = topic
self.username = 'caoyong'
self.password = 'admin123'
def on_connect(self, client_driver, userdata, flags, rc):
logger.info("connected with result code: " + str(rc))
print("connected with result code: " + str(rc))
print(rc)
if rc == 0:
client_driver.subscribe(self.topic, qos=0)
@classmethod
def on_message(cls, client_driver, userdata, msg):
logger.info(f' ')
print(f' ')
sub_data = json.loads(msg.payload.decode('utf-8'))
logger.info(f'')
print(sub_data)
start_time = sub_data['time']
end_time = time.time() - start_time
print('訊息從傳送到接收的時間', end_time)
logger.info(f'訊息從傳送到接收的時間')
if 'open_door' in sub_data.keys():
open_door()
end_time = time.time() - start_time
print(end_time)
logger.info(f'最終時間')
def mqtt_main(self):
self.client.username_pw_set(username=self.username, password=self.password)
self.client.connect('192.168.22.70', 61883, 600)
self.client.on_connect = self.on_connect
self.client.on_message = self.on_message
self.client.loop_forever(retry_first_connection=true) # 保持連線
if __name__ == '__main__':
now_topic = 'door'
mqttsub(topic=now_topic).mqtt_main()
然後 發布 pub_car.py
import json
import time
import paho.mqtt.client as mqtt
if __name__ == '__main__':
control_topic = 'control'
client = mqtt.client()
client.username_pw_set(username='caoyong', password='admin123')
client.connect('192.168.22.70', 61883, 600) # 600為keepalive的時間間隔
push_new = ,
'camera_left_right': ,
'car_left_right': ,
'car_up_down': ,
'cat_stop': 1
}client.publish(control_topic, payload=json.dumps(push_new), qos=0)
然後發現乙個問題,mqtt 使用本地電腦 檢視時間 要 0.015s 使用其他電腦 訂閱 居然要 2s+ 不知道為啥,計畫用mqtt 控制,但是 實際操作起來 不太可行 延遲太大 鐵血社群宣布將於2023年3月1日正式永久關閉
鳳凰網科技訊 12月20日訊息,今日,鐵血社群宣布 將於2程式設計客棧02程式設計客棧1年12月20日 今日 停止使用者發帖 回帖功能,2022年3月1日起,鐵血nxmwzod社群將正式永久關閉。據悉,鐵血社群,又稱鐵血論壇,建立於2001年,前身是創始人蔣磊於2001年建立的 虛擬軍事 2001年...
python3 切片 python3 切片
取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...
python3安裝 Python3的安裝
1.anaconda安裝 2.安裝包安裝 3.linux下的命令列安裝 centos red hat 1 sudo yum install y sudo yum update3 sudo yum install y python35u python35u libs python35u devel p...