前一段时间调了LoNet 808,基于SIM808,就是下图这块板子。遇到了一些困难,记录下来,希望以后遇到类似问题有个参考。可能会有理解错误的地方,欢迎指出。
1、建立串口通信。
板子使用3.7V Li-Po电池供电。首先用USB转TTL工具连接SIM808和电脑,VIO接3.3V。打开串口助手,9600,none,连接。按下板子按键2秒打开电源,使用串口助手向SIM808发送一些AT指令(比如开、关回显),串口助手显示SIM808原样返回了AT指令,并没有返回OK或Error字样,关回显命令也没有生效。初步怀疑是由于没装SIM卡,模块启动时自检过不了。找了个移动SIM卡装上,上电后看到指示灯由频繁闪烁变为缓慢闪烁,约灭3秒亮1次,这表示SIM808成功注册到网络。再次使用串口助手发送AT指令,依然原样返回了命令,没有OK或Error字样。在串口助手的发送框里输入AT指令后,按Enter换行,再点击发送后,SIM808返回乱码,里面偶尔掺杂了几个正常的字符。看起来像是AT指令生效了。更改波特率和校验,无法解决返回乱码问题。改用SecureCRT,无法解决返回乱码问题。怀疑USB转TTL工具有问题(记此工具为1号),改用另一个USB转TTL工具(记此工具为2号)。使用2号工具后,正常显示OK字样,乱码问题解决。(后来用1号工具调试过别的模块,发现通信正常,但是调试SIM808就会显示乱码。嗯,,,是个谜)
2、定位功能调试
根据店家提供的参考资料,使用了几个关于GPS功能的AT指令(AT+CGPSPWR=1,AT+CGPSINF=0),但是回复Error。并且发现SIM808启动时的实际打印信息里没有“GPS Ready”,和参考资料不一致。上网查后发现SIM808硬件版本2.01及以后且软件版本1418B01SIM808M32及以后,应该使用GNSS功能获取位置信息。
GNSS手册下载:http://www.elecrow.com/wiki/images/0/05/SIM800_Series_GNSS_Application_Note_V1.00.pdf
室外太冷,且在室外调试不方便,所以只能将板子放到窗户边,AT+CGNSPWR=1开启GNSS电源,AT+CGNSINF获取位置信息。一开始获取不到位置信息,等待40秒左右再尝试就可以了,大概是因为冷启动。由于在窗户边不够开阔,每次获取的经纬度会有波动,上网查经纬度值与距离的换算,误差有几十米或几百米。后来将板子带到室外开阔场地,获取的经纬度值非常稳定。
3、GPRS功能调试
AT+SAPBR=3,1,"CONTYPE","GPRS''
AT+SAPBR=3,1,"APN","CMNET" (移动的接入点是CMNET,联通的是3GNET,电信卡不适用)
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="URL","xxx.x.xx.xx:90/s?data1=***&data2=***'' (xx表示服务器地址,90是端口号,不写的话默认80,data1和data2是服务器上定义的变量名,***表示上传的变量值)
AT+HTTPACTION=1 (将数据post到服务器,正常会收到返回值200)
AT+HTTPREAD
AT+HTTPTERM (结束HTTP服务)
更多指令和含义可以网上查找SIM808 AT指令手册
4、不得不说的供电
一开始使用3.7v usb充电锂电池供电,将锂电池放在电池盒里,把正负极的线直接焊在板子上。最初可以正常使用,后来有一天晚上,模块出现了开机后很快自动关机的现象,使用板子上提供的充电接口给锂电池充电,模块不停重启。将锂电池取出用手机的电源适配器充满电,再装入仍然无法解决自动关机问题。最后怀疑电池质量有问题,另外电池盒的正负极输出线太长,最终导致驱动电流太低?因为这种事导致无法调试,好气呀。第二天换了块锂电池,大概下图这种,装上以后模块工作稳定。