1官网
https://docs.ai-thinker.com/gprs/examples
前提:
巨坑 不支持联通,移动卡测试
2硬件


3引脚调试

找一个usb-ttl连接


接线
开发板使用AT固件,在调试的时候使用4根线连接usb-ttl,接到电脑上调试:VUSB→5V;GND→GND;AT_TX→RX;AT_RX→TX;
或者使用USB供电,另外再接三条线GND→GND;AT_TX→RX;AT_RX→TX;
或者锂电池供电 VBAT→(3.3v-4.2)V; GND→GND;AT_TX→RX;AT_RX→TX;(使用VBAT供电,需要长按power_key按键2s左右)
上电
A9G开发板可使用锂电池或者USB供电。
上电1~2S后模组自动运行,这个时候串口会自动输出信息。整个上电到开发板正常工作的过程不需要任何操作。
需要复位,请按Rst_Key按键。
模组默认进入AT指令模式。
插进去移动电话卡
AT调试指令
https://docs.ai-thinker.com/gprs/examples
1打电话
发送 注意换行符号结束(回车)
ATD15529672865

对着A9G的语音说话,手机接听,但是a9g没有喇叭所以听不到对方声音。
如果设置成可以接电话
AT+CLIP=1
然后拨打电话可以看到
(若想使用来电提醒功能,请使用AT+CLIP=1;注意,该功能必须需要你的SIM卡自带来电提醒功能) RING RING

2发短信
上电,准备好后使用






结束标志
取消换行 以16进制发 0x1a

实际测试
中间可以有很多行内容
短信内容结束换行
最后必须以 16进制 发送 0x1a 带和不带换行都可以 才能结束


3 获取基站位置
优化前指令-> 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 //附着网络,如果需要上网,这条指令是必选的 +CGATT:1 OK
AT+CGDCONT=1,"IP","CMNET" //设置PDP参数 OK
AT+CGACT=1,1 //激活PDP,正确激活以后就可以上网了 OK
AT+LOCATION=1

4获取基站时间

时间是零时区,需要加上8个小时(东八区)
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
基础
1mqtt服务器
http://118.31.65.222:18083
admin public

2串口调试助手

1初始化模块上网
AT+CGATT=1 //附着网络 OK
AT+CGDCONT=1,"IP","CMNET" //设置PDP参数 OK
AT+CGACT=1,1 //激活PDP,正确激活以后就可以上网了 OK
2连接服务器
AT+MQTTCONN="118.31.65.222",1883,"clientId_001",120,0,"mqttUsername1","mqttPwd1"
OK
参数解析:
- mqtt服务器网址 118.31.65.222
- mqtt服务器端口 1883
- mqtt用户名字 clientId_001 可取任意值,长度在64字符以内
- 位置参数 固定 120,0,
- mqtt连接密钥账户 mqttUsername1 如果服务器没有密码设置可以随意
- mqtt连接密钥密码 mqttPwd1 如果服务器没有密码设置可以随意

3发布消息
AT+MQTTPUB="pub","thie is a new msg",0,0,0
说明:中文乱码 支持英文数字


4订阅消息
AT+MQTTSUB="sub",1,0
中文乱码
延迟大概1秒左右

5断开连接
AT+MQTTDISCONN
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

浙公网安备 33010602011771号