【合宙4G Cat.1入门教程】--Cat.1 AT指令连接阿里云收发数据 上

使用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:a1odIqpc7I7
    DeviceName:Air724UG
    DeviceSecret: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开发板相关资料包

关注南风过境蜻蜓飞,开启物联网、嵌入式学习之路

猜你喜欢

转载自blog.csdn.net/qq_42965739/article/details/106439210