4G模组AT指令连接阿里云

AT指令连接阿里云流程以及发布订阅流程

本手册适用于合宙的Air72X系列4G模组,AT指令与LUAT脚本兼容4G所有产品,均可使用本手册进行阿里云连接测试。

 

手册仅介绍MQTT方式连接与发送数据,其他方式用户可根据手册自行研究。

手册PDF版本aliyun.pdf

阿里云准备

新建产品

打开阿里云找到物联网平台,开通业务后进入控制台。

点开设备管理的产品页面,点击新建产品


根据需求和图示说明创建产品。


添加设备

创建产品完成后就可以进入设备页面添加设备了


根据提示添加设备


点击我们刚创建的设备,查看设备。

我们需要这几个参数进行连接。

设备连接

AT指令方式

根据https://oldask.openluat.com/article/1058装好驱动和luatools,下载AT固件(出厂默认就是AT

Cat1连接设备的串口1Cat4连接串口2。开发板直接接USBTTL口到电脑即可,其他的自己设计的板子可使用usbttl等工具连接(注意电平转换)

MCU Air 模块发送的 AT 命令都要以\r 结尾

下文中的用到的 AT 命令,约定:

红色为 MCU 发送给 Air 模块

绿色为 Air 模块发送给 MCU

配置网络

训练波特率

AT

AT

OK

查询设备版本

AT+CGMR

AT+CGMR

+CGMR: "AirM2M_Air724UG_V409_LTE_AT"

OK

查看卡状态

AT+CPIN?

AT+CPIN?

+CPIN: READY

OK

查询是否附着基站,必须CGATT1才可进行下一个指令

AT+CGATT?

AT+CGATT?

+CGATT: 1

OK

自动选择APN

AT+CSTT

AT+CSTT

OK

激活PDP

AT+SAPBR=1,1

AT+SAPBR=1,1

OK

激活移动场景

AT+CIICR

AT+CIICR

OK

查询本地 IP 地址

AT+CIFSR

AT+CIFSR

100.86.47.178

查询当前连接状态

AT+CIPSTATUS

AT+CIPSTATUS

OK

STATE: IP STATUS

HTTP鉴权

前文我们添加了一个设备记录了三元组,这里就需要使用三元组进行连接。

我们的三元组是

{

  "ProductKey": "a1mxL3s6Z7m",

  "DeviceName": "866714043075174",

  "DeviceSecret": "iWACqPLq90zRsiEhMSdPWHV8gaRAJ78O"

}

首先计算一个sign

sign HmacMD5 算法计算出来的哈希值,使用网址:http://encode.chahuo.com

明文为:clientId866714043075174deviceName866714043075174productKeya1mxL3s6Z7m

密钥为:iWACqPLq90zRsiEhMSdPWHV8gaRAJ78O

结果sign161d9143f5a4ea3f9ab60614583fd1d7

拼接DOWNLOAD参数

productKey=a1mxL3s6Z7m&sign=161d9143f5a4ea3f9ab60614583fd1d7&clientId=866714043075174&deviceName=866714043075174

长度是112这个 112 DOWNLOAD 下面的数据长度(以字节为单位),实际使用时,要根据自 己的数据长度进行修改,切记!!!

小提示:我这里写了一个小工具可以自动计算参数,网址是http://mqtt.lovemcu.cn 使用方法很简单看页面就知道了。

初始化HTTP

AT+HTTPINIT

AT+HTTPINIT

OK

配置请求地址

AT+HTTPPARA="URL",https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicename

AT+HTTPPARA="URL",https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicename

OK

配置请求头,注意,Content-Type:后面有一个空格!!!

AT+HTTPPARA="USER_DEFINED","Content-Type: application/x-www-form-urlencoded"

AT+HTTPPARA="USER_DEFINED","Content-Type: application/x-www-form-urlencoded"

OK

配置请求信息,112的意义看前文一定不要错。

AT+HTTPDATA=112,20000

AT+HTTPDATA=112,20000

DOWNLOAD

出现DOWNLOAD后发送通过前文计算出来的参数

productKey=a1mxL3s6Z7m&sign=161d9143f5a4ea3f9ab60614583fd1d7&clientId=866714043075174&deviceName=866714043075174

OK

请求连接,等待HTTPACTION的信息上报,正常的话会回复状态码200

