gprs:examples

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版 两侧同时换到之后的修订记录
gprs:examples [2019/12/21 08:24]
aithinker_fae [A6(GPRS)]
gprs:examples [2018/08/25 04:55] (当前版本)
127.0.0.1 外部编辑
行 22: 行 22:
         2.A9/​A9G的AT+LOCATION指令进行优化         2.A9/​A9G的AT+LOCATION指令进行优化
                 ​                 ​
 +====== A6(GPRS) ======
 +
 +
 +===== 1、电话接收 =====
 +
 +相关指令 ​
 + 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+CMGF=1 ​   //​文本方式发送  ​
 + AT+CMGS="​xxxxxxxxxxx(电话号码)" ​  //​返回>,​然后输入要发送的txt内容并且以CTRL-Z(16进制为1a)结束即可 ​
 +{{ :​gprs:​send_message_chinese.docx |中文发送短信}}
 + 另外可以使用PUD的编码方式发送信息: ​
 + AT+CMGS=XX;​ //​要发送的字节数
 + >​xxxxxxxxxxxxxxxxxxxxx ​ //​PUD码(最后以CTRL-Z(16进制为1a)结尾) ​
 + +CMGS: 0
 + OK
 +        ​
 + 
 +
 +===== 获取基站下发时间 =====
 +
 +相关指令 AT+CCLK?
 +
 +指令解读 该指令在内部进行处理,在模块初始化时,模块获取了基站下发的时间后,将该时间存储在芯片的RTC寄存器中,使用AT+CCLK?​即可读取出时间。
 +
 +注意使用联通卡获取的时间是有问题的。
 +
 +示例
 + AT+CCLK ?
 + +CCLK: "​17/​11/​27,​02:​49:​47+08"​
 + //​该时间为零时区时间,17年11月27日2点49分47秒。+08为时区,我们这里是东八区,所以本地时间是10点49分47秒
 + 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
 +
 +===== 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 //​第一个参数1表示允许注册入网;第二个参数5表示已注册,处于漫游状态,如果是1的话,表示已注册本地网络,出现其他参数表示不正常
 + 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  //​第一个参数1表示允许注册入网;第二个参数5表示已注册,处于漫游状态,如果是1的话,表示已注册本地网络,出现其他参数表示不正常
 + 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) ====== ====== A9/​A9G(GPRS) ======
  • gprs/examples.txt
  • 最后更改: 2018/08/25 04:55
  • 由 127.0.0.1