OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10441|回复: 5

通过AT指令将air202 接入阿里云

[复制链接]

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-7-27
在线时间
11 小时
发表于 2018-8-2 00:14:46 | 显示全部楼层 |阅读模式
本帖最后由 隔壁家的老婆饼 于 2018-8-2 00:33 编辑

最近一直在研究GPRS模块,今天偶得一块air202 S6开发板,据说是可以接入阿里云物联网平台,所及自己搞了一下。蛮有意思的。前期准备:
      硬件:  air202 S6开发板一块
                 合宙官方的USB-TTL 一个
                 SIM卡一张(仅支持移动、联通)
      软件:   串口调试助手
                  luat下载调试工具(合宙官网有)
      其他:   阿里云账号

首先简单介绍一下模块,
PJ_TXF`%MCM6FW]IJL3@]BN.png
可以看到上图我圈出来了两组串口,左边的串口负责固件下载,右边串口可以接受AT指令调试。供电直接可以接到USB-TTL上 5V供电
下面我们通过AT指令进行调试测试模块固件版本是否支持阿里云。

串口接后边的那一组
发送AT+CGMR后返回固件版本(AT+CGMR后要换行)
LJP%8S5K53{RE@M2GZS5N2J.png
此版本是AirM2M_V5364_AT_S
可以连接阿里云的固件为AirM2M_V5364_AT_S_NOTTS
那么我们下一步的工作就是给开发板烧写AirM2M_V5364_AT_S_NOTTS版本固件


首先到合宙官网下载上述版本固件和luat下载调试工具。
http://www.openluat.com/Product/gprs/Air202.html
串口接左边那一组
下载好后将压缩包解压,打开luat下载调试工具,打开串口,点击重启模块,将会看到打印出来一些信息。
[90G)DLF~~LS2`Q7(61Y7ZY.png
可以看到红框内模块的一些基本信息,固件版本也是和刚刚用串口调试助手打印的一样的。
现在下载固件。
点击红框右边的绿色图标,选中刚刚下载的固件,点击下载。中间会弹出一个提示《您的模块含有Vsim功能。。。。。》不用理他,直接点是。
下载时间大约1分钟左右。这里需要说一下,下载使用的USB-TTL必须是用合宙的,否则无法使用。因为下载过程波特率要求在921000,比较高,一般是达不到的。其实这句有点坑了,买了开发板还得专门买根线。。。。
下载完成后重启模块,就可以看到固件版本是AirM2M_V5364_AT_S_NOTTS。

到此,硬件准备工作就完成了。
接下来到阿里云物联网平台创建一个产品和设备。
1、进入平台,点击创建产品
捕获.PNG
2、输入产品名称,节点类型选择设备。
捕获.PNG
3、添加设备
捕获.PNG
4、填写一个英文或数字名称

5、点击确认后,会弹出一个页面,里面有三组数据。复制一下,建个记事本存一下。
      ProductKey: a1p7NHkQmoU      DeviceName: IOT1      DeviceSecret: 0XkiJUMIt4WxcFJqNtTehenvzJJ5Dsku
6、点击确认后,目前设备状态为未激活。(不用管)
7、找到查看产品详情页面,将下图中的两个topic类复制一下,放到刚刚建的记事本里暂存
捕获.PNG

到此,阿里云的准备工作完成。下面就进入正题,用AT指令,连入阿里云。
现在把串口换到右边。
打开串口调试助手,比特率是自适应的,一般115200,停止位1,数据位8,奇偶校验无,打开串口。模块开机后,待指示灯较为缓慢的闪烁时说明注册网络成功,才能往下进行。
下面开始AT指令:每条指令时间间隔大一点,等到接收到OK后再进行下一条指令
1、AT  测试
2、AT+CGMR   查看版本信息   → AirM2M_V5364_AT_S_NOTTS   (带NOTTS支持阿里云)
//激活数据网络  
3、AT+CGATT?    GPRS附着分离状态查询   返回 → 0分离  1附着    若这条指令不返回1,下面三条指令没有作用,如果不返回1,需要检查一下SIM是否欠费了。。。
4、AT+SAPBR=3,1,"CONTYPE","GPRS"   IP应用设置 3配置承载参数 1上下文标识为1 设置因特网GPRS连接  
5、AT+SAPBR=3,1,"APN","CMIOT"      IP应用设置 3配置承载参数 1上下文标识为1 设置APN连接
6、AT+SAPBR=1,1//连接阿里云认证服务器, 获取到接入服务器的用户名和密码
7、AT+HTTPINIT   初始化HTTP服务
8、AT+HTTPPARA="URL","https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicename"   设置HTTP参数   配置URL连接地址
9、AT+HTTPPARA="USER_DEFINED","Content-Type: application/x-www-form-urlencoded"        设置HTTP参数  配置用户自定义参数
10、AT+HTTPDATA=90,20000                写数据命令的参数配置,90是下一步要写入的数据长度,20000是写入额定时长,应该大于数据长度    这个90是第11步中的字符串的长度,每个人的都可能不一样,请先看第11步,查出来长度,再发送这条指令
11、productKey=a1p7NHkQmoU&sign=3d727bfc3c7b90c109457d34076d2859&clientId=IOT1&deviceName=IOT1   写入的数据
productKey、deviceName就是记事本里存的三组数中的两组,clientId和deviceName一样。着重说一下sign,sign 为 HmacMD5 算法计算出来的哈希值,计算方法我也不知道,不过网上有在线计算工具
http://encode.chahuo.com/
捕获.PNG
明文为: clientIdIOT1deviceNameIOT1productKeya1p7NHkQmoU
密钥为: 0XkiJUMIt4WxcFJqNtTehenvzJJ5Dsku         就是DeviceSecret
计算出来的哈希值为: 3d727bfc3c7b90c109457d34076d2859        这就是sign

现在第11步的字符串就可以用了,回到第10步将指令发送完成后会返回  DOWNLOAD   然后把第11步的字符串发送,返回OK
12、AT+HTTPACTION=1            HTTP方式激活  1 POST方式 0 GET方式   返回两个数   第一个是实际输出的长度,第二个是反馈的有效数据长度    这一步返回OK后还会返回另一个值,大约需要等4s左右。
13、AT+HTTPREAD                        查询HTTP响应      读取出一个二维数组,其中data中的iotId和IOTToken分别是接入阿里云MQTT的用户名和密码     IOTToken每次连接都会有变化!!      
14、AT+HTTPTERM                        终止HTTP服务
//连接阿里云MQTT服务器
15、AT+MCONFIG="IOT1","Qvr4SrOCHLh1BqX33hNE0010fb2000","0506f89e8a7d49ccbfee1a7d5b3ef7be"                配置MQTT参数  DeviceName,用户名,密码(也就是iotId和IOTToken)  
16、AT+SSLMIPSTART="a1p7NHkQmoU.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883                连接阿里云MQTT服务器        a1p7NHkQmoU是产品Key,也就是说这里连接的是一个产品的MQTT服务器,一个产品可以有多个设备
17、AT+MCONNECT=1,300                客户端向服务器请求会话                1 client 和 server 都会抛弃以前的会话, 建立一个新的会话        300 当没有数据交互时保持连接的时长
到这一步就可以看到自己的设备已经激活,在线了。
下面是向平台发消息。一开始复制的topic类在这里起作用的,把下面引号内的内容替换成自己的就OK了。
18、AT+MSUB="/sys/a1p7NHkQmoU/IOT1/thing/model/down_raw",0                订阅某个设备(设备IOT1)
19、AT+MQTTMSGSET=0                设置订阅消息的打印方式        0 主动上报到串口  即时上报
20、AT+MPUB="/sys/a1p7NHkQmoU/IOT1/thing/model/up_raw",1,0,"test1"                发布QoS1消息


在产品详情->日志服务->上行消息分析  中就可以看到成功发送的消息了。


有什么问题欢迎留言交流,不足之处,欢迎各位大佬指正。


捕获.PNG
捕获.PNG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-7-27
在线时间
11 小时
 楼主| 发表于 2018-8-2 00:27:47 | 显示全部楼层
写的比较急,有一些错别字
回复 支持 反对

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-7-27
在线时间
11 小时
 楼主| 发表于 2018-8-2 00:29:47 | 显示全部楼层
本帖最后由 隔壁家的老婆饼 于 2018-8-2 00:35 编辑

欢迎交流
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2011-11-14
在线时间
130 小时
发表于 2018-8-2 09:24:33 | 显示全部楼层
本帖最后由 ifus 于 2018-8-2 09:27 编辑

不错啊,写得好详细,好像这个模块内置有SIM卡的,而且也支持lua开发,可以用lua编程的
回复 支持 反对

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-7-27
在线时间
11 小时
 楼主| 发表于 2018-8-2 23:31:46 | 显示全部楼层
ifus 发表于 2018-8-2 09:24
不错啊,写得好详细,好像这个模块内置有SIM卡的,而且也支持lua开发,可以用lua编程的

是的,有内置SIM卡,不过还没研究过,抽时间研究研究再发一篇。
平常都是用单片机开发工程,使用串口发AT比较简便
回复 支持 反对

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2015-9-27
在线时间
37 小时
发表于 2019-1-17 09:28:50 来自手机 | 显示全部楼层
楼主,你有用单片机去实现过嘛?有没例程参考下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 05:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表