GSM/GPRS操作示例

说明:本页面操作示例使用串口助手进行开发演示。

请先仔细看右边的目录,按模块,寻找自己需要的功能

A6(GPRS)

电话接收

相关指令

ATDxxxxx;//xxx为电话号码

示例

打电话

ATDxxxxxxxxxxx
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		//列出所有短信->  pud格式,使用这条命令参数为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+CCLK?来查询。(若改动,该行内容会取消,并修改修示例内容,固件发布处会有更新记录)。模组每次上单初始化的过程中会获取基站下发的时间。 另外,使用AT+CGATT=1指令附着网络的时候会获得基站下发的时间,但是使用第二次无效。

AT+CGATT
OK
+CTZV:17/10/07,05:48:38,+08

基站定位

相关指令 AT+CREG?

示例

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进制
在相关网站查询:http://www.gpsspg.com/bs.htm

HTTP

以百度为例(前面的步骤要按流程配置,一定不能忘记)(HTTPGET不可用,会在下一版本进行更新) 示例

AT+CCID
AT+CREG?
AT+CGATT=1
AT+CGDCONT=1,"IP","CMNET" 
AT+CGACT=1,1 
创建连接 
at+cipstart="TCP","www.baidu.com",80
两种发送请求方式:
1.透传发送
AT+CIPTMODE=1 //进入透传
OK
GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n	//发送GET请求信息
2.非透传模式
AT+CIPSEND=45//发送的字节长度
>
GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n   //出现上述箭头后,发送GET请求信息

多链接

示例

at+ccid   //查询ccid,确定是否有sim卡
+SCID: SIM Card ID: 898602#4221620070426
OK
at+creg?  //查询是否注册上网络
+CREG: 1,5
OK
at+csq    //查询信号
+CSQ: 31,99
OK
at+cgatt=1          //附着网络
+CTZV:16/07/06,11:34:17,+08
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","101.37.36.158",60000   //连接TCP服务器,用户请修改自己的服务器
CONNECT OK
OK
at+cipsend=5,qwert    //发送5个字节的字符,注意此种方式只支持可见字符
OK
at+cipsend=5          //发送6个字节的数据,此种方式可以发送任意二进制数据
> 
OK
at+cipsend           //发送字符,以CTRL+Z(16进制的0x1a)结尾
> qwert

OK
+CIPRCV:4,test      //收到服务器发送过来的4个字节,内容是"test",注意也可能是二进制的任意数据
at+cipstatus?       //插叙ip链路状态
+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","121.41.97.28",60000  //发起第一个TCP连接
+CIPNUM:0                              //只有点开启多链接的时候才会有,0为返回的链路号
CONNECT OK
OK
at+cipstart="TCP","121.41.97.28",60001  //发起第二路连接 
+CIPNUM:1                              //只有点开启多链接的时候才会有,1为返回的链路号
CONNECT OK
OK
at+cipstart="TCP","121.41.97.28",60003 //发起第三路连接
COMMAND NO RESPONSE!                  //指令超时,由于服务器没有开启这个端口

at+cipstatus?                  
+CIPSTATUS:0,CONNECT OK  
1,CONNECT OK  
2,TCP/UDP CONNECTING  
3,IP INITIAL  
4,IP INITIAL  
5,IP INITIAL  
6,IP INITIAL  
7,IP INITIAL  
OK
at+cipclose=3                    //关闭链路号为3的连接
+CME ERROR:50                    //第三路连接没有建立所以返回错误

at+cipclose=2                    //关闭链路号为2的连接
OK
at+cipstart="TCP","121.41.97.28",60002  //发起新的连接
+CIPNUM:2
CONNECT OK
OK
at+cipstart="UDP","121.41.97.28",60006  //发起新的UDP连接
+CIPNUM:3
UDP BIND OK
OK
at+cipstatus?
+CIPSTATUS:0,CONNECT OK            //可以看到0-3链路号都被占用,建立了4路IP连接
1,CONNECT OK  
2,CONNECT OK  
3,BIND OK  
4,IP INITIAL  
5,IP INITIAL  
6,IP INITIAL  
7,IP INITIAL  
OK
at+cipsend=0,5,qwert       //链路0发送5个字节的字符,“qwert”,本指令只支持可见字符
OK
+CIPRCV:0,4,test           //链路0,收到服务器发送过来的4个字节,“test”,本指令支持接受任意数据

at+cipclose=2 关闭链路2 OK at+cipstatus? 查询链路信息

+CIPSTATUS:0,CONNECT OK  
1,CONNECT OK  
2,IP CLOSE  
3,BIND OK  
4,IP INITIAL  
5,IP INITIAL  
6,IP INITIAL  
7,IP INITIAL  
OK
at+ciphcfg?              //查询心跳包配置
+CIPHCFG:0,10,00,00
1,10,00,00
2,10,00,00
3,10,00,00
4,10,00,00
5,10,00,00
6,10,00,00
7,10,00,00
OK
at+ciphcfg=0,1,112233         //设置链路0的心跳发送包为16进制的0x11,0x22,0x33
OK
at+ciphcfg?                
+CIPHCFG:0,10,112233,00
1,10,00,00
2,10,00,00
3,10,00,00
4,10,00,00
5,10,00,00
6,10,00,00
7,10,00,00
OK
at+ciphmode=0,1     //启动链路0的心跳包
OK
at+cipsend=3,5,qwert    //链路3发送5个字节的字符,“qwert”
OK
at+cipclose=3     //关闭链路3
OK
+TCPCLOSED:1    //服务器关闭链路1
OK
at+cipstatus?
+CIPSTATUS:0,CONNECT OK  
1,IP CLOSE  
2,IP CLOSE  
3,IP CLOSE  
4,IP INITIAL  
5,IP INITIAL  
6,IP INITIAL  
7,IP INITIAL  
OK
+TCPCLOSED:0    //服务器关闭链路0
OK
at+cipstatus?
+CIPSTATUS:0,IP CLOSE  
1,IP CLOSE  
2,IP CLOSE  
3,IP CLOSE  
4,IP INITIAL  
5,IP INITIAL  
6,IP INITIAL  
7,IP INITIAL  
OK

