安信可科技

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
gprs:examples [2019/12/21 08:24]
aithinker_fae [更新历史]
gprs:examples [2020/04/13 03:03] (当前版本)
aithinker_fae [GPS定位]
行 1: 行 1:
 +====== GSM/​GPRS操作示例 ======
  
 +说明:本页面操作示例使用串口助手进行开发演示。
 +
 +**请先仔细看右边的目录,按模块,寻找自己需要的功能**
 +
 +====== 更新历史 ======
 +更新说明:
 +   
 +    2018年3月26日:
 +    固件版本:A9/​A9_gV02.00.20180327RC
 +    添加:
 +        1.A9G的GPS低功耗模式
 +        2.A9/​A9G的HTTP和MQTT的功能
 +        3.A9/​A9G模组的串口低功耗以及GPIO低功耗
 +    优化:
 +        1.A9/​A9G的AT+RST指令进行优化
 +        2.A9/​A9G的AT+LOCATION指令进行优化
 +                ​
 +
 +====== A9/​A9G(GPRS) ======
 +
 +====== 模组软复位及关机 ======
 + AT+RST=X ​  //​X=1表示软重启,​X=2表示关机
 +
 +示例
 + AT+RST=1 //​软件重启
 + Init...
 + +CREG: 2
 + +CTZV:​18/​03/​30,​06:​59:​43,​+08
 + +CREG: 1
 + +CTZV:​18/​03/​30,​06:​59:​44,​+08
 + OK
 + A9/A9G
 + V02.00.20180327RC
 + Ai_Thinker_Co.LTD
 + READY
 +
 +示例2:
 + AT+RST=2 //​运行这条指令模组会进入管断状态,​前提是模组的供电管教是VBAT3.5V~4.2V
 +
 +===== 电话接收 =====
 +
 +相关指令 ​
 + ATDxxxxx;//​xxx为电话号码
 +示例
 +打电话
 + ATD10086
 + OK
 + +CIEV: "​CALL",​1
 + +CIEV: "​SOUNDER",​1 //​响铃
 + +CIEV: "​SOUNDER",​0 //​挂断
 + +CIEV: "​CALL",​0
 + BUSY //​显示BUSY
 +
 +接到短话  ​
 + (若想使用来电提醒功能,请使用AT+CLIP=1;​注意,该功能必须需要你的SIM卡自带来电提醒功能)
 + RING
 + RING
 +
 +===== 短信设置 =====
 +
 +相关指令
 + AT+CPMS="​SM","​SM","​SM" ​ //​设置短信存储单元
 + AT+CMGF=0/​1 //​设置短信格式,1为text格式读取,0为pud格式读取
 + AT+CMGR=x //​读取短信内容,​x为第几条短信
 + AT+CMGL=4/"​ALL"​ //​查看短信列表 PUD格式下读取参数为4, txt格式要发送AT+CMGL="​ALL"​
 + AT+CMGD=1 //​删除短信。 若果使用AT+CMGD=1,​4 ​ 则为删除所有短信
 +示例
 +
 + AT+CPMS="​SM","​SM","​SM"​ //​设置短信存储单元,同时也可以查看短信容量
 + +CPMS: 0,​50,​0,​50,​0,​50
 + OK
 +
 + AT+CMGF=1 //​设置为TXT格式读取
 + OK
 +
 + +CIEV: "​MESSAGE",​1 //​接收到短信,​内容包括电话号码和时间以及内容
 + +CMT: "​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​14:​52+08"​
 + 111
 +
 + +CIEV: "​MESSAGE",​1
 + +CMT: "​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​16:​25+08"​
 + 222
 +
 + AT+CMGF=0 //​设置为PUD格式接受
 + OK
 +
 + +CIEV: "​MESSAGE",​1 //​以PUD接收到短信,​内容包括电话号码和时间以及内容
 + +CMT: ,23
 + 0891683110602305F0240D91687186935218F500007101909061452303B3D90C
 +
 + +CIEV: "​MESSAGE",​1
 + +CMT: ,23
 + 0891683110602305F0240D91687186935218F500007101909071202303341A0D
 +
 + AT+CMGL=4 //​列出所有短信-> ​ pud格式,使用这条命令参数为4
 + +CMGL: 1,1,,23
 + 0891683110602305F0240D91687186935218F500007101909041252303B1580C
 + +CMGL: 2,1,,23
 + 0891683110602305F0240D91687186935218F50000710190906152230332990C
 + +CMGL: 3,1,,23
 + 0891683110602305F0240D91687186935218F500007101909061452303B3D90C
 + +CMGL: 4,1,,23
 + 0891683110602305F0240D91687186935218F500007101909071202303341A0D
 + OK
 +
 + AT+CMGF=1 //​设置为TXT格式读取
 + OK
 +
 + AT+CMGL="​ALL"​ //​列出所有短信-> ​ txt格式,使用这条命令参数为ALL
 + +CMGL: 1,"REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​14:​52+08"​
 + 111
 + +CMGL: 2,"REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​16:​25+08"​
 + 222
 + +CMGL: 3,"REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​16:​54+08"​
 + 333
 + +CMGL: 4,"REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​17:​02+08"​
 + 444
 + OK
 +
 + AT+CMGR=1 //​读取第一条短信
 + +CMGR: "REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​14:​52+08"​
 + 111
 + OK
 +
 + AT+CMGR=2 //​读取第二条短信
 + +CMGR: "REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​16:​25+08"​
 + 222
 + OK
 +
 + AT+CMGR=3 //​读取第三条短信
 + +CMGR: "REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​16:​54+08"​
 + 333
 +
 + AT+CMGD=1 //​删除第一条短信
 + OK
 +
 + AT+CMGD=2 //​删除第二条短信 ​  ​谨记 ​ 删除第一条后,第二条内容不会自动跑到第一条,而是依然占据第二条短信,但是当所有短信都删除后,再接收到短信后,会自动排列到第一条信息的位置
 + OK
 +
 + AT+CMGD=3 //​删除第三条短信
 + OK
 +
 + AT+CPMS="​SM","​SM","​SM"​ //​查看一下短信容量
 + +CPMS: 1,​50,​1,​50,​1,​50
 + OK
 +
 + AT+CMGL="​ALL"​ //​删除了3条之后,查看短信列表,只剩1条
 + +CMGL: 4,"REC READ","​+86xxxxxxxxxxx",,"​2017/​10/​09,​09:​17:​02+08"​
 + 444
 + OK
 +
 + AT+CMGD=1,​4 //​删除所有短信
 + OK
 +
 +**发送短信**
 +
 + AT+CMGF=1 ​   //​文本方式发送  ​
 + AT+CMGS="​xxxxxxxxxxx(电话号码)" ​  //​返回>,​然后输入要发送的txt内容,发送数据,之后请取消”发送新行”选项,​勾选"​HEX(16进制发送)"​选项,最后发送0x1a即可。
 +
 +{{ :​gprs:​send_message_chinese.docx |中文发送短信}}
 + 另外可以使用PUD的编码方式发送信息: ​
 + AT+CMGS=XX //​要发送的字节数
 + >​xxxxxxxxxxxxxxxxxxxxx ​ //​PUD码(最后的操作方式和txt操作方式相似)
 + +CMGS: 0
 + OK
 +
 +===== 基站定位(含简化指令) =====
 +
 +相关指令 ​
 + AT+CREG?​ //​查询网络的注册状态
 + At+LOCATION=X(简化版) ​
 + 注意,使用基站定位功能之前,必须先AT+CGATT=1;​ AT+CGDCONT=1,"​IP","​cmnet"​ ;​AT+CGACT=1,​1;​三条指令完成附着网络以及激活之后才可执行。
 +示例
 + 优化前指令->​
 + AT+CREG=1 ​  //​=1的时候是查询网络状态,模组上电默认为1
 + OK
 + AT+CREG?
 + +CREG: 1,1     
 + AT+CREG=2 ​  //​=2的时候是基站定位
 + OK
 + AT+CREG?
 + +CREG: 2,​1,"​xxxx","​xxxx",​2 ​ // 中间参数为16进制,第一个字符串得到的是LAC,第二个字符串得到的是CI
 + 基站定位可以到该网站查询:http://​www.gpsspg.com/​bs.htm
 +
 + 简化版指令->​单独使用AT+LOCATION=1,不必设置AT+CREG=2,​
 + AT+LOCATION=1(return:<​latitude>,<​longitude>​OK)
 + xx.xxxxx,​xxx.xxxxxx(小数点后固定为6位)
 + OK  ​
 + 直接返回经纬度 无需转换
 + ->​at+location这句指令需要联网获取地理位置信息,所以时间的长久取决于网络情况的好坏,而且在使用前如果没有手动附着激活的话,它会自动去做这两件事情,要的时间就更长了。想要可靠有快速,建议先使用at+cgatt=1;​ at+cgdcont=1,"​IP","​cmnet"​ ;​at+cgact=1,​1;​附着激活并保证具备联网能力
 +
 +===== 获取基站下发时间 =====
 +
 +相关指令 AT+CCLK?
 +
 +指令解读 该指令在内部进行处理,在模块初始化时,模块获取了基站下发的时间后,将该时间存储在芯片的RTC寄存器中,使用AT+CCLK?​即可读取出时间。
 +
 +注意使用联通卡获取的时间是有问题的。
 +
 +示例
 + AT+CCLK ?
 + +CCLK: "​17/​10/​07,​02:​50:​55+08"​
 + //​该时间为零时区时间,17年10月7日2点50分55秒。+08为时区,我们这里是东八区,所以本地时间是10点50分55秒
 + OK
 +
 +===== HTTP =====
 +
 +相关指令:
 + AT+HTTPGET=<​url>​ //​统一资源标志符,可以是域名或者是IP地址
 + AT+HTTPPOST=<​url>,<​content_type>,<​body_content> ​  //<​content_type>​ : 网络文件的类型和网页的编码的内容类型
 +  ​         //<​body_content>​ : body的文本
 +
 +示例
 + AT+CGATT=1 ​ //​附着网络,如果需要上网,这条指令是必选的
 + +CGATT:1
 + OK
 +
 + AT+CGDCONT=1,"​IP","​CMNET"​ //​设置PDP参数
 + OK
 +
 + AT+CGACT=1,​1 //​激活PDP,正确激活以后就可以上网了
 + OK
 +
 + AT+HTTPGET="​http://​wiki.ai-thinker.com/​gprs_download"​ //​连接网站,请求网站资源
 + OK
 + 紧接着接受的是服务器响应的信息
 +
 +
 +
 +===== MQTT =====
 +
 +示例:
 +
 +   ​AT+CGATT=1 ​         //​附着网络
 +   OK
 +
 +   ​AT+CGDCONT=1,"​IP","​CMNET"​ //​设置PDP参数
 +   OK
 +
 +   ​AT+CGACT=1,​1 //​激活PDP,正确激活以后就可以上网了
 +   OK
 +
 +   ​AT+MQTTCONN="​www.anthinkerwx.com",​1883,"​12345",​120,​0,"​Ai-thinker","​123456"​ //​客户端等待和连接服务器,同时发送CONNECT
 +   OK// 注意:(MQTT的服务器需要自己搭建)
 +
 +   ​AT+MQTTPUB="​test","​124563",​0,​0,​0  ​     //​客户端向服务端传输一个应用消息
 +   ​+MQTTPUBLISH:​ 1, test, 6, 124563
 +   OK
 +
 +   ​AT+MQTTSUB="​test",​1,​0  ​    //​客户端向服务端发送SUB报文用于创建订阅
 +   OK
 +
 +   ​AT+MQTTDISCONN  ​    //​客户端发给服务端的DISCONNECT控制报文,​表示客户端正常断开连接
 +
 +===== 透传模式和心跳包的设置 =====
 +
 +Init...
 +
 + +CREG: 3
 + +CIEV: service, ​ 0
 + +CIEV: roam, 0
 + +CREG: 3
 + +CIEV: service, ​ 1
 + +CIEV: roam, 0
 + +CREG: 1
 + +CREG: 0
 + +CREG: 1
 + A9
 + V01.03.20170926R //​固件版本信息
 + Ai Thinker Co.LTD
 + READY //​初始化完成标志 ​  ​前面的+CIEV:​ service, 1等等,是网络注册信息,在网络情况不好的时候,会在READY后面输出,没有影响。出现 +CIEV:​ service, 1;+CREG: 1;表明SIM初始化成功,网络正常。 初始化过程中如果没有检测到SIM卡,初始化信息中会出现NO SIM CARD
 +
 + AT+CCID //​查询SIM ,序列号唯一,可以用来判断卡是否正常,如果是从安信可购买的物联网卡,可以用此序列号在官网查询电话号码,充值缴费等等。
 + +CCID: 898607B1101700823754
 + OK
 +
 + AT+CREG=1 ​ // =1的时候是查询网络状态,模组上电默认为1
 + AT+CREG?​ //​查询网络注册情况
 + +CREG: 1,​5 //​第一个参数1表示允许注册入网;第二个参数5表示已注册,处于漫游状态,如果是1的话,表示已注册本地网络,出现其他参数表示不正常
 + OK
 +
 + AT+CSQ //​查询信号强度 第一个参数为信号强度值
 + +CSQ: 31,​99 //​信号强度取值为0-31,信号强度最好保持在23以上
 + OK
 +
 + AT+CGATT=1 ​ //​附着网络,如果需要上网,这条指令是必选的
 + +CGATT:1
 + OK
 +
 + AT+CGDCONT=1,"​IP","​CMNET"​ //​设置PDP参数
 + OK
 +
 + AT+CGACT=1,​1 //​激活PDP,正确激活以后就可以上网了
 + OK
 +
 + AT+CIPSTART="​TCP","​122.114.122.174",​46875 //​连接TCP服务器,
 + CONNECT OK //​此处为安信可透传云服务器,请自行修改端口
 + OK
 +
 + AT+CIPHCFG?​ //​查询心跳包的设置
 + +CIPHCFG:​0,,​ //​心跳包的默认设置发送心跳包时间间隔为0,​后面为空
 + OK
 +
 + AT+CIPHCFG=1,"​55FAFBEE"​ //​设置发送心跳包内容,长度不能低于3个字节,16进制格式
 + OK
 +
 + AT+CIPHCFG=2,"​55AFBFEE"​ //​设置接受回应包内容,长度不能低于3个字节,16进制格式
 + OK
 +
 + AT+CIPHCFG=0,​15 //​设置发送心跳包的时间15秒钟
 + OK
 +
 + AT+CIPHCFG?​ //​查询心跳包的设置
 + +CIPHCFG:​15,​55FAFBEE,​55AFBFEE //​通过上面指令设置发送间隔为15秒,心跳包与回应包后两位参数
 + OK
 +
 + AT+CIPHMODE=1 //​启动心跳包,​该命令只能在连接服务器成功以后用
 + OK
 +
 + AT+CIPTCFG?​ //​查询透传默认参数
 + +CIPTCFG:​3,​200,​50,​2000
 + //​3表示最大尝试发送失败次数,200是重发延时,单位毫秒,50是触发发送的包长度,2000是触发发送时间,单位毫秒,从输入最后一个字符算起,延至超过2000毫秒,系统也会自动发送数据
 + OK  //​请注意,心跳包的设置不是必须的,如果想自己发送心跳包或者不发送心跳包,可以不设置这些模组自带的心跳包指令。另外,心跳包的发送包设置后,是模组自动发送的,不需要人为控制,但是回应包是需要服务器设置发给模组的,即需要写代码定时返回数据给模组。如果模组超过三次以上没有接受到服务器发回来的回应包,模组会自动关闭心跳包,模组会接收到这样的数据 ​ +CIPHMODE:0 ; OK. 
 +
 + AT+CIPTMODE=1 //​启动透传模式,该指令也是只能在连接服务器成功以后使用
 + OK
 +
 + SEND DATA TO SERVER //​发送到服务器的数据
 + SERVER SEND DATA TO DEVICE //​收到的服务器的数据
 +
 + +++ //​退出透传模式,​和前一次发送时间超过2秒,输入+++,就可以退出透传模式
 + 注意,如果是单片机,不要加回车换行符,如果用的是安信可的串口调试工具,请取消勾选发送新行
 + OK
 +
 + AT+CIPHMODE=0 //​退出心跳包模式
 + OK
 +
 +
 +===== 多链接 =====
 +
 +示例
 + AT+CCID ​         //​查询CCID值 用来检测是否插入SIM、
 + +CCID: 898602B8191790486325 ​     //​此ID唯一 ​
 +
 + AT+CREG? ​    //​查询SIM的网络注册状态
 + +CREG: 1,5 //​第一个参数1表示允许注册入网;第二个参数5表示已注册,处于漫游状态,如果是1的话,表示已注册本地网络,出现其他参数表示不正常
 + OK
 +
 + AT+CSQ ​          //​查询信号强度 第一个参数为信号强度值
 + +CSQ: 31,99  //​信号强度取值为0-31,信号强度最好保持在23以上
 + OK
 +
 + AT+CSQ ​          //​查询信号强度 第一个参数为信号强度值
 + CSQ: 31,99  //​信号强度取值为0-31,信号强度最好保持在23以上
 + OK
 +
 + AT+CGATT=1 ​  //​附着网络,如果需要上网,这条指令是必选的
 + +CGATT:1
 + OK
 +
 + AT+CGDCONT=1,"​IP","​CMNET" ​  /​设置PDP参数
 + OK
 +
 + AT+CGACT=1,​1 ​    //​激活PDP,正确激活以后就可以上网了
 + OK
 +
 + AT+CIPSTATUS?​ //​查询ip连接情况,共有8路,实际最多支持同时开4路tcpip连接
 + +CIPSTATUS:​
 + 0,IP GPRSACT ​
 + 1,IP INITIAL ​
 + 2,IP INITIAL ​
 + 3,IP INITIAL ​
 + 4,IP INITIAL ​
 + 5,IP INITIAL ​
 + 6,IP INITIAL ​
 + 7,IP INITIAL ​
 + OK
 +
 + AT+CIPSTART="​TCP","​122.114.122.174",​36779 //​连接TCP服务器,​用户请修改自己的服务器
 + CONNECT OK
 + OK
 +
 + AT+CIPSEND=5,"​qwert"​ //​发送5个字节的字符,注意此种方式只支持可见字符
 + OK
 +
 + AT+CIPSEND=5 //​发送5字节的数据,此种方式可以发送任意二进制数据
 + 12345
 + OK
 +
 + AT+CIPSEND//​发送字符,以CTRL+Z(16进制的0x1a)结尾
 + qwert
 + OK
 +
 + +CIPRCV:​21,​Server Send Data Test //​收到服务器发送过来的数据,内容也可以是二进制任意数据
 +
 + AT+CIPSTATUS? ​         //​查询链路状态
 + +CIPSTATUS:​
 + 0,CONNECT OK 
 + 1,IP INITIAL ​
 + 2,IP INITIAL ​
 + 3,IP INITIAL ​
 + 4,IP INITIAL ​
 + 5,IP INITIAL ​
 + 6,IP INITIAL ​
 + 7,IP INITIAL ​
 + OK
 +
 + AT+CIPCLOSE ​ //​关闭该链路
 + OK
 +
 + AT+CIPMUX? /​查询是否开启多连接
 + +CIPMUX:0
 + OK
 +
 + AT+CIPMUX=1 ​    //​开启多链接
 + OK
 +
 + AT+CIPSTART="​TCP","​122.114.122.174",​36779 ​ //​发起第一个TCP连接
 + +CIPNUM:​0 ​   //​只有点开启多链接的时候才会有,1为返回的链路号
 + CONNECT OK
 + OK
 +
 + AT+CIPSTART="​TCP","​www.baidu.com",​80 ​  //​发起第二路连接  ​
 + +CIPNUM:​1 ​   //​只有点开启多链接的时候才会有,1为返回的链路号
 + CONNECT OK
 + OK
 +
 + AT+CIPSTART="​TCP","​www.hao123.com",​80 ​     //​发起第三路连接
 + +CIPNUM:​2 ​   //​只有点开启多链接的时候才会有,2为返回的链路号
 + CONNECT OK
 + OK
 +
 + AT+CIPSTATUS
 + +CIPSTATUS:​
 + 0,CONNECT OK 
 + 1,CONNECT OK 
 + 2,CONNECT OK 
 + 3,IP INITIAL ​
 + 4,IP INITIAL ​
 + 5,IP INITIAL ​
 + 6,IP INITIAL ​
 + 7,IP INITIAL ​
 + OK
 +
 + AT+CIPCLOSE=3 ​  //​关闭链路号为3的连接
 + +CME ERROR:​50 ​  //​链路3实际上没有创建
 +
 + AT+CIPCLOSE=2 ​  //​关闭链路号为2的连接
 + OK
 +
 + AT+CIPCLOSE=1 ​  //​关闭链路号为1的连接
 + OK
 +
 + AT+CIPSTATUS
 + +CIPSTATUS: ​  //​只剩下链路0,其他两路关闭
 + 0,CONNECT OK 
 + 1,IP CLOSE 
 + 2,IP CLOSE 
 + 3,IP INITIAL ​
 + 4,IP INITIAL ​
 + 5,IP INITIAL ​
 + 6,IP INITIAL ​
 + 7,IP INITIAL ​
 + OK
 +
 + AT+CIPSTART="​TCP","​www.baidu.com",​80
 + +CIPNUM:1
 + CONNECT OK
 + OK
 +
 + AT+CIPSTART="​TCP","​www.hao123.com",​80
 + +CIPNUM:2
 + CONNECT OK
 + OK
 +
 + AT+CIPSTART="​UDP","​121.41.97.28",​60006
 + +CIPNUM:3
 + UDP BIND OK
 + OK
 +
 + AT+CIPSTATUS?​
 + +CIPSTATUS: ​  //​可以看到0-3链路号都被占用,建立了4路IP连接
 + 0,CONNECT OK 
 + 1,CONNECT OK 
 + 2,CONNECT OK 
 + 3,SOCKET OK 
 + 4,IP INITIAL ​
 + 5,IP INITIAL ​
 + 6,IP INITIAL ​
 + 7,IP INITIAL ​
 + OK
 +
 + AT+CIPSEND=0,​5,"​qwert"//​链路0发送5个字节的字符,"​qwert"​,本指令只支持可见字符
 + OK
 +
 +===== A9/​A9G使用安信可微信公众号以及A9Tracker_app获取定位信息 =====
 + 
 +相关指令
 + AT+GIZQRCODE //​获取二维码字符串,用来制作二维码扫码绑定,或者直接在微信上手动该字符串输入绑定
 + AT+GIZTRACKER=1,​0,​10,​1 //​连接服务器 ​
 +
 + http://​wiki.ai-thinker.com/​gprs/​a9g/​a9tracker APP对接教程
 + http://​wiki.ai-thinker.com/​gprs/​a9g/​MP 微信对接教程
 +
 +指令解析
 + AT+GIZTRACKER=<​ on/off >,​[server],​[upload interval],​[use LBS],​[pk],​[ps]
 +
 + n/​off ​     值:0/​1.该参数为0时关闭,设置为1为自动上传
 + serve ​     选择服务器:0为安信可服务器;1为自定义服务器(第一次使用的时候必须附带PK,​PS参数,连接成功后,这两个参数会被保存)
 + up in      上传数据的时间间隔(s),​默认值为0(不上传)
 + use LBS    值:0/​1;设置1,从LBS获得定位信息;​设置0,从GPS获取定位信息。当GPS信号弱,可以选择从LBS获取信息(A9只能从LBS获取信息)。默认值为0。
 + pk ps      产品的key 和secret.这些是在自己创建产品时用到的,​详见9/​A9G十分钟对接机智云创建属于自己产品的程:​http://​www.jianshu.com/​p/​e3d86a263be5
 +
 +示例
 + AT+GIZQRCODE
 + +GIZQRCODE:​xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//​一长串字符串
 +
 + AT+GIZTRACKER=1,​0,​10,​1 —>​参数3为上传定位信息的时间间隔,参数4为选择使用基站定位功能还是GPS功能上传定位信息1->​LBS,​0->​GPS
 + +GIZTRACKER:​Start —>​返回值
 + OK
 + +GIZWITS:​sign in end
 + +GIZWITS:​conn end —>​连接服务器成功
 + OK
 +
 + 注意:该命令会自动保存,开机之后自动运行该命令连接服务器。如果需要停止运行使用At+GIZTRACKER=0;​
 +
 +===== A9/​A9G十分钟对接机智云创建属于自己产品的教程 =====
 +
 +功能解读 ​ 该功能的实现,需要客户首先子机智云官网申请开发者账号,创建产品,获得产品的 Product Key和 Product Secret ,然后,常见上报的数据点类型,按以下方式发送数据即可上传到机智云服务器。
 +
 +
 +====== A9G(GPS) ======
 +
 +<​del>​===== GPS(简化版) =====</​del>​
 +<​del>​相关指令
 + AT+LOCATION=X
 +示例
 + At+LOCATION=0(return:<​latitude>,<​longitude>​OK)
 + xx.xxxxx,​xxx.xxxxxx(小数点后固定为6位)
 + OK  ​
 +</​del>​
 +===== GPS定位 =====
 +
 +相关指令
 + AT+GPS=1,​开 GPS
 + AT+GPS=0,​关闭 GPS
 + AT+GPS? ,查询 GPS 的状态
 + AT+GPSRD=N,N 是数字表示 N 秒输出一条 NEMA 信息从 AT 串口。
 + AT+LOCATION=X //​X=1获取的是基站的地址,X=2是获取的是GPS的地址
 +
 + 注意,在打开GPS之后,模组的GPS_TXD会以9600波特率默认输出定位信息,这个不影响整个模组的波特率,例如A9G模组的工作波特率是115200,发送AT指令开启GPS,这个时候GPS_TXD会以9600波特率输出信息,AT串口依然是115200。
 +
 + 另外,请注意,该定位信息会输出GNGGA GNRMC而不是 GPGGA和GPRMC,模组使用的是混合定位系统,包括了GPS,​BDS和GNNS(全球导航系统)。解释一下输出信息头的组成,例如GPGGA,拆分为GP+GGA->​定位系统+输出数据类型 ,​GP为GPS定位系统,GGA为时间、位置、卫星数量的输出信息,同理GNGGA即为GN+GGA->​定位系统+输出数据类型,​GN为全球导航系统, GGA为时间、位置、卫星数量的输出信息,其他指令请依次类推。
 + 最后,模组默认的是GPS+BDS混合模式输出,那么输出的信息即为GN开头的数据,如果设置为单独模式,则为该模式开头的数据输出,例如设置为GPS模式,则输出信息为GPGGA。
 +示例
 + AT+GPS=1 //​开启GPS功能
 + OK
 +
 + AT+GPSRD=N //​N秒输出一条 NEMA 信息 从 AT 串口
 + +GPSRD:
 + $GNGGA,​000840.261,​2236.3719,​N,​11350.4081,​E,​0,​0,,​153.2,​M,​-3.2,​M,,​*4F
 + $GPGSA,​A,​1,,,,,,,,,,,,,,,​*1E
 + $BDGSA,​A,​1,,,,,,,,,,,,,,,​*0F
 +
 + $GPGSV,​1,​1,​00*79
 + $BDGSV,​1,​1,​00*68
 +
 + $GNRMC,​000840.261,​V,​2236.3719,​N,​11350.4081,​E,​0.000,​0.00,​060180,,,​N*5C
 + $GNVTG,​0.00,​T,,​M,​0.000,​N,​0.000,​K,​N*2C
 +
 + AT+LOCATION = 2 //​获取GPS的地址信息,前提是GPS能够看得到卫星才能够返回,否则会返回GPS NOT FIX NOW
 +
 +
 +
 +===== GPS扩展指令 =====
 +相关指令
 + AT+GPSMD=1 ​   GPS模式(暂时不支持单独的BD模式,bd系统暂时只覆盖亚洲)
 + AT+GPSMD=2 ​   GPS+BD模式
 + 模组默认的是GPS+BDS混合模式输出,那么输出的信息即为GN开头的数据,如果设置为单独模式,则为该模式开头的数据输出,例如设置为GPS模式,则输出信息为GPGGA。
 +
 +示例
 + AT+GPS=1 ​     先打开GPS
 + AT+GPSMD=x ​   x=1或者2,选择开启那个模式, 默认为GPS+BDS模式
 + At+GPSRD=x ​   数字x表示 x 秒输出一条 NEMA 信息从 AT 串口
 +
 +===== GPS的低功耗模式 =====
 +
 +相关指令
 + AT+GPSLP=x //​GPS的低功耗设置,​x的取值分别是0,​1,​2
 + AT+GPSLP=0 //​正常模式  ​  ​---- ​ 电流的值测试在0.063A左右
 + AT+GPSLP=1 //​串口低功耗模式
 + AT+GPSLP=2 //​GPS低功耗模式 ​   ----  电流的值测试在0.034A左右
 + //​模组GPS的默认的默认模式是正常模式,设置GPS模式的时候不会立即生效,需要过一段时间才会生效
 +
 +
 +示例:
 + AT+GPS=1 //​开启GPS
 + AT+GPSRD=10 ​    //​10秒输出一条 NEMA 信息
 + AT+GPSLP=2 ​     //​设置GPS模式为低功耗模式
 +
 +===== AGPS =====
 +
 +相关指令
 + AT+AGPS=1,​开 AGPS,同时会打开 GPS 使用时先关闭GPS功能。
 + AT+AGPS=0,​关闭 AGPS,
 + AT+AGPS? ,查询 AGPS 的状态
 + AT+GPSRD=N,N 是数字表示 N 秒输出一条 NEMA 信息从 AT 串口。
 +
 + 注意,AGPS是辅助定位功能,加快GPS的定位时间,在使用之前建议先附着和激活网络,因此,要先使用命令附着和激活网络。
 + 注意,在打开GPS之后,模组的GPRS_RXD(因为GPS的芯片是接在gprs模组上进行通信,所以模组的GPRS_RXD实际上是gps芯片的TXD引脚)会以9600波特率默认输出定位信息,这个不影响整个模组的波特率,例如A9G模组的工作波特率是115200,发送AT指令开启GPS,这个时候GPRS_TXD会以9600波特率输出信息,AT串口依然是115200。
 +示例:
 + AT+CGATT=1 ​ //​附着网络,如果需要上网,这条指令是必选的
 + +CGATT:1
 + OK
 +
 + AT+CGDCONT=1,"​IP","​CMNET"​ //​设置PDP参数
 + OK
 +
 + AT+CGACT=1,​1 //​激活PDP,正确激活以后就可以上网了
 + OK
 +
 + AT+GPS=0
 + OK
 +
 + AT+AGPS=1
 + +AGPS:GPD OK
 + +AGPS:OK
 + OK
 +
 + AT+GPSRD=N
 + OK
 + +GPSRD:
 + $GNGGA,​050041.129,​2236.1052,​N,​11350.2770,​E,​0,​0,,​3.2,​M,​-3.2,​M,,​*4D
 + $GPGSA,​A,​1,,,,,,,,,,,,,,,​*1E
 + $BDGSA,​A,​1,,,,,,,,,,,,,,,​*0F
 +
 + $GPGSV,​4,​1,​14,​05,​59,​296,,​02,​53,​008,,​06,​37,​068,,​19,​35,​142,​*74
 + $GPGSV,​4,​2,​14,​13,​32,​180,,​12,​28,​252,,​20,​20,​255,,​25,​15,​288,​*7F
 +
 + $GPGSV,​4,​3,​14,​17,​14,​145,,​29,​11,​323,,​09,​10,​040,,​15,​08,​205,​*76
 + $GPGSV,​4,​4,​14,​30,​03,​112,,​193,,,​*75
 + $BDGSV,​1,​1,​00*68
 +
 +===== GPS指示灯的状态 =====
 +
 +相关指令
 + AT+GPNT=x ​ //​设置GPS指示灯的状态,x=0或者x=1;​
 + AT+GPNT=0 //​GPS灯为闪烁状态
 + AT+GPNT=1 //​GPS灯为电平状态 ​
 +        ​
 +示例
 + AT+GPNT=? ​  //​查询x可以设置的值
 + +GPNT: (0:led flash,1:led notice)
 + OK
 +
 + AT+GPNT=0 //​设置GPS灯的状态
 + OK
 + 
 +
 +===== 设置模组的低功耗模式 =====
 +
 +相关指令:
 +
 + AT+SLEEP=x //​设置模组的低功耗模式,x的取值分别是0,​1,​2
 + AT+SLEEP=0 //​关闭低功耗模式 ​ --- 进入低功耗的电流值是00.213A
 + AT+SLEEP=1 //​进入GPIO低功耗模式,GPIO25引脚拉低进入模组低功耗,引脚拉高将退出低功耗,GPIO25默认是高电平
 + AT+SLEEP=2 //​串口低功耗模式,可以通过串口唤醒 ​ ----  还有那么一点问题********
 +   ​注意:​ 进入串口低功耗模式,在该模式串口可以接收和发送数据,模组会在低功耗和正常模式下正常切换。
 +         ​进入GPIO口低功耗模式,在接受到数据。短信,电话不会被唤醒,需要控制引脚拉高,退出低功耗模式
 +         ​GPIO26用于低功耗模式的通知GPIO(如果进入了GPIO低功耗模式,通过用示波器连接GPIO26引脚,可以检测GPIO26引脚的电平判断是否收到数据)
 +         
 +示例1(GPIO低功耗)
 +
 + AT+SLEEP=1 ​ //​GPIO低功耗模式
 + OK
 + //​发送命令成功之后,将GPIO25引脚和GND引脚进行相连,之后继续发送AT指令是没有任何效果的:
 +
 +示例2(串口低功耗)
 +  AT+SLEEP=2 ​ //​串口低功耗模式
 +  OK
 +  //​进入串口低功耗的时候,模组消耗的电流会降低,但是还是可以发送数据
 +  AT
 +  OK
 +  //​模组发送数据,会自动退出低功耗,此时消耗电流又会升高
 +
 +
 +教程:http://​www.jianshu.com/​p/​e3d86a263be5