一个用STM32控制的GPS与GPRS程序,GPS使用ublox的GPS,GPRS使用SIM800E,主要实现每隔几分钟(间隔时间由服务器设定,默认5分钟)将模块的定位结果数据发送到服务器中,服务器返回值决定间隔时间等设置信息。
两个模块分别接STM32的两个串口,锂电池供电,STM32与GSM接口有串口RXD、TXD,电源开关POWERKEY,和GSM的状态引脚(用于判断GSM的开关机状态)。GPS模块连接串口RXD、TXD,还有一个IO驱动P型MOS管控制GPS模块的供电。
实际应用中,使用1000mah锂电池,5分钟一次数据传输的情况下,电池可以坚持120小时左右。
为了省电,工作状态,使用12M晶振,不用PLL,STM32工作电流不到10mA,整体电流约90mA,GPS模块只在定位时通电,完成后直接断电。GSM模块发送数据时正常,不发送时进入休眠模式,电流约1mA,数据发送完成后的等待时间,STM32也进入低功耗状态,本想使用RTC,怕批量有问题,就用的HSI直接512分频,大约15KHz,用来计时,记到5分钟后启动模块开始定位,HSI 512分频后,实际CPU工作电流约500uA左右,基本能满足要求。
GPRS通过联网访问网络上的HTTP服务器,直接GET命令,将数据加在后面的参数上,服务器响应后会返回一些需要设定的参数。
按照5分钟一次发送数据量计算,一个月大约需要不到3MB的流量,比短信便宜多了,用移动那种限期半年30M或50M的流量卡比较合算,可以用在机动车、电动车或者电动车电池的防盗上,成本100多点。
附件内容截图: