安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程

前言

安信可 A9/A9G GPRS(GPS) 模块因为有GPRS,相比WIFI,它可以随时随地联网,实现24小时稳定在线,不受地理位置限制,而且提供基站定位和GPS定位功能。提供AT固件使用起来也非常简单,几条命令就快速配置成功。
另外,AT指令固件集成了机智云接入协议,使用简单的几条命令就可以快速接入机智云,从而在非常短的时间内实现M2M应用。
因此这里介绍如何使用A9/A9G模块快速建立一个简单的M2M应用。

目标

  1. A9/A9G内部集成了一个应用A9Tracker(定位器),实现手机远程查看定位器实时位置以及电子围栏功能,具体使用方法及效果可以看这里(A9/A9G GPRS模块内部集成应用A9Tracker使用方法)
  2. 使用串口助手操作A9/A9G模块,实现模块接入机智云,实现模块推送消息到手机、手机发送控制数据到模块

准备

  1. 硬件:
  • 一个A9 或者 A9G模块(建议买A9 pudding开发板,方便开发),可在淘宝购买

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第1张图片
A9G

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第2张图片
A9

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第3张图片
A9/A9G pudding开发板(链接稍后放出)
  • 流量卡或者电话卡,如果不用短信或者电话功能,建议购买物联网卡,不需要实名更方便,点击图片可以买到

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第4张图片
物联网卡

  • USB转串口模块
    这个开发者一般都有,如果没有也需要购买,建议使用cilicon CP210x芯片的cp2102 usb转串口模块,供电能力比CH34和pl2303好很多。安信可也配套推出了最新的串口模块,包含了3.3V 4.2V 5V 三种供电电压,支持硬件流控,使用CP210x芯片,供电能力更好。
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第5张图片
USB转串口模块
  • 电源
    可以使用锂电池(3.7~4.2V)供电,也可以使用USB供电,但是要保证USB能提供足够的电流(建议峰值>600mA),串口供电也可以,同样保证峰值电流够大,有些串口芯片供电能力不足

开发过程

  1. 保证AT固件是最新固件,不是则需要到安信可官网下载并升级固件
    使用ATI\r\n查询固件信息,与最新固件版本对比
    固件升级指南
    固件发布页面

  2. 申请机智云账号

  • 进入机智云开发者中心:点我进入
    注册并登陆
注册登录机智云
  1. 创建产品及数据点
  • 点击创建新产品,选择移动网络,数据传输方式使用定长或者变长,定长就是每次上传数据需要把所有的数据点上传,变长就是可以一次只上传部分数据点,数据量大或者通讯频繁为了节约流量可以选变长,数据量不大可以选定长,如果你是第一次使用机智云,建议按照我的步骤来,会了之后自己探索。这里 选择了变长!
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第6张图片
产品
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第7张图片
产品创建
  • 创建数据点
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第8张图片
创建数据点
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第9张图片
数据点
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第10张图片
应用数据点
  1. 复制PK和PS


    安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第11张图片
    基本信息
  2. 连接硬件到电脑
    注意要保证足够的供电能力,或者使用锂电池在VBAT端进行供电也可以


    安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第12张图片
    硬件连接
  3. 下载并打开串口助手
    使用安信可串口助手,下载
    或者使用其它串口助手都可以,我这里使用的开源的串口助手COMTool(代码不到1000行哦),下载,版本列表

  4. 连接A9/A9G模块,上电等待串口助手显示READY字样后,发送AT(回车结尾,即AT\r\n)测试连接以及模块是否正常工作(可以多发几次)注意每一个AT命令都是以\r\n(即windows下的换行符)结尾,后面所有命令默认都以\r\n结尾

AT

OK

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第13张图片
READY AT
  1. 连接机智云
  • 查询IMEI是否正确AT+EGMR=2,7,如果不正确,看模块屏蔽罩上的IMEI,使用AT+EGMR=1,7,"..."写入

    安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第14张图片
    IMEI

  • 使用AT+GIZSTART=[PK],[PS]注册登录模块到刚刚建立的产品,使用AT+GIZSTOP注销登录
    !这里值得注意的是:
    第一次注册时这个命令的参数PKPS是必须的,如果注册过一次后,后面登录无需再使用PKPS参数,直接使用AT+GIZSTART即可登录。
    如果带参数,模块则会重新注册一遍,模块重新注册会导致手机App用户绑定的这个模块自动解绑!使用时请注意

    安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第15张图片
    注册模块到机智云产品

    这个时候在机智云后台会看到设备已经在线,点击查看可以看到更多设备信息

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第16张图片
设备在线
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第17张图片
上下线信息
  1. 设备推送消息
    使用AT+GIZSEND=,[length],[data]推送数据到云端(/手机客户端)
    这里action代表数据的含义,如下表:

定长产品:

