使用AT指令,快速连接上云服务器进行数据收发,达到给设备联网的效果
1、阿里云创建设备
1.1 阿里云创建产品
- 登录阿里云,支付宝账号或淘宝账号即可
阿里云物联网平台地址:https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fiot.console.aliyun.com%2Fquick_start
-
选择设备管理->产品->创建产品
-
填写相关参数:产品名称自定义,所属品类选择自定义品类,节点类型选择直连设备,联网方式为蜂窝(2G / 3G / 4G / 5G),数据方式为ICA 标准数据格式(Alink JSON),认证方式为设备密钥
-
成功创建设备
1.2 创建设备
-
在创建好的产品地下添加设备
-
DeviceName自定义,不过需要注意的是同一个产品底下不能有相同的DeviceName
-创建完设备之后,阿里云会自动生成设备三元组,在后续连接阿里云时会使用到
1.3 产品功能定义
-
查看创建的产品
-
选择功能定义->编辑草稿,选择添加标注功能或添加自定义功能皆可,这里我选择添加自定义功能
-
填写相关参数,假如我们想通过4G Cat.1模块往阿里云上发送人数统计的数据
-
发布上线即可
2、开发板上云
2.1 AT指令测试(自适应波特率)
- 将配套天线正常连接,且插入4G物联网卡,使用MicroUSB数据线将开发板标号UART的MicroUSB口与电脑连接,开发板开机
- AT指令操作流程参考官方手册:连接阿里云AT流程说明(一机一密认证方案)
- 使用串口调试助手,选择开发板所的串口,波特率可为115200(模块自适应波特率),选择加回车换行,往开发板发送字符串“AT”,若返回“OK”,则可继续往下进行,否则检查错误产生原因并解决
2.2 查看AT固件版本
- 串口调试助手发送AT指令“AT+CGMR”,查询AT固件版本,根据官方手册,若版本字符串中小于409,,则该版本不支持阿里云,需要升级固件
- 此处开发板版本字符串为243,小于409,不支持阿里云,故需要我们升级固件
2.3 固件升级
- 使用MicroUSB数据线将开发板标号USB的MicroUSB口与电脑连接,开发板开机
- 打开固件下载工具,点击设备操作->720UX系列Cat1模块固件切换为AT版本
- 打开之后,选中USB BOOT下载,点击下载
- 按照提示进行操作,按住开发板的U_BOOT,再按下板卡上的重启按钮即开始更新固件
- 更新固件成功,开发板上蓝色LED灯会常亮
- 使用AT指令测试固件是否更新成功,串口调试助手发送AT指令“AT+CGMR”,返回的参数中版本字符串为409,表示固件已成功更新,该固件版本支持阿里云
2.4 激活数据网络
- 串口调试助手发送AT指令 AT+CGATT? ,查询是否附着基站网络, 返回+CGATT: 1 表示附着上了 GPRS 数据网络,可以继续往下操作
- 发送AT指令 AT+SAPBR=3,1,“CONTYPE”,“GPRS”,设置HTTP功能的承载类型,模块会返回"OK"
- 发送AT指令 AT+SAPBR=3,1,“APN”,“CMIOT”,设置pdp承载参数之APN,模块会返回"OK"
- 发送AT指令 AT+SAPBR=1,1,激活该承载的GPRS PDP上下文,模块会返回"OK"
- 发送AT指令 AT+SAPBR=2,1,查询下承载的状态,模块会返回一串字符串,包含三个参数,第一个参数1表示cid,第二个参数1表示已经连接,第三个参数表示模块获取的IP地址;SAPBR激活成功即第二个参数为1才可继续往下操作
3、HTTP鉴权
- Air724模块连接阿里云需要认证服务器, 获取到接入服务器的用户名和密码,认证方案采用一机一密
- AT 交互过程如下:
- 截图第④部的指令“AT+HTTPDATA=98,20000”中98是出现DOWNLOAD之后所发送字符得长度,下面会有讲解怎么计算
- 此过程需要根据自己创建设备时的三元组构建DOWNLOAD之后需要发送的字符串(注意:发送构建的字符串的时候串口调试助手别加回车换行,即把串口调试助手右下角的加回车换行前的√取消),构建过程如下:
- (1)获取设备三元组信息:
ProductKey:a1odIqpc7I7DeviceName:Air724UGDeviceSecret:wpnqLvOgVHOdEhqJ4koeVUUXbf6TEH59
- (2)根据合宙官方给的构造字符串格式构造,建议直接将字符串复制到txt文件里用自己创建得到的设备三元组替换复制的字符串相关部分。黄色部分为设备ProductKey;绿色部分是设备经 HmacMD5 算法加密过后的哈希值,下面会讲解其如何加密得到;蓝色部分为设备的clientId,与设备DeviceName相同即可;棕色部分为设备的DeviceName
productKey=XXXX&sign=XXXX&clientId=XXXX&deviceName=XXXX
- (3)构建sign,即设备经 HmacMD5 算法加密过后的哈希值,HmacMD5算法是通过秘钥给明文加密,可通过加密网站进行加密,这里nan-feng用的加密网站:http://encode.chahuo.com/。明文构建:蓝色部分为设备的clientId,与设备DeviceName相同即可;棕色部分为设备的DeviceName;黄色部分为设备ProductKey;将自己设备的三元组信息替换相对应部分。秘钥即为设备的DeviceSecret,直接复制粘贴填入即可
明文:clientIdXXXXdeviceNameXXXXproductKeyXXXX
- 将加密得到的哈希值sign带入上面的字符串,得到完整的数据;
字符串数据:productKey=a1odIqpc7I7&sign=8d2519d724d914ec90c55a82b3de4e10&clientId=Air724UG&deviceName=Air724UG
-
附上我在记事本上做的构建字符串数据(注意数据不要有换行)
-
计算上面构造的字符串数据的长度,将字符串复制到串口调试助手,发送该字符串,即可得到该字符串的长度
-
自此,HTTP鉴权部分完成,截图中第⑤步发送AT指令“AT+HTTPACTION=1”,请求连接,若返回的HTTP状态码为200,则表示鉴权成功,若状态码为200之外的其他值,则查看合宙官方的《Luat 4G模块AT命令手册V4.1.6》,对应AT指令“AT+HTTPACTION=1”介绍有相关的状态码取值说明
-
发送AT指令“AT+HTTPREAD”查询 HTTP 服务响应,即可得到经阿里云认证的用户名和密码(此处用户名和密码与上面截图中的不一样,因为nan feng第一次只截图,没保存账号密码,下面这是重新HTTP鉴权得到的用户名和密码)
用户名:ENkAiuMXiIS0nySaKnl6000100
密码:^1^1590679060769^3cebfceab74dfae
本文参考合宙官方手册,做为自己备忘所用,如果发现本文有错误的地方欢迎批评、指正,若本文对您有所帮助,转发、分享也是笔者坚持的动力,扫码关注微信公众号,后台回复 合宙Cat.1 获取Air724UG 4G LTE开发板相关资料包