MQTT设备上报

0:mqtt服务器增删改格式
添加删除格式

1:网关与子设备数据上报:

2:网关与子设备数据接收:

接收数据时是通过 productKey:区分发给哪个设备的数据

### 方法 Onenet MQTT 进行事件上报,首先在设备端要建立与 OneNET 平台的通信。设备在建立 TCP 连接之后,会发送 CONNECT 类型的数据包进行设备登陆,告知 OneNET 平台该终端 DTU 对应的是平台上的哪一个设备以及数据用何种方式进行解析,这依据 MQTT 报文协议 V3.1.1 规范 [^1]。 设备登陆成功后,设备可以按照主题规则向相应的主题发布消息以实现事件上报。平台会根据设置对这些消息进行接收和处理。 ### 示例 以下为使用 Python 的`paho-mqtt`库实现 Onenet MQTT 事件上报的示例代码: ```python import paho.mqtt.client as mqtt import time # 设备信息 PRODUCT_ID = "your_product_id" DEVICE_KEY = "your_device_key" DEVICE_ID = "your_device_id" # MQTT 服务器地址和端口 MQTT_SERVER = "mqtts.heclouds.com" MQTT_PORT = 1883 # 连接成功回调 def on_connect(client, userdata, flags, rc): print("Connected with result code " + str(rc)) # 消息发布回调 def on_publish(client, userdata, mid): print("Message published with mid: " + str(mid)) # 创建 MQTT 客户端实例 client = mqtt.Client(client_id=DEVICE_ID, clean_session=True) client.username_pw_set(username=PRODUCT_ID + "/" + DEVICE_ID, password=DEVICE_KEY) # 设置回调函数 client.on_connect = on_connect client.on_publish = on_publish # 连接到 MQTT 服务器 client.connect(MQTT_SERVER, MQTT_PORT, 60) # 开始循环处理网络流量 client.loop_start() try: while True: # 要上报的事件数据 event_data = '{"key": "value"}' # 要发布的主题,根据实际情况修改 topic = "$sys/" + PRODUCT_ID + "/" + DEVICE_ID + "/dp/upload" # 发布消息 client.publish(topic, payload=event_data, qos=1) time.sleep(5) except KeyboardInterrupt: print("Interrupted by user. Stopping...") finally: # 停止循环并断开连接 client.loop_stop() client.disconnect() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非洲WIP56

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值