若该文为原创文章,转载请注明原文出处。
使用银尔达的ML307R,测试连接Onenet,记录测试过程。程序移植和前面基本类型。这里使用串口工具测试。
一、Onenet平台创建
Onenet平台需要以下几个参数:
//MQTT
char tcp_mqtt_addr[100]="mqtts.heclouds.com"; // 地址
char mqtt_client_id[100]="YSLh7n9lFw";
char mqtt_user_name[100] = "device_001";//用户名
char mqtt_password[200] = "version=2018-10-31&res=products%2FYSLh7n9lFw%2Fdevices%2Fdevice_001&et=1797583777&method=md5&sign=EaycYPu68M52Qu7BYJdTkQ%3D%3D";//密码
char mqtt_keepalive = 60;//心跳包时间
char mqtt_publish_model_topic[100]="$sys/YSLh7n9lFw/device_001/thing/property/post";//存储发布的主题
char mqtt_subscribe_model_topic[100]="$sys/YSLh7n9lFw/device_001/thing/property/set";//存储订阅的主题
地址,端口(1883),ID(产品ID),用户名,Token, 订阅主题,发布主题。
二、连接流程
参考链接地址:
通过MQTT.fx与ML307A上传数据到OneNet物联网开放平台 by xinlong - 知乎
中移4G模组ML307C以MQTT协议接入新版OneNET完整流程 - xuan0101 - 博客园
1、MQTT控制流程

2、测试
1、测试软件
使用的工具是银尔达的串口测试工具

2、AT指令
下面过程严格按顺序执行
1、AT 
2、ATE0

3、AT+ICCID

4、AT+CSQ

5、AT+CGATT?

必须为1,附着网络,如果不用1检查卡或模块或信号
6、AT+MIPCALL?

7、AT+MQTTCFG="clean",0,1
连接到网络后必须要发送AT+MQTTCFG="clean",0,1(onenet要求clean参数必须是1)

8、连接MQTT
命令原型:
AT+MQTTCONN=<connect_id>,<host>[,<port>[,<clientID>,<user>,<passwd>]]
命令配置:
AT+MQTTCONN=0,"mqtts.heclouds.com",1883,"设备名称","产品名称","生成的token"
第一个参数是connect_id,范围是0~5,使用其中一个即可,这里使用0。
连接结果:连接成功返回
+MQTTURC: "conn",0,0

9、订阅
阅话题
命令原型:
AT+MQTTSUB=<connect_id>,<topic>,<qos>[,<topic1>,<qos1>..]
命令配置(下面这个命令可一键订阅属性类话题,OneNET平台有限制,每个设备最大只能订阅10个话题,这些限制OneNET平台文档中心均有说明):
AT+MQTTSUB=0,"$sys/产品名称/设备名称/thing/property/set",0

10、发布
命令原型:
AT+MQTTPUB=<connect_id>,<topic>,<qos>,<retain>,<dup>,<msg_len>[,<message>]
这里需要注意的是msg_len,消息长度,需要实际长度或是填0
JSON数据格式如下:
{"id":"123","version":"1.0","params":{"Iref":{"value":350}}}

遇到的问题:
上传数据不成功,发现长度不对,后面改成0就好了。
附完整AT指令,测试请修改成自己的Onenet服务器。
[2026-03-23 09:23:36.309 T] AT
[2026-03-23 09:23:36.376 R]
+MATREADY
OK
[2026-03-23 09:24:02.302 T] ATE0
[2026-03-23 09:24:02.358 R]
OK
[2026-03-23 09:24:25.630 T] AT+ICCID
[2026-03-23 09:24:25.706 R]
+ICCID: 898602F61324F5013007
OK
[2026-03-23 09:24:41.361 T] AT+CSQ
[2026-03-23 09:24:41.419 R]
+CSQ: 31,99
OK
[2026-03-23 09:24:59.827 T] AT+CGATT?
[2026-03-23 09:24:59.884 R]
+CGATT: 1
OK
[2026-03-23 09:25:25.140 T] AT+MIPCALL?
[2026-03-23 09:25:25.209 R]
+MIPCALL: 1,1,"10.156.45.195","2409:8934:4CF2:F558::1"
OK
[2026-03-23 09:25:55.547 T] AT+MQTTCFG="clean",0,1
[2026-03-23 09:25:55.613 R]
OK
[2026-03-23 09:33:40.123 T] AT+MQTTCONN=0,"mqtts.heclouds.com",1883,"device_001","BjX9g40kj7","version=2018-10-31&res=products%2FBjX9g40kj7%2Fdevices%2Fdevice_001&et=1805175384&method=md5&sign=adE0CVqIXSECGG8VEqOJyg%3D%3D"
[2026-03-23 09:33:40.209 R]
OK
[2026-03-23 09:33:40.735 R]
+MQTTURC: "conn",0,0
订阅话题
AT+MQTTSUB=0,"$sys/BjX9g40kj7/device_001/thing/property/set",0
[2026-03-23 09:34:59.698 T] AT+MQTTSUB=0,"$sys/BjX9g40kj7/device_001/thing/property/set",0
[2026-03-23 09:34:59.780 R]
+MQTTSUB: 0,26932
OK
[2026-03-23 09:35:00.014 R]
+MQTTURC: "suback",0,26932,0
AT+MQTTPUB=0,"$sys/BjX9g40kj7/device_001/thing/property/post",0,0,0,0,"{"id":"123","version":"1.0","params":{"B":{"value":3}}}"
// 接收到的数据
[2026-03-23 09:45:46.467 R]
+MQTTURC: "publish",0,0,"$sys/BjX9g40kj7/device_001/thing/property/set",45,45,{"id":"1","version":"1.0","params":{"A":123}}
如有侵权,或需要完整代码,请及时联系博主。