初级会员
- 积分
- 131
- 金钱
- 131
- 注册时间
- 2018-7-27
- 在线时间
- 11 小时
|
本帖最后由 隔壁家的老婆饼 于 2018-8-2 00:33 编辑
最近一直在研究GPRS模块,今天偶得一块air202 S6开发板,据说是可以接入阿里云物联网平台,所及自己搞了一下。蛮有意思的。前期准备:
硬件: air202 S6开发板一块
合宙官方的USB-TTL 一个
SIM卡一张(仅支持移动、联通)
软件: 串口调试助手
luat下载调试工具(合宙官网有)
其他: 阿里云账号
首先简单介绍一下模块,
可以看到上图我圈出来了两组串口,左边的串口负责固件下载,右边串口可以接受AT指令调试。供电直接可以接到USB-TTL上 5V供电
下面我们通过AT指令进行调试测试模块固件版本是否支持阿里云。
串口接后边的那一组
发送AT+CGMR后返回固件版本(AT+CGMR后要换行)
此版本是AirM2M_V5364_AT_S
可以连接阿里云的固件为AirM2M_V5364_AT_S_NOTTS
那么我们下一步的工作就是给开发板烧写AirM2M_V5364_AT_S_NOTTS版本固件
首先到合宙官网下载上述版本固件和luat下载调试工具。
http://www.openluat.com/Product/gprs/Air202.html
串口接左边那一组
下载好后将压缩包解压,打开luat下载调试工具,打开串口,点击重启模块,将会看到打印出来一些信息。
可以看到红框内模块的一些基本信息,固件版本也是和刚刚用串口调试助手打印的一样的。
现在下载固件。
点击红框右边的绿色图标,选中刚刚下载的固件,点击下载。中间会弹出一个提示《您的模块含有Vsim功能。。。。。》不用理他,直接点是。
下载时间大约1分钟左右。这里需要说一下,下载使用的USB-TTL必须是用合宙的,否则无法使用。因为下载过程波特率要求在921000,比较高,一般是达不到的。其实这句有点坑了,买了开发板还得专门买根线。。。。
下载完成后重启模块,就可以看到固件版本是AirM2M_V5364_AT_S_NOTTS。
到此,硬件准备工作就完成了。
接下来到阿里云物联网平台创建一个产品和设备。
1、进入平台,点击创建产品
2、输入产品名称,节点类型选择设备。
3、添加设备
4、填写一个英文或数字名称
5、点击确认后,会弹出一个页面,里面有三组数据。复制一下,建个记事本存一下。
ProductKey: a1p7NHkQmoU DeviceName: IOT1 DeviceSecret: 0XkiJUMIt4WxcFJqNtTehenvzJJ5Dsku
6、点击确认后,目前设备状态为未激活。(不用管)
7、找到查看产品详情页面,将下图中的两个topic类复制一下,放到刚刚建的记事本里暂存
到此,阿里云的准备工作完成。下面就进入正题,用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/
明文为: 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消息
在产品详情->日志服务->上行消息分析 中就可以看到成功发送的消息了。
有什么问题欢迎留言交流,不足之处,欢迎各位大佬指正。
|
-
-
|