Python实现MQTT客户端
-
搭建好基本的Python3的环境后,笔者使用的是Anaconda管理python环境,运行python测试代码在notebook中,
-
需要安装mqtt包
pip install paho-mqtt
-
代码编写
import paho.mqtt.client as mqtt import time import _thread client_id = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time())) client = mqtt.Client(client_id) fan_on = "{\'fan\':true}" fan_off = "{\'fan\':false}" def on_connect(client, userdata, flags, rc): print("Connected with result code " + str(rc)) client.subscribe("SoftWareToScratch") def on_message(client, userdata, msg): print(msg.topic + " " + str(msg.payload)) def mqtt_publish(no, on): print("hello world") fan_state = 0 while True: if fan_state == 0: client.publish("ScratchToSoftWare", payload=fan_off, qos=0) fan_state = 1 else: client.publish("ScratchToSoftWare", payload=fan_on, qos=0) fan_state = 0 time.sleep(5) def main(): client.on_connect = on_connect client.on_message = on_message try: client.connect("127.0.0.1", 1883, 60) except: print("broker connect failed") try: _thread.start_new_thread(mqtt_publish, (1,1)) except: print("create thread failed") client.loop_forever() if __name__ == '__main__': main()
-
效果如下