AT+HTTPACTION=1

AT+HTTPACTION=1

OK

+HTTPACTION: 1,200,124

读取请求结果

AT+HTTPREAD

AT+HTTPREAD

+HTTPREAD: 124

{"code":200,"data":{"iotId":"GAQYuiW0qid2H5NfMu9l000100","iotToken":"^1^1589511374876^27f6f5a03b709fc"},"message":"success"}

OK

HTTPREAD返回的数据中有iotIdiotToken,其中iotId的值为MQTT client的用户名, iotToken 的值为 MQTT client 的密码

关闭HTTP

AT+HTTPTERM

AT+HTTPTERM

OK

连接阿里云

配置连接,第一个参数是clientId我使用模块的IMEI,第二个参数和第三个参数是通过HTTP请求得到的,见前文说明

AT+MCONFIG="866714043075174","GAQYuiW0qid2H5NfMu9l000100","^1^1589511374876^27f6f5a03b709fc"

AT+MCONFIG="866714043075174","GAQYuiW0qid2H5NfMu9l000100","^1^1589511374876^27f6f5a03b709fc"

OK

建立连接,第一个参数需要根据实际项目productKey修改

AT+SSLMIPSTART="a1mxL3s6Z7m.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883

AT+SSLMIPSTART="a1mxL3s6Z7m.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883

OK

CONNECT OK

建立会话,收到CONNECT OK后立刻发送指令建立会话,不然会被踢,一定注意!!!

AT+MCONNECT=1,120

AT+MCONNECT=1,120

OK

CONNACK OK

到这里连接部分就结束了,打开阿里云就可以看到我们的设备在线了。

发布与订阅消息

找到我们设备的详情页可以看到所有主题,根据阿里云文档去选择自己使用的主题我这里使用自定义的主题进行演示。页面有详细权限,我们设备要选择正确的主题。比如发布消息是update结尾的,订阅主题是get结尾的。

订阅主题

AT+MSUB=" /a1mxL3s6Z7m/866714043075174/user/get ",0  

AT+MSUB="/a1mxL3s6Z7m/866714043075174/user/get",0

OK

SUBACK

设置收到数据时的打印方式

配置为0时主动上报到串口。有新订阅消息时,上报的 URC +MSUB<topic>,<len>,<message>

配置为1时缓存模式。有新订阅消息时,上报的 URC 为: +MSUB<store_addr> 然后用 AT+MQTTMSGGET 来读消息

我这里配置为0

AT+MQTTMSGSET=0

AT+MQTTMSGSET=0  

OK  

在阿里云点击发布消息按钮向设备发送消息


模块主动上报消息

+MSUB: "/a1mxL3s6Z7m/866714043075174/user/get",11 byte,Hello World

订阅功能正常。

发布消息

发布 Qos0 消息 AT+MPUB="/a1mxL3s6Z7m/866714043075174/user/update",0,0,"HelloWorld"

AT+MPUB="/a1mxL3s6Z7m/866714043075174/user/update",0,0,"HelloWorld"

OK 

在阿里云找到运维监控,日志服务,找到我们的设备,可以看到消息记录里有一条设备上报的消息。点击那条MessageID可以看详情。

可以看到我们的数据正常发的阿里云上了。

发布 Qos1 消息

AT+MPUB="/a1mxL3s6Z7m/866714043075174/user/update",1,0,"HelloWorld"

AT+MPUB="/a1mxL3s6Z7m/866714043075174/user/update",1,0,"HelloWorld"

OK

PUBACK

Qos1 消息必须等到 PUBACK 返回,才能发下一条消息。

和前文一样可以去阿里云后台查看消息

以上交互流程可使用以下工具方便调试

FreeAT_1.1.1.exe

aliyun.ini




  • 发表于 2020-05-15 16:23
  • 阅读 ( 3199 )
  • 分类:默认分类

0 条评论

请先 登录 后评论
不写代码的码农
国梁

24 篇文章

作家榜 »

  1. 技术销售Delectate 43 文章
  2. 陈夏 26 文章
  3. 国梁 24 文章
  4. miuser 21 文章
  5. 晨旭 20 文章
  6. 朱天华 19 文章
  7. 金艺 19 文章
  8. 杨奉武 18 文章