4G模块 ML307A通过MQTT协议连接到阿里云
命令说明
基础AT指令
ATi显示产品的标志信息
AT+CIMI查询IMSI
AT+CGSN查询产品序列号
AT+CPIN查询卡状态
AT+CSQ查询信号强度
AT+CGATT查询当前PS域状态
AT+CREG查询GPRS注册状态
AT+CEREG查询4G注册状态
AT+CGPADDR查询PDP地址
AT+CMGF选择短信格式
AT+CMGS发送短信
MQTT配置指令
AT+MQTTCFG 配置连接参数
AT+MQTTCONN 连接
AT+MQTTSUB 订阅主题
AT+MQTTUNSUB 取消订阅
AT+MQTTPUB 发布消息
AT+MQTTREAD 读取消息
AT+MQTTSTATE 查询状态
AT+MQTTDISC 主动断开连接
2.流程
阿里云-计算,为了无法计算的价值https://www.aliyun.com/
第一步:配置阿里云平台
登录个人账号后,在系统界面点击进入控制台,于功能菜单中选择 “物联网平台” 模块,进入平台页面后点击“公共实例”选项,即可跳转至公共实例的管理后台界面。
在页面左侧导航栏中,沿着层级路径依次点击「设备管理」选项,进入二级菜单后找到并点击「产品」,在产品管理界面中点击「创建产品」按钮,随后跳转至产品创建页面,在此处完成产品名称等基本信息的配置填写。
在产品列表找到已创建产品,点击对应产品的查看按钮,进入产品开发详情页。
在产品开发详情页,选择[功能定义]→[前往编辑草稿]。
可选自定义功能,按需填写功能名称、数据类型、标识符等信息。
编辑草稿完,选择[发布上线]。
在页面左侧导航栏中,先找到 “设备管理” 分类并展开,点击其下的 “设备” 选项进入设备管理页面,接着点击页面中的 “添加设备” 按钮,在弹出的添加设备窗口中填写设备名称、设备类型、所属产品等相关信息。
经上述步骤,阿里云平台相关配置已全部完成。
第二步:ML307A模块接线
ML307A模块-----USB转TTL
VCC-----5V
GND-----GND
TX-----RX
RX-----TX
此模块需插入电话卡方可正常使用。
实物接线
第三步:连接阿里云云平台
将USB转TTL模块接入设备,打开串口调试助手,选定对应通信端口,设置波特率为115200。之后通过发送AT指令,即可实现设备与阿里云平台的连接,完成数据的上传与数据下发操作。
AT命令流程及命令结果:
1.查询模块信息
发送指令:ATI
说明:查询模块型号、固件版本等基础信息。
预期响应:CMCC
ML307A
ML307A-DSLN-MTSH1S00
OK
2.查询国际移动用户识别码
发送指令:AT+CIMI
说明:获取SIM卡的国际移动用户识别码,用于唯一标识移动用户。
预期响应:460023606806489
OK
3.查询设备序列号
发送指令:AT+CGSN
说明:获取移动设备的国际移动设备识别码(IMEI)或序列号,用于唯一标识设备。
预期响应:20209M0029748J002114
OK
4.查询PIN码状态
发送指令:AT+CPIN?
说明:查询SIM卡的PIN码状态,判断是否需要输入PIN码解锁。
预期响应:+CPIN:READY OK(表示PIN码已解锁,状态正常)
5.查询信号强度
发送指令:AT+CSQ
说明:获取当前网络信号强度,数值越大信号越好。
预期响应:+CSQ:22,99 OK(示例,前值为信号强度值,范围0-31)
6.查询当前PS域状态
发送指令:AT+CGATT?
说明:查询设备是否已附着到GPRS网络,附着成功才能建立数据连接。
预期响应:+CGATT:1 OK(1表示已附着,0表示未附着)
7.查询GPRS域注册状态
发送指令:AT+CREG?
说明:查询网络注册状态。
预期响应:+CREG:0,6 OK
8.查询EPS域注册状态
发送指令:AT+CEREG?
说明:查询设备在演进分组系统(EPS)域的网络注册状态,用于4G等分组域服务。
预期响应:+CEREG:0,1 OK(示例,后值1表示已注册到本地网络)
9.配置MQTT协议版本
发送指令:AT+MQTTCFG="version",4
说明:设置MQTT客户端使用MQTTv3.1.1协议版本。
预期响应:OK
10.建立MQTT连接
发送指令:
AT+MQTTCONN=0,"hxffngKIBke.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,"hxffngKIBke.Test|securemode=3,signmethod=hmacsha1,timestamp=1751339070|","Test&hxffngKIBke","84297ce7e265491701621b69449f8c29f007cf33"
说明:通过客户端连接到指定MQTT服务器,连接超时60秒,清除会话标志为1,携带用户名和加密签名参数。其中,"hxffngKIBke.iot-as-mqtt.cn-shanghai.aliyuncs.com"为MqttHost URL,"hxffngKIBke.Test|securemode=3,signmethod=hmacsha1,timestamp=1751339070|"为客户端ID,"Test&hxffngKIBke"为username用户名,
"84297ce7e265491701621b69449f8c29f007cf33"为password密钥,该参数均为Token获取。
预期响应:OK
+MQTTURC: "conn",0,0
其中Token获取:点击设备的“查看详情”界面后,找到“DeviceSecret”字段并点击其对应的“查看”选项,获取相关密钥信息。随后,在生成Token时需填入相关参数。Token获取连接在文章末。
11.订阅MQTT主题
发送指令:
AT+MQTTSUB=0,"/sys/hxffngKIBke/Test/thing/service/property/set",2
说明:MQTT客户端订阅主题"/sys/hxffngKIBke/Test/thing/service/property/set",QoS等级为2,其中hxffngKIBke为ProductKey,Test为设备名称。
预期响应:+MQTTSUB: 0,57729
OK
+MQTTURC: "suback",0,57729,1
12.发布MQTT消息
发送指令:
AT+MQTTPUB=0,"/sys/hxffngKIBke/Test/thing/event/property/post",0,0,0,42,"{"id":"123","params":{"temperature":22.8}}"
说明:MQTT客户端向主题"/sys/hxffngKIBke/Test/thing/event/property/post"发布消息,QoS数据长度为42,发送数据:{"id":"123","params":{"temperature":22.8}}
最终响应:+MQTTPUB: 0,57730,93
OK
阿里云平台数据交互操作:
数据上报成功后,可通过阿里云平台实时查看数据:
在平台控制台找到已创建的设备后,点击“查看”进入设备详情页,再点击“物模型数据”即可直观查看设备成功上报的实时数据。
平台数据下发操作
在左侧导航栏中选择【监控运维】→【在线调试】,然后选择需要调试的设备。
在串口调试助手中,可实时监控设备接收数据的状态:
总结命令流程
ATi
AT+CIMI
AT+CGSN
AT+CPIN?
AT+CSQ
AT+CGATT?
AT+CREG?
AT+CEREG?
AT+MQTTCFG="version",4
AT+MQTTCONN=0,"hxffngKIBke.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,"hxffngKIBke.Test|securemode=3,signmethod=hmacsha1,timestamp=1751339070|","Test&hxffngKIBke","84297ce7e265491701621b69449f8c29f007cf33"
AT+MQTTSUB=0,"/sys/hxffngKIBke/Test/thing/service/property/set",2
AT+MQTTPUB=0,"/sys/hxffngKIBke/Test/thing/event/property/post",0,0,0,42,"{"id":"123","params":{"temperature":22.8}}"