前言
本篇分享:
这次将会用几篇博客分享STM32MP157实现串口接收数据上云的一个基础功能,实现STM32MP157的串口在接收到数据时能上传至服务器,让用户可以随时随地查看一个设备的实时信息。
在上一篇博客中我们已经在云平台创建好了展示数据的设备,本篇将分享如何使用电脑串口调试助手向4G模块发送指令,实现4G模块向云平台发送数据。
4G设备向云发送数据:
一.AT指令
第一部分(使4G模块处于正常工作状态):
AT\r //模块开机状态下发送AT\r匹配波特率
AT+CGMI\r //读取模块厂商信息
AT+CGMR\r //读取详细的固件版本AirM2M_V5364_AT_S_NOTTS才支持
AT+CPIN?\r //查询卡是否插好
AT+CSQ\r //查询设置信号质量
AT+CREG?\r //查询网络注册状态
AT+CGATT?\r //查询附着GPRS网络
AT+CSTT="","","" \r //设置自动选择APN
AT+CIICR\r //激活移动场景,激活后能获取到IP
AT+CIFSR\r //查询IP,只有获取到IP后才能上网
首先,可以用一个USB转TTL串口模块将电脑与4G模块连接,并使用串口调试助手向4G模块发送指令。
这里推荐使用有保存串口发送数据的串口调试助手,如格西烽火:
波特率设置成9600、115200都可以
连接上后,向4G模块发送AT指令,向4G模块发送上述指令无error返回即表明4G模块处于正常工作模式
第二部分(建立连接):
这部分使用三条AT指令用于实现4G模块与云平台的连接,格式如下图所示
AT+MCONFIG="ClientID","username","password"\r
AT+SSLMIPSTART="域名 ","端口"\r
AT+MCONNECT=1,120\r
第二部分建立连接的AT指令首先需要得到MQTT连接参数
- 连接参数要如何得到可以看一下阿里云官方文档,讲得十分清楚
- 计算参数软件:MQTT_Password工具包
- 还可以直接使用阿里云参数小工具一键生成所有所需参数
这里简述一下阿里云平台的操作,点击之前创建的设备,点击查看DeviceSecret,一键复制设备证书,打开阿里云参数小工具
将复制的设备证书粘贴至此处,下方就能生成连接所需的MQTT连接参数了
接着,按照格式分别将设置MQTT、建立连接的AT指令补充完整。
补充完整后的AT指令如下:
AT+MCONFIG="863488057879453|securemode=3,signmethod=hmacmd5|","863488123279453&a1cdS8zCRA0","4AE94260C41231FE1DD13F2CC65DB1B9"\r //设置MQTT
AT+SSLMIPSTART="a1cd16zCRA0.iot-as-mqtt.cn-shanghai.aliyuncs.com","1883"\r //建立连接
AT+MCONNECT=1,120\r //建立会话
至此所有连接需要用到的AT指令都已知晓。
二.连接阿里云
首先,使用USB转TTL串口模块实现电脑与4G模块的通讯。
然后,发送AT\r至4G模块,待4G模块返回OK后即可逐一发送后续指令。
第二部分指令发送完成后返回阿里云设备界面发现设备已在线并更新最后上线时间。
第三部分(上传数据):
上传数据的AT指令格式如下所示:
AT+MPUB="Topic",1,0,"payload"\r //发送数据
三.上传数据
完成上述步骤后即可开始上传数据,先禁用设备再启用,使设备断开连接。
然后,补全上传数据的AT指令。
点击产品,设置一个功能。
再点击添加标准功能,根据需求添加一个标准功能,这里选择添加电压功能。
添加完成后,点击设备模拟器,模拟属性的上报。
模拟发送一个数据。
可以看到设备到云平台消息中划线部分就是我们要的数据。
将Topic和payload按照格式将AT指令补充完整: AT+MPUB=“Topic”,1,0,“payload”\r
发送数据其他的Topic类型可以在产品-Topic类列表里查找。
至此上传数据的AT指令已补充完整。
最后,使用USB转TTL串口模块连接电脑与4G模块。
然后,发送AT\r至4G模块,待4G模块返回OK后即可逐一发送后续指令即可实现数据上传。
注意,在串口助手中发送数据中的引号要改为 \\22并在AT指令结尾处添加 \r,否则无法正常发送,补充完后的指令如下所示。
AT+MPUB="/sys/a1cd16zCRA0/863488057879453/thing/event/property/post",1,0,"{\\22id\\22:1661139282955,\\22params\\22:{\\22CurrentVoltage\\22:37},\\22version\\22:\\221.0\\22,\\22method\\22:\\22thing.event.property.post\\22}"\r //发送数据
上传成功的数据将在物模型中显示
更换数值则修改payload中对应的值即可,如这里即是更改CurrentVoltage:后的值。
至此,4G设备已成功向云发送数据。
结语
以上就是全部内容,如有错误请批评指正。