ws2812灯盘  ws2812灯盘

概 述

A9G是一款完整的四频 GSM/GPRS+GPS 模块,使用RDA8955作为主控芯片。核心芯片的成本降低使得整个方案性价比更高。模块内部集成了GSM/GPRS等协议栈,能提供串口转GPRS/GPS/短信息/语音通话等信息传输功能,且可以广泛应用于物联网/车载/远程定位/电力环境检测等领域。

只需一张移动电话卡或物联网卡即可让设备拥有GPRS/GPS/短信息/语音通话等信息传输功能,支持AT指令控制使其能搭配其他的设备。模块有29个I/O口通过排针引出。拥有完整的SDK,功能强大,使用简单,为你的二次开发保驾护航。

产品参数

引脚/接口说明

引脚介绍

接口按键介绍

使用教程

准备

接线

模块使用AT固件,在调试的时候使用4根线连接USB-TTL,接到电脑上调试:VUSB→5V;GND→GND;TX1→RX;RX1→TX;

接线图

AT指令操作示例

1 模组软复位及关机

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 电话接收

相关指令

ATDxxxxx;//xxx为电话号码

示例打电话

ATD10086
OK
+CIEV: "CALL",1
+CIEV: "SOUNDER",1    //响铃
+CIEV: "SOUNDER",0    //挂断
+CIEV: "CALL",0
BUSY//显示BUSY

接到短话

(若想使用来电提醒功能,请使用AT+CLIP=1;注意,该功能必须需要你的SIM卡自带来电提醒功能)
RING
RING

3 短信设置

相关指令

AT+CPMS="SM","SM","SM"  //设置短信存储单元
AT+CMGF=0/1             //设置短信格式,1为txt格式读取,0为pud格式读取
AT+CMGR=x               //读取短信内容,x为第几条短信
AT+CMGL=4/"ALL"         //查看短信列表 PUD格式发送AT+CMGL=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即可。

发送中文短信

另外可以使用PUD的编码方式发送信息: 
AT+CMGS=XX //要发送的字节数
>xxxxxxxxxxxxxxxxxxxxx  //PUD码(最后的操作方式和txt操作方式相似)
+CMGS: 0
OK

4 基站定位(含简化指令)

相关指令

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
基站定位可以到该网站查询:https://www.opengps.cn/Data/Cell/Search.aspx 
简化版指令->单独使用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;附着激活并保证具备联网能力

5 获取基站下发时间

相关指令 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

6 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="https://www.dfrobot.com"    //连接网站,请求网站资源
OK
紧接着接受的是服务器响应的信息

7 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

8 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 串口

9 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模式为低功耗模式

10 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+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

11 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

12 设置模组的低功耗模式

相关指令:

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
//模组发送数据,会自动退出低功耗,此时消耗电流又会升高

12 其他教程请查看链接

13 SDK开发相关教程请查看链接

常见问题

还没有客户对此产品有任何问题,欢迎通过 qq 或者论坛联系我们!

更多问题及有趣的应用,可以访问论坛进行查阅或发帖

更多

DFRobot 商城购买链接