【树莓派】树莓派使用paho-mqtt库进行MQTT通讯

树莓派使用paho-mqtt库进行MQTT通讯

参考资料:

https://www.emqx.cn/blog/use-mqtt-with-raspberry-pi

https://pypi.org/project/paho-mqtt/

1、安装paho-mqtt库

官方网站:https://pypi.org/project/paho-mqtt/

pip install paho-mqtt

2、登录MQTT服务器
3、发布消息
# test_connect.py
import paho.mqtt.client as mqtt
import json
import time
from datetime import datetime

# 回调函数。当尝试与 MQTT broker 建立连接时,触发该函数。
# client 是本次连接的客户端实例。
# userdata 是用户的信息,一般为空。但如果有需要,也可以通过 user_data_set 函数设置。
# flags 保存服务器响应标志的字典。
# rc 是响应码。
# 一般情况下,我们只需要关注 rc 响应码是否为 0 就可以了。
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("Connected success")
    else:
        print(f"Connected fail with code {rc}")

MQTT_SERVER = "127.0.0.1"   # EMQ X服务器IP,或者其他MQTT服务器IP
CLIENT_ID = "respberry-A0A0"
TOPIC = "test/propety/post"
username='respberry-A0A0'	# 用户名
password='respberry-A0A0'	# 密码

# 字典格式payload
msg = {"event_time":"","event_date":"","iot_id":"respberry-A0A0","product_key":"SZJK-WSD","type":"DEVICE","humidity":50,"temperature":27.5}

client = mqtt.Client(CLIENT_ID)
client.username_pw_set(username,password)
client.on_connect = on_connect
# client.connect("broker.emqx.io", 1883, 60)
client.connect(MQTT_SERVER, 1883, 60)


while True:
    # publish
    msg["event_time"]=datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    msg["event_date"]=datetime.now().strftime('%Y-%m-%d')
    msg_load=json.dumps(msg)	#转换为json格式字符串
    client.publish(TOPIC, payload=msg_load, qos=0, retain=False)
    time.sleep(1)
client.loop_forever()
4、配置数据库
5、测试

订阅者收到的报文

{"event_time": "2021-04-27 16:08:46", "event_date": "2021-04-27", "iot_id": "9CE15122004B1200", "product_key": "SZJK-WSD", "dev_type": "DEVICE", "humidity": 50, "temperature": 27.5}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值