当前位置: 首页 > news >正文

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}}"
Token软件及获取Token密钥方式链接: https://pan.baidu.com/s/1FMKOybgvJ_rniJfiSsCUIg?pwd=yths 提取码: yths
http://www.lryc.cn/news/619895.html

相关文章:

  • ImportError: Encountered error: Failed to import NATTEN‘s CPP backend.
  • 事件处理与组件基础
  • 飞算JavaAI实现数据库交互:JPA/Hibernate + MyBatis Plus基础功能学习
  • 基于微信小程序的工作日报管理系统/基于asp.net的工作日报管理系统
  • CAD 的 C# 开发中,对多段线(封闭多边形)内部的点进行 “一笔连线且不交叉、不出界
  • 重生之我在公司写前端 | “博灵语音通知终端” | 登录页面
  • [量化交易](1获取加密货币的交易数据)
  • 01数据结构-Prim算法
  • Unity、C#常用的时间处理类
  • Gradle(三)创建一个 SpringBoot 项目
  • C++ 中构造函数参数对父对象的影响:父子控件管理机制解析
  • 【完整源码+数据集+部署教程】火柴实例分割系统源码和数据集:改进yolo11-rmt
  • 学习语言的一个阶段性总结
  • Linux操作系统应用编程——文件IO
  • Nginx的SSL通配符证书自动续期
  • 精准阻断内网渗透:联软科技终端接入方案如何“锁死”横向移动?
  • MySQL中的查询、索引与事务
  • MySQL三大存储引擎对比:InnoDB vs MyISAM vs MEMORY
  • RuoYi-Cloud 接入 Sentinel 的 3 种限流方式
  • Android 双屏异显技术全解析:从原理到实战的多屏交互方案
  • Ubuntu 20.04 虚拟机安装完整教程:从 VMware 到 VMware Tools
  • 基于.Net Framework4.5 Web API 引用Swagger
  • nginx高性能web服务器实验
  • INTERSPEECH 2025 | 数据堂诚邀您参加MLC-SLM挑战赛暨研讨会
  • JVM安全点轮询汇编函数解析
  • 【个人简单记录】PLT,GOT函数加载机制
  • 海康视觉平台VM创建项目
  • FxSound:为你的音频体验注入专业级享受
  • Android图片加载库Glide深度解析与实践指南
  • 4 种方法将联系人从 iPhone 传输到 realme