物联网嵌入式linux系统设备中使用python实现mqtt客户端

时间:2019-10-04 13:00:01 来源:无锡汽车网 当前位置:朗芯文化美食 > 考研 > 手机阅读

简单说一下MQTT,MQTT协议目前是流行的物联网传输协议,它也是基于发布/订阅编程模式的消息协议,很多nb-iot模块也能支持mqtt协议,那么如何使用mqtt客户端和MQTT服务器端进行交互呢?

物联网嵌入式linux系统设备中使用python实现mqtt客户端

首先在嵌入式linux系统安装python环境使用pip安装paho-mqtt

pip install paho-mqtt

或源码安装

git clone https://github.com/eclipse/paho.mqtt.python

进入paho.mqtt.python目录执行:

python setup.py install

物联网嵌入式linux系统设备中使用python实现mqtt客户端

为了做测试mqtt客户端,需要安装一个mqtt Broker服务器,可以使用mosquitto,它是个实现了MQTT3.1协议的Broker服务器。官网下载源码:http://mosquitto.org/download

在安装之后,程序默认监听1883端口

mosquitto -v -c /etc/mosquitto/mosquitto.conf #启动

物联网嵌入式linux系统设备中使用python实现mqtt客户端

基于mqtt协议的发布/订阅测试

测试发布

# encoding: utf-8
import paho.mqtt.client as mqtt
HOST = "192.168.1.100"
PORT = 1883
def client():
client = mqtt.Client()
client.connect(HOST, PORT, 60)
client.publish("sensor_1","temperature:28",2) #发布传感器温度
client.loop_forever()
if __name__ == '__main__':
client()

测试订阅:

import paho.mqtt.client as mqtt
MQTTHOST = "192.168.1.100"
MQTTPORT = 1883
mqttClient = mqtt.Client()
def on_message_come(lient, userdata, msg):
print(msg.topic + " " + ":" + str(msg.payload))
if __name__ == '__main__':
mqttClient.connect(MQTTHOST, MQTTPORT, 60)
mqttClient.loop_start()
mqttClient.subscribe("sensor_1", 2) #订阅了传感器温度
mqttClient.on_message = on_message_come

ok~~

考研本月排行

考研精选