python 建立MQTT通信

本機環境 win10 64  記得關閉防火牆

1:下載第三方MQTT broker http://mosquitto.org/files/binary/win32/mosquitto-1.3.5-install-win32.exe

2:安裝完成,運行箭頭置定程序,

3:出現黑框,只需最小化即可

4:mqtt發佈端

    發佈端設備用的是購買的藍牙無線網關,只需修改配置即可

5:mqtt訂閱端python程序

  不同應用場景 記得修改IP 端口 發佈話題 賬號 密碼

import time
import paho.mqtt.client as mqtt
import msgpack
from binascii import *

def on_subscribe(mosq, obj, mid, granted_qos):
    print("Subscribed: " + str(mid))

def on_message(mosq, obj, msg):
    
    packages =  msg.payload
#         print(len(packages),type(packages))
#         print(len(packages))
    data = msgpack.unpackb(packages,use_list=False, raw=False)

    brocast_data = data['devices']
    outData={'header':"",'payload':[]}
    mac_data = set()
#         print('post')
    for b in brocast_data:
        record={};
        data_bro={};            
        try:
            record=b2a_hex(b)
            data_bro['type']=hex(int(record[:2],16))
            data_bro['mac']=hex(int(record[2:14],16))
            data_bro['rssi']=hex(int(record[14:16],16))
            data_bro['broadcast_data']=hex(int(record[16:],16))
            mac_data.add(data_bro['mac'])
        except:
            pass;
        outData['payload'].append(data_bro);
#         print(len(mac_data))
    print(outData['payload'])

def on_connect(mosq, obj,flags, rc):
    print("Connected with result code "+str(rc))
    mqttc.subscribe("hello", 0)
    print("Connected")
    

mqttc = mqtt.Client()
mqttc.on_connect = on_connect
mqttc.on_subscribe = on_subscribe
mqttc.on_message = on_message
mqttc.connect("10.33.4.31", 1883, 60)
mqttc.loop_forever()

解析後輸出數據 效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章