本手册适用于合宙的Air72X系列4G模组,AT指令与LUAT脚本兼容4G所有产品,均可使用本手册进行阿里云连接测试。
手册仅介绍MQTT方式连接与发送数据,其他方式用户可根据手册自行研究。
手册PDF版本aliyun.pdf
打开阿里云找到物联网平台,开通业务后进入控制台。
点开设备管理的产品页面,点击新建产品。
根据需求和图示说明创建产品。
创建产品完成后就可以进入设备页面添加设备了
根据提示添加设备
点击我们刚创建的设备,查看设备。
我们需要这几个参数进行连接。
根据https://oldask.openluat.com/article/1058装好驱动和luatools,下载AT固件(出厂默认就是AT)
Cat1连接设备的串口1,Cat4连接串口2。开发板直接接USB转TTL口到电脑即可,其他的自己设计的板子可使用usb转ttl等工具连接(注意电平转换)
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
查询是否附着基站,必须CGATT为1才可进行下一个指令
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
前文我们添加了一个设备记录了三元组,这里就需要使用三元组进行连接。
我们的三元组是
{
"ProductKey":
"a1mxL3s6Z7m",
"DeviceName":
"866714043075174",
"DeviceSecret":
"iWACqPLq90zRsiEhMSdPWHV8gaRAJ78O"
}
首先计算一个sign
sign 为 HmacMD5 算法计算出来的哈希值,使用网址:http://encode.chahuo.com
明文为:clientId866714043075174deviceName866714043075174productKeya1mxL3s6Z7m
密钥为:iWACqPLq90zRsiEhMSdPWHV8gaRAJ78O
结果sign:161d9143f5a4ea3f9ab60614583fd1d7
拼接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返回的数据中有iotId和iotToken,其中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 返回,才能发下一条消息。
和前文一样可以去阿里云后台查看消息
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!