命令 数值(十六进制) 数值(十进制) 含义
ACTION_CONTROL 0x01 1 App控制命令,设备收到手需要根据数据改变状态,然后上报状态
ACTION_READ_STATUS 0x02 2 App读取状态,设备收到后上报状态
ACTION_READ_STATUS_ACK 0x03 3 App读取状态后,设备返回状态
ACTION_REPORT_STATUS 0x04 4 设备主动上报状态
ACTION_TRANS_RECV 0x05 5 接收到MQTT原始数据
ACTION_TRANS_SEND 0x06 6 MQTT原始数据发送
ACTION_PUSH_OTA 0xfe 254 OTA

变长产品:

命令 数值(十六进制) 数值(十进制) 含义
ACTION_CONTROL 0x11 17 App控制命令,设备收到手需要根据数据改变状态,然后上报状态
ACTION_READ_STATUS 0x12 18 App读取状态,设备收到后上报状态
ACTION_READ_STATUS_ACK 0x13 19 App读取状态后,设备返回状态
ACTION_REPORT_STATUS 0x14 20 设备主动上报状态
ACTION_TRANS_RECV 0x15 21 接收到MQTT原始数据
ACTION_TRANS_SEND 0x16 22 MQTT原始数据发送
ACTION_PUSH_OTA 0xfe 254 OTA

发送数据的方式有三种格式,类似AT+CIPSEND,如下图,更详细说明见AT指令文档

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第18张图片
设备推送数据

在后台可以看到数据已经成功推送

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第19张图片
后台数据记录

上面的数据推送是随便推送的,在这里没有任何含义!
那么如何推送数据点呢,我们创建了一个数据点,且因为是变长产品,根据协议(最后会详细说明,这里可以先不深入探究),我们需要发送两个字节的数据,报告灯为开:0x0101,报告灯为关:0x0100;因为是设备主动报告数据而且产品是变长,action为20:

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第20张图片
上传数据点

在后台可以看到,推送数据点成功


安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第21张图片
后台数据
  1. 手机App查询状态以及控制设备
  • 下载机智云App (支持二次开发),在手机应用商店搜索机智云下载安装
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第22张图片
机智云App
  • 生成设备二维码
    按照机智云官方文档教程生成这个设备的二维码,机智云App二维码生成教程

  • App扫描二维码添加设备

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第23张图片
扫描二维码
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第24张图片
已绑定设备
  • 查看设备状态及控制设备
    点击已绑定的设备,进入设备页面,设备会收到客户端进入设备页面的查询设备状态的消息
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第25张图片
设备页面
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第26张图片
设备收到消息(这里收到ACTION为18的数据即读取命令,数据内容没显示是因为是非ASCII码)

点击控制开关,设备会收到控制命令

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第27张图片
点击App中的开关,发送控制命令
安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第28张图片
设备收到控制命令(这里收到ACTION为17的数据即控制命令,数据内容没显示是因为是非ASCII码)

如果设备推送设备状态(定长ACTION为4,变长ACTION为20)或者响应App的查询命令推送状态(定长ACTION为3,变长ACTION为19),App界面也会实时更新状态

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第29张图片
设备推送数据

在App可以看到数据发生了变化

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第30张图片
App灯从关变成了开状态

在后台也可以看到数据内容


安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第31张图片
后台数据内容

关于机智云的定长数据和变长数据

定长

定长就是每次传输都传输所有数据点的信息(相对简单,如果编程经验比较少,或者数据量不大或者通信频率不高建议直接选择这种方式),比如建了2个数据点,长度分别为4个字节,则每次推送都要推送两个数据点的数据即8个字节,如图:

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第32张图片
定长传输

变长

变长相对来说复杂一些!
在推送数据时,由于数据时变长的,服务器需要知道硬件上传的是哪些数据点的数据,所以需要有标志位来表示传输的是哪些数据点,所以在数据的开头会有数据点标志位,每位代表一个数据点(位数不足8位高位补0补足8位,即传输的单位是字节)。举个例子:
创建了一个数据点,数据点类型为bool类型(1位),则传输数据应该为:
0x0100(False) 或者 0x0101(True)
创建了两个数据点,数据点类型为bool类型,
当只传输第一个数据点:
0x0100(False) 或者 0x0101(True)
当只传输第二个数据点:
0x0200(False) 或者 0x0201(True)
当传输两个数据点:
0x0300(False False) 或者 0x0301(False True)或者0x0302(True False)或者0x0303(True True)

同理,三个数据点标志位占3位,比如同时传输三个数据点数据,且三个数据点的数据都为1,数据为:0x0707

如果数据点不是bool类型,比如有一个bool 类型和一个2个字节的数据

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第33张图片
两个数据

可以使用虚拟设备可以方便地进行调试,:


安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第34张图片
虚拟设备

实际发送的数据为:

安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程_第35张图片
后台数据

相关

  • 安信可(Ai-Thinker)A9/A9G GPRS模块内部集成应用A9Tracker使用方法

  • 把A9/A9G模块当成高性能单片机直接开发程序

!有疑问留言吧

你可能感兴趣的:(安信可(Ai-Thinker)A9/A9G GPRS模块10分钟使用机智云开发M2M应用教程)