zoukankan      html  css  js  c++  java
  • 【开源GPS追踪】 之 硬件开源

    根据设定目标: 使用GPS 采集经纬度,然后通过GPRS模块/wifi 发送到服务器显示,WIFI不常有,所有就使用GPRS模块!

    对于GPS模块,没有特殊要求,只要输出格式符合NMEA协议即可,为了后续编程方便,尽量使用输出波特率为9600 的模块。

    我使用的是TTL 接口波特率9600 的sirf III,感觉还可以。

    对于GPRS,我手头上有些有方的M590,凑合着用。 

    对于MCU,最熟悉的51,如果51 可以胜任就用51,目前实现的功能来说还是可以的。 如果增加其他功能可以使用STM32或者考虑低功耗用MPS430

    实物连接图(都是用手上现成的模块用杜邦线连接起来的,用来做验证使用)

    ====================================================================================

    1 MCU 与 GPS 连接

      GPS通过MCU 的串口0 与MCU连接,GPS可以通过这个接口把GPS 的数据全部送到MCU,MCU内部对GPS数据进行处理。

    2 MCU 与GPRS连接

      GPRS通过MCU的串口与MCU连接。 MCU通过发送命令控制GPRS 上电/断电、TCP 连接以及 数据发送。

      考虑到节能低功耗要求,GPS数据每隔一定时间发送到服务器,按照需求可以修改code 控制这个间隔。 在发送 完数据后,GPRS可以切断电源,等到下次GPS 数据ready的时候再上电(GPRS 工作的时候电流约100mA 左右,GPS+MCU 工作电流约50mA)。如果间隔较大的应用中,一定要这样做,节能非常明显。

      如果对功耗要求非常苛刻的地方,选用MPS430 MCU,GPS选用带有热启动的模块,增加GPS 电源控制电路,控制GPS工作情况,进一步减少电能损耗。

       *****************************************************************************************************

      为了实现GPRS的启动、断电,结合M590 设计手册,可以使用带Enable 的LOD。 我找到的这个模块就有,只是Enable pin 和VCC pin 短接在一起了,只要VCC供电,M590就上电了,而我需要的是通过一个pin 让MCU控制供电,所以修改电路,把Enable pin layout 强行"切开"然后连上。最后的效果如下图:

       这样,VCC 供电,如果Enable pin 为低电平,M590 也是吃不到电的,通过Enable pin 和 M590 的ON pin 两个控制M590 onoff.(这个具体时序需要参见M590的设计手册,在code 中会有体现。)

    总体硬件连好,就是这个样子,因为是几个模块堆叠起来的通过杜邦线连接起来,看起来比较乱,但是测试了几下,感觉用于定位追踪还是棒棒的,毕竟成本低廉。 等一些完善好了,打算做一块板子,把GPRS 和 MCU做到一起,但是这个需要后面有空才能搞。

    目前还是持续验证完善程序,避免不必要的bug出现,目前是能用即可!

    ==========================================================================

    web 端定位效果图

    定位感觉还行,偶尔会出现gps 飘逸。 程序用延时函数实现采集,目前基本50s 采集一次(如果GPS GPRS信号不好,采集间隔时间会延长)

    **之前在另一篇文章里提到流量的问题,感觉一天0.3MB就够用了,但是实际上却比较费流量**

    我使用的是阿里通信的手机卡,这一周来累计使用了1.88MB流量,其中有一次连续工作10小时,走了约0.6M。与之前计算结果差异挺大,仔细分析,原因是因为之前计算值考虑了上传时花费的流量,没有考虑服务器收到数据也会给GPRS发送数据,而这一块的数据可能比上传数据要大,实际上用电脑模拟POST GET确实会收到很多数据,这个就不截图了。解决办法:GPRS发送完数据立马关掉TCP。 这个方法还没有实际测量。

    ============================================================================================

    20160710 更新

     用杜邦线连接毕竟不是那么美观,所以自己画了PCB。下面贴一下原理图和PCB截图,技术糙,多担待。

    板子特点

    1 M590 模块两种供电模式

    因为为了实现使用MCU控制M590 开关,电路需要稍微特殊设置,方案1 使用现成电源芯片spx29300,电压稳定,成本高。 方案2 使用三极管+MOSFET 组合方式,电源电压与供电电压一致,成本低。

    2 增加232 接口

    因为我这里有一些GPS是232 输出的,到时可以直接使用

    这些特点基本都是备份或者重复的功能,所以板子看着东西挺多,其实如果定型,元器件会进一步减少。

    PCB 的尺寸设计可在TB上找到一款塑料盒子,争取把模块与锂电池同时放进去。

    预计一周之内打样,半个月左右会焊接调试完毕!愿一切顺利!

    20160716 更新

    这周断断续续review了PCB,发现主要问题有几个

    1 NMOS NPN 原理图和PCB库的引脚不能一一对应,根据datasheet 直接在PCB修改net重新布线

    2 卡槽直接复制了之前有方V1.0版本,卡槽引脚和PCB也是不能一一对应,直接修改nat 重新布线。

    3 M590 模块具有低功耗选项,参考M590数据手册,直接在PCB上把DRT引脚与MCU相连接

    修改完成后已经在嘉立创上打样了。。。。下周见!

    在板子打样好之前,把原来的各个模块规整到一起,装到盒子里了,放到电动车里,感觉还不错。 上图

    GPRS + MCU +电池

    GPS模块放到盒子上方,天线需要外露才能收到信号,铁壳会屏蔽信号

    铁盒外面GPS天线和GPRS天线都引出了(如果是塑料壳就不要这么麻烦了)

    放到电动车上出去走了一圈去趟超市

    20160724 更新

    昨天PCB回来,焊接了两块进行了简单测试。

    先上图

    已经测试通过的选项

    1 单片机下载程序OK

    2 GPRS与单片机连接,通信正常

    3 反接保护电路正常

    4

    问题:

    1 单片机Enable 引脚没有连接

    2 R12 应该放到bottom

    3 电源芯片封装有点大

    4 通过NPN+NMOS控制电源部分压降有1.2V,需要检查

    博客讨论一些室内定位(DWM1000/CC2431/CC2530) 以及一些随性的技术。博文可以转载,但需要注明出处!
  • 相关阅读:
    JavaScript操作符instanceof揭秘
    Linux打开txt文件乱码的解决方法
    Working copy locked run svn cleanup not work
    poj 2299 UltraQuickSort 归并排序求解逆序对
    poj 2312 Battle City 优先队列+bfs 或 记忆化广搜
    poj2352 stars 树状数组
    poj 2286 The Rotation Game 迭代加深
    hdu 1800 Flying to the Mars
    poj 3038 Children of the Candy Corn bfs dfs
    hdu 1983 Kaitou Kid The Phantom Thief (2) DFS + BFS
  • 原文地址:https://www.cnblogs.com/tuzhuke/p/5629105.html
Copyright © 2011-2022 走看看