基于STM32的ML307R连接Onenet平台

若该文为原创文章,转载请注明原文出处。

使用银尔达的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, 订阅主题,发布主题。

二、连接流程

参考链接地址:

移动AT固件MQTT测试实例

通过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}}

如有侵权,或需要完整代码,请及时联系博主。

相关推荐
H_老邪2 小时前
新人初识ECS 服务器
运维·服务器
Predestination王瀞潞2 小时前
6.5.3 软件->W3C HTML5、CSS3标准(W3C Recommendation):Selector网页选择器
前端·css3·html5
Cx330❀2 小时前
Linux System V标准简介
大数据·linux·运维·服务器·人工智能
Java 码农2 小时前
vue cli 环境搭建
前端·javascript·vue.js
问道飞鱼2 小时前
【前端知识】使用React+Vite构建企业级项目模板
前端·react.js·前端框架·vite
CDN3602 小时前
高防服务器避坑:360CDN 高防与其他产品对比
运维·服务器·网络安全
Dxy12393102162 小时前
HTML常用CSS样式推荐:打造高效、美观的网页设计
前端·css·html
老星*2 小时前
Vaultwarden:轻量级开源密码管理器,自建服务器实现密码自由
运维·服务器·开源
酉鬼女又兒2 小时前
零基础入门前端JavaScript Object 对象完全指南:从基础到进阶(可用于备赛蓝桥杯Web应用开发赛道)
开发语言·前端·javascript·职场和发展·蓝桥杯