连网用NBIOT 移远的BC260YCN主芯片,mqtt服务器用阿里云。AT命令与其他环境关系不大。
先开通阿里云mqtt(目前个人免费),参考以下链接开通和测试
【MQTT】通过mqtt.fx连接阿里云(巨详细)_mqttfx怎么连接阿里云-CSDN博客
下载好ssCom串口调试工具
一、三元素连接方式
cpp
AT //测试与nobit的连线通
OK
AT+QSCLK=0 //禁止休眠
OK
AT+CIMI // 获取物联网卡号
460087933105679
AT+CGSN //获取SN
MPN24H30A0*****P
AT+CGATT? //检测网络是否附着到基站
+CGATT: 1
OK
AT+CGPADDR //获取分配的IP,说明网络已经正常
+CGPADDR: 0,"10.90.35.36"
OK
AT+QMTCFG="aliauth",0,"k27ebAIurCE","ec600m_cn","5a67b8*********67e8d7f" // 阿里云三元素
OK
AT+QMTOPEN=0,"iot-06z00cq6rhvrr4a.mqtt.iothub.aliyuncs.com",1883 //打开mqtt网络,这句有以下三个返回值
OK //仅代表命令发送成功
+QMTOPEN: 0,0 //代表网络打开成功
AT+QMTCONN=0,0 //连接客户端至 MQTT 服务器, 这步很关键且必须在返回+QMTSTAT: 0,1之前执行,否则报ERROR。这句有以下两个返回值
OK
+QMTCONN: 0,0,0 //代表连接客户端至 MQTT 服务器成功
AT+QMTCONN? //检测是否成功
+QMTCONN: 0,3 //成功
OK
+QMTSTAT: 0,1 //这个不清楚
AT+QMTPUB=0,2,1,1,"/k27ebAIurCE/ec600m_cn/user/update" //发布mqtt消息
>
123 //消息内容,输入完按ctrl+z
OK
AT+QMTSUB=0,1,"/k27ebAIurCE/ec600m_cn/user/get",0 //订阅mqtt消息
OK
登录到阿里云物联网平台查看日志,看到这三条日志就代表已经成功。
二、 Has256的密钥方式
1、在阿里云-设备管理中获取
{"clientId":"k27ebAIurCE.ec600m_cn|securemode=2,signmethod=hmacsha256,timestamp=1736472579660|",
"username":"ec600m_cn&k27ebAIurCE",
"mqttHostUrl":"iot-06z00cq6rhvrr4a.mqtt.iothub.aliyuncs.com",
"passwd":"bb*****************************************************01",
"port":1883}
2、AT+QMTCFG之前的命令和方式一样,本方式不需要 AT+QMTCFG命令。
3、
cpp
AT+QMTOPEN=0,"iot-06z00cq6rhvrr4a.mqtt.iothub.aliyuncs.com",1883
+QMTOPEN: 0,0 //代表网络打开成功
AT+QMTCONN=0,"k27ebAIurCE.ec600m_cn|securemode=2,signmethod=hmacsha256,timestamp=1736394890590|","ec600m_cn&k27ebAIurCE","你的passwd" //连接客户端至 MQTT 服务器, 这步很关键且必须在+QMTOPEN: 0,0 之后执行,否则报ERROR。这句有以下两个返回值
OK
+QMTCONN: 0,0,0 //代表连接客户端至 MQTT 服务器成功
AT+QMTCONN? //检测是否成功
+QMTCONN: 0,1 //成功,有时会是+QMTCONN: 0,3
OK
AT+QMTPUB=0,2,1,1,"/k27ebAIurCE/ec600m_cn/user/update" //发布mqtt消息
>
123 //消息内容,输入完按ctrl+z
OK
AT+QMTSUB=0,1,"/k27ebAIurCE/ec600m_cn/user/get",0 //订阅mqtt消息
OK
- 登录到阿里云物联网平台查看日志,看到三条日志就代表已经成功。
三、串口调试常见返回值16进制与字符对照
0D 0A 是windows的回车和换行 0D是回车
4f 4b OK
41 54 AT
AT+QMTOPEN=0,"iot-06z00cq6rhvrr4a.mqtt.iothub.aliyuncs.com",1883
41 54 2B 51 4D 54 4F 50 45 4E 3D 30 2C 22 69 6F 74 2D 30 36 7A 30 30 63 71 36 72 68 76 72 72 34 61 2E 6D 71 74 74 2E 69 6F 74 68 75 62 2E 61 6C 69 79 75 6E 63 73 2E 63 6F 6D 22 2C 31 38 38 33 0D 0D 0A
OK
4F 4B 0D 0A 0D 0A
+QMTOPEN: 0,0
2B 51 4D 54 4F 50 45 4E 3A 20 30 2C 30 0D 0A
AT命令多返回值的问题,能否用16进制解决?