AT命令连接阿里云mqtt(两种方式都有)

连网用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
  1. 登录到阿里云物联网平台查看日志,看到三条日志就代表已经成功。

三、串口调试常见返回值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进制解决?

附: 16进制转换,16进制转换文本字符串,在线16进制转换 | 在线工具

相关推荐
小鱼小鱼.oO36 分钟前
阿里云服务器安装nginx并配置前端资源路径(前后端部署到一台服务器并成功访问)
服务器·nginx·阿里云
广药门徒42 分钟前
最小硬件系统概念及其组成
单片机·嵌入式硬件
啵啵学习4 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式
avoidaily5 小时前
使用Node.js分片上传大文件到阿里云OSS
阿里云·node.js·云计算
可乐鸡翅好好吃5 小时前
通过BUG(prvIdleTask、pxTasksWaitingTerminatio不断跳转问题)了解空闲函数(prvIdleTask)和TCB
c语言·stm32·单片机·嵌入式硬件·bug·keil
才鲸嵌入式6 小时前
01 Ubuntu20.04下编译QEMU8.2.4,交叉编译32位ARM程序,运行ARM程序的方法
linux·c语言·单片机·嵌入式·arm·qemu·虚拟机
广药门徒8 小时前
我认为STM32输入只分为模拟输入 与 数字输入
stm32·单片机·嵌入式硬件
早睡的叶子9 小时前
proteus8安装教程
stm32·嵌入式硬件
天月风沙11 小时前
PX4 | 无人机关闭磁力计罗盘飞行(yaw estimate error报错解决方法)
单片机·嵌入式硬件·mcu·无人机
ANSIOT12 小时前
低功耗高安全:蓝牙模块在安防系统中的应用方案
物联网