根據設定目標: 使用GPS 採集經緯度,而後經過GPRS模塊/wifi 發送到服務器顯示,WIFI不常有,全部就使用GPRS模塊!web
對於GPS模塊,沒有特殊要求,只要輸出格式符合NMEA協議便可,爲了後續編程方便,儘可能使用輸出波特率爲9600 的模塊。編程
我使用的是TTL 接口波特率9600 的sirf III,感受還能夠。服務器
對於GPRS,我手頭上有些有方的M590,湊合着用。 函數
對於MCU,最熟悉的51,若是51 能夠勝任就用51,目前實現的功能來講仍是能夠的。 若是增長其餘功能可使用STM32或者考慮低功耗用MPS430測試
實物鏈接圖(都是用手上現成的模塊用杜邦線鏈接起來的,用來作驗證使用)設計
====================================================================================3d
1 MCU 與 GPS 鏈接調試
GPS經過MCU 的串口0 與MCU鏈接,GPS能夠經過這個接口把GPS 的數據所有送到MCU,MCU內部對GPS數據進行處理。code
2 MCU 與GPRS鏈接blog
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 on\off.(這個具體時序須要參見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,須要檢查