透传模式+心跳设置(单链接)

示例

AT+CCID     //查询SIM ,CCID用于判断是否插卡
+SCID: SIM Card ID: 898602#4221620070426
OK
AT+CREG?  //查询网络注册情况
+CREG: 1,5  //表示网络已经注册,在漫游模式下
OK
AT+CGATT=1    //附着网络,如果需要上网,这条指令是必选的
+CTZV:16/05/27,06:33:39,+08  //基站下发的时间信息GMT时间和时区
OK
AT+CGDCONT=1,"IP","CMNET"   //设置PDP参数
OK
AT+CGACT=1,1                //激活PDP,正确激活以后就可以上网了
OK
at+cipstart="TCP","120.76.213.49",60000 //连接TCP服务器,用户请修改成自己的服务器
CONNECT OK
OK
AT+CIPHCFG?     //查询心跳包的设置
+CIPHCFG:10,00,00 //心跳包的默认设置10,表示10秒发送一次心跳包,00表示发送的包内容,默认是空的,第二个00表示接受的回应包内容,默认也是空的,这2个包必须设置,否则启动不了心跳包
OK
AT+CIPHCFG=1,55FAFBEE  //设置发送心跳包内容,长度不能低于3个字节,16进制格式
OK
AT+CIPHCFG=2,55AFBFEE  //设置接受回应包内容,长度不能低于3个字节,16进制格式
OK

AT+CIPHCFG=0,15     //设置发送心跳包的时间15秒钟
OK
AT+CIPHMODE=1     //启动心跳包,该命令只能在连接服务器成功以后用
OK
AT+CIPTCFG?       //查询透传默认参数
+CIPTCFG:3,200,50,2000  //3表示最大尝试发送失败次数,200是重发延时,单位毫秒,50是触发发送的包长度,2000是触发发送时间,单位毫秒,从输入最后一个字符算起,延至超过2000毫秒,系统也会自动发送数据
OK
AT+CIPTMODE=1  //启动透传模式,该指令也是只能在连接服务器成功以后使用
OK

SEND DATA TO SERVER  //发送到服务器的数据
SEND DATA TO  A6      //收到的服务器的数据
+++                   //退出透传模式,和前一次发送时间超过2秒,输入+++,就可以退出透传模式注意,如果是单片机发送,不要添加换行符,如果是安信可串口调试助手发送,取消掉发送新行的选项,总之不要有换行符
OK
AT+CIPHMODE=0        //退出心跳包模式
OK

A9/A9G(gprs)

电话接收

相关指令

ATDxxxxx;//xxx为电话号码

示例 打电话

ATDxxxxxxxxxxx
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		//列出所有短信->  pud格式,使用这条命令参数为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+CREG? 示例

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进制
在相关网站查询:http://www.gpsspg.com/bs.htm

获取基站下发时间

相关指令 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+CGATT=1  //附着网络,如果需要上网,这条指令是必选的
+CGATT:1
OK
AT+CGDCONT=1,“IP”,“CMNET” //设置PDP参数
OK
AT+CGACT=1,1 //激活PDP,正确激活以后就可以上网了
OK
AT+CIPSTART="TCP","www.baidu.com",80	//以百度为例
CONNECT OK
OK

两种发送请求方式
1.透传发送
AT+CIPTMODE=1 //进入透传
OK
GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n	//发送GET请求信息

2.非透传模式
AT+CIPSEND=45//发送的字节长度
>
GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n   //出现上述箭头后,发送GET请求信息

透传模式和心跳包的设置

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?	//查询网络注册情况
+CREG: 1,5	//表示网络已经注册,在漫游模式下
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,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	//连接服务器 
http://wiki.ai-thinker.com/gprs/a9g/a9tracker	APP对接教程
http://wiki.ai-thinker.com/gprs/a9g/MP		微信对接教程

示例

AT+GIZQRCODE
+GIZQRCODE:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//一长串字符串
AT+GIZTRACKER=1,0,10 —>第三个参数为上传定位信息的时间间隔
+GIZTRACKER:Start —>返回值
OK
+GIZWITS:sign in end
+GIZWITS:conn end —>连接服务器成功
OK
注意:该命令会自动保存,开机之后自动运行该命令连接服务器。如果需要停止运行使用At+GIZTRACKER=0;

A9/A9G十分钟对接机智云创建属于自己产品的教程

功能解读 该功能的实现,需要客户首先子机智云官网申请开发者账号,创建产品,获得产品的 Product Key和 Product Secret ,然后,常见上报的数据点类型,按以下方式发送数据即可上传到机智云服务器。

A9G(GPS)

GPS

相关指令

AT+GPS=1,开 GPS	
AT+GPS=0,关闭 GPS
AT+GPS? ,查询 GPS 的状态
AT+GPSRD=N,N 是数字表示 N 秒输出一条 NEMA 信息从 AT 串口。

注意,在打开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为时间、位置、卫星数量的输出信息,其他指令请依次类推。后面我会放上标准协议,所以,用户在PDF中搜索对应输出信息的时候直接搜索数据输出类型。例如直接搜索GNGGA是搜不到的,因为文档都是以GPS定位系统为例的,直接搜索数据类型GGA即可。

示例

AT+GPS=1
OK
AT+GPSRD=N
+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

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

教程:http://www.jianshu.com/p/e3d86a263be5