ML307A模组使用MQTT协议连接ONENET平台

本文介绍了如何使用ML307A模组通过MQTT协议连接到ONENET物联网平台,包括产品与设备创建、获取连接参数、MQTT.fx客户端配置以及解决连接问题的方法,详细解析了连接过程中的关键步骤和注意事项。

资料准备

模组的资料去ONEMO网站下载,链接:http://onemo10086.com/#/product/detail/82
ONENET平台接入文档,链接:https://open.iot.10086.cn/doc/v5/fuse/detail/919

数据流通讯接入

1. 产品与设备创建

创建产品,选择数据协议为数据流
创建设备,设备名称我用的纯数字

2. 获取MQTT CONNECT报文三要素

设备使用mqtt连接时,需要用到三个参数,分别为

参数参数说明
clientid设备名称
username平台分配的产品ID
password填写经过key计算的token

我们打开设备详情页,可以看到clientid、username 和 key,我创建的产品只是测试用,为了方便大家查找问题,我就不打码了
在这里插入图片描述

参数参数值
clientid50230004
usernamef039gsIoBs
keycm9LUDk4SkRKMEd2ZFptZEhRQ1VISlhSazU1NXoxMEo=

计算token,ONENET平台提供了工具,需要注意的是【et】这个参数,要大于当前时间。
大家可以使用这个链接获取:https://tool.lu/timestamp/

在这里插入图片描述

3. MQTT.fx客户端配置

在这里插入图片描述

Publish Topic : $sys/f039gsIoBs/50230004/dp/post/json
Subscribe Topic : $sys/f039gsIoBs/50230004/cmd/request/+
发布的内容必须是json格式,必须要有id参数
{
“id”: “123”,
“params”: {
“temp”: {
“value”: “123”
}
}
}

4. ML307A模组接入

在我测试过程中,使用AT+MQTTCONN命令连接ONENET平台,返回+MQTTURC: “conn”,0,1。按照参考文档试了一天多都没成功,后面我用MQTT.fx工具测试这几个参数,完全是没问题的。
后来我在官方文档中看到了这样一个参数,AT+MQTTCFG=“clean”,0,1

<clean_session> 整型,配置会话类型。默认值0。
0
服务端必须根据当前的会话状态恢复与客户端的通信
1
服务端必须清除之前的会话启动一个新的会话与客户端通信

先发送一个 AT+MQTTCFG=“clean”,0,1 后面就能成功连接了。我感觉是因为这个模组之前是使用LwM2M协议连接过平台的原因。官方文档也垃圾了,按照步骤根本就成功不了,碰见问题真是求助无门啊,还好稀里糊涂弄成功了。

AT+MQTTCONN=0,“mqtts.heclouds.com”,1883,“50230004”,“f039gsIoBs”,“version=2018-10-31&res=products%2Ff039gsIoBs%2Fdevices%2F50230004&et=1724123945&method=md5&sign=6f%2FPY4KX%2FNqlSu44JgLTvQ%3D%3D”

AT+MQTTPUB=0,“$sys/f039gsIoBs/50230004/dp/post/json”,0,0,0,35,“{“id”:123,“dp”:{“temp”:[{“v”:38}]}}”

AT+MQTTSUB=0,“$sys/f039gsIoBs/50230004/cmd/request/+”,0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值