劉濤 肖磊
【摘 要】為了解決一些單位員工在上下班路上等待班車(chē),因不能及時(shí)獲取班車(chē)當(dāng)前的運(yùn)行位置,造成時(shí)間浪費(fèi)或者錯(cuò)過(guò)班車(chē)等問(wèn)題,設(shè)計(jì)了一種基于GPS和GPRS技術(shù)的班車(chē)定位系統(tǒng),結(jié)合手機(jī)電子地圖,來(lái)實(shí)現(xiàn)車(chē)輛的實(shí)時(shí)定位,用戶可以通過(guò)手機(jī)地圖實(shí)時(shí)查看車(chē)輛的位置信息。
【關(guān)鍵詞】車(chē)輛;GPS;電子地圖;定位
【Abstract】Many employees often waste a lot of time or miss the bus when they waiting for the vehicle, because they cannot access to the bus position timely. This paper designed a system based on GPS and GPRS technology, combined with the mobile phone map, to achieve real-time positioning of the vehicle, the user can view real-time vehicle location information through the mobile phone map.
【Key words】Vehicle; GPS; Electronic map; Positioning
0 引言
很多學(xué)校和企事業(yè)單位都有自己的班車(chē),會(huì)根據(jù)員工的居住地點(diǎn),設(shè)置不同的線路和站點(diǎn)。比如,作者所在的單位,有早、中、晚三班班車(chē),早班和晚班班車(chē)又分為三條不同的線路,每條線路有兩輛班車(chē),設(shè)置6至10個(gè)站點(diǎn)。在道路擁堵及極端天氣情況下,經(jīng)常會(huì)發(fā)生班車(chē)不能按照預(yù)定時(shí)間到達(dá)站點(diǎn)的現(xiàn)象。而欲乘坐班車(chē)的人員可能并不知道班車(chē)的運(yùn)行情況,比如,在預(yù)定的時(shí)刻,班車(chē)未按時(shí)出現(xiàn),這種情況究竟是班車(chē)還未到達(dá),還是已經(jīng)開(kāi)過(guò)站點(diǎn)了,如果班車(chē)未到距離本站的距離還有多遠(yuǎn),這種情況往往會(huì)造成乘車(chē)人員的焦急。如果能夠?qū)崟r(shí)采集班車(chē)的運(yùn)行位置,并通過(guò)手機(jī)地圖進(jìn)行顯示,那么用戶就可以方便的查看班車(chē)的運(yùn)行狀態(tài),獲取班車(chē)的位置信息,以便決定是否繼續(xù)等待,還是選擇乘坐其他交通工具。本文設(shè)計(jì)了一種基于單片機(jī)和GPS定位技術(shù)的車(chē)載終端,實(shí)時(shí)獲取車(chē)輛的經(jīng)緯度信息,并通過(guò)GPRS網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到服務(wù)器端,服務(wù)器監(jiān)控程序接收數(shù)據(jù)并處理后,將數(shù)據(jù)存放到數(shù)據(jù)庫(kù)。用戶可以通過(guò)手機(jī)APP訪問(wèn)服務(wù)器,系統(tǒng)會(huì)根據(jù)不同線路不同班車(chē),在電子地圖上實(shí)時(shí)顯示車(chē)輛當(dāng)前的運(yùn)行位置。
1 系統(tǒng)整體架構(gòu)
系統(tǒng)的架構(gòu)主要分為三個(gè)部分:車(chē)載終端、服務(wù)器監(jiān)控程序、手機(jī)客戶端,如圖1所示。
車(chē)載終端放置在班車(chē)上,上面帶有GPS模塊,用來(lái)接收GPS衛(wèi)星信號(hào),獲取車(chē)輛的經(jīng)緯度信息,并通過(guò)GPRS網(wǎng)絡(luò)傳送至Internet網(wǎng)絡(luò),最終傳送至服務(wù)器端[1]。服務(wù)器監(jiān)控程序接收到車(chē)輛的數(shù)據(jù)后,會(huì)進(jìn)行坐標(biāo)的變換,轉(zhuǎn)換成百度地圖坐標(biāo),并存儲(chǔ)到數(shù)據(jù)庫(kù)中。手機(jī)客戶端需要安裝一個(gè)APP,可以選擇不同的班車(chē)路線,定時(shí)向服務(wù)器發(fā)送查詢請(qǐng)求,服務(wù)器會(huì)返回當(dāng)前的車(chē)輛經(jīng)緯度,并在電子地圖上實(shí)時(shí)標(biāo)注出來(lái)。
2 車(chē)載終端
2.1 硬件設(shè)計(jì)
車(chē)載終端主要由單片機(jī)、GPRS模塊、GPS模塊、串口模塊、電源模塊、LCD顯示屏組成[1]。
其中,單片機(jī)采用8051系列STC12C5A60S2單片機(jī),是整個(gè)終端設(shè)備的控制中心,它有兩個(gè)全雙工串行通信接口(UART1、UART2)。GPRS模塊采用SIM900B,它是一款新型無(wú)線模塊,可實(shí)現(xiàn)語(yǔ)音、SMS、數(shù)據(jù)的傳輸,并且功耗很低[2]。SIM900B與單片機(jī)是通過(guò)UART1串口通信的。GPS模塊采用瑞士ublox NEO模塊,定位精度可以達(dá)到2.5m,它與單片機(jī)通過(guò)UART2串口通信。RS-232串口主要用來(lái)與PC通信,實(shí)現(xiàn)單片機(jī)程序的下載,GPS模塊采集的數(shù)據(jù)也可以通過(guò)該串口直接發(fā)送到上位機(jī)。LCD液晶采用 NOKIA5110,可以用來(lái)顯示車(chē)輛的經(jīng)緯度、速率、溫度等信息。車(chē)載終端的工作原理是:GPS模塊采集車(chē)輛的經(jīng)緯度信息,通過(guò)UART2串口傳送給單片機(jī),單片機(jī)通過(guò)UART1串口發(fā)送給SIM900B模塊,SIM900B模塊采用GPRS方式發(fā)送到遠(yuǎn)端的服務(wù)器監(jiān)控程序。
2.2 GPS信號(hào)處理
系統(tǒng)上電后,GPS模塊每隔固定的周期就會(huì)返回以字符‘$開(kāi)頭的一定格式的數(shù)據(jù)[3],如$GPRMC,022451.00,A,3658.87945,N,11710.19702,
E,0.768,316.57,131115,A*63,其中GPRMC代表推薦的最小定位信息。GPRMC數(shù)據(jù)格式為:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh。其中:<1>代表時(shí)間;<2>代表定位狀態(tài),如果為A,則表示定位有效,數(shù)據(jù)可以使用,如果為V,表示定位無(wú)效,數(shù)據(jù)舍棄;<3>代表緯度;<4>代表緯度半球;<5>代表經(jīng)度;<6>代表經(jīng)度半球;<7>代表地面速率[3]。
其中,經(jīng)緯度為度度分分.分分分分(ddmm.mmmm)格式,在實(shí)際計(jì)算中需要轉(zhuǎn)換成度分秒的格式。如接收的GPS信號(hào)中緯度是:3658.87698,計(jì)算步驟如下:
1)計(jì)算度
3658.87698/100=36.5887698
可以得到36度
2)計(jì)算分
3658.87698-36*100=58.87698
可以得到58分
3)計(jì)算秒
58.87698-58=0.87698
0.87698*60=52.6188
可以得到52秒
所以緯度是:36度58分52秒。
2.3 GPRS數(shù)據(jù)發(fā)送
為了區(qū)分不同的車(chē)載終端,需要為每個(gè)終端增加標(biāo)識(shí)符,并與經(jīng)緯度信息、速率等一起進(jìn)行打包,生成一個(gè)新的字符串,通過(guò)GPRS模塊發(fā)送到服務(wù)器監(jiān)控中心。封裝后的數(shù)據(jù)格式為:CarID,1,Lat:36.588640, Lon:117.102200,Spd:45.863950,Y。其中,CarID代表車(chē)輛的標(biāo)識(shí)符,每個(gè)終端是唯一的,Lat代表緯度,Lon代表經(jīng)度,Spd代表速率,Y代表字符串結(jié)束符。
GPRS模塊與服務(wù)器之間的通信協(xié)議采用UDP協(xié)議。TCP是一種面向連接的協(xié)議,可以提供可靠的數(shù)據(jù)傳輸,但是以增加網(wǎng)絡(luò)資源消耗作為代價(jià),UDP是面向非連接的協(xié)議,使用UDP連接,當(dāng)網(wǎng)絡(luò)擁塞時(shí),會(huì)丟棄部分?jǐn)?shù)據(jù)包,但可以改善接收數(shù)據(jù)滯后的情況。班車(chē)定位系統(tǒng)對(duì)數(shù)據(jù)的實(shí)時(shí)性要求很高,超過(guò)一定時(shí)間的數(shù)據(jù)就沒(méi)有參考價(jià)值了[4],因此我們采用UDP協(xié)議。
3 服務(wù)器監(jiān)控程序
3.1 主要功能
服務(wù)端主要實(shí)現(xiàn)三個(gè)功能:(1)與不同車(chē)載終端的GPRS模塊建立UDP連接,實(shí)時(shí)接收車(chē)輛的經(jīng)緯度信息,并進(jìn)行解析、坐標(biāo)轉(zhuǎn)換、存儲(chǔ),如圖3所示;(2)響應(yīng)手機(jī)客戶端查詢請(qǐng)求,定時(shí)向客戶端返回班車(chē)經(jīng)緯度信息;(3)存儲(chǔ)車(chē)輛、班車(chē)路線等基本信息。
3.2 系統(tǒng)設(shè)計(jì)
服務(wù)器監(jiān)控程序采用java語(yǔ)言實(shí)現(xiàn),采用Struts+Spring+Ibatis的框架,使用MySQL數(shù)據(jù)庫(kù)。
為了便于系統(tǒng)維護(hù),將大部分處理邏輯放到服務(wù)器端實(shí)現(xiàn),手機(jī)APP界面上的一些菜單數(shù)據(jù)也放到數(shù)據(jù)庫(kù)中管理,這樣如果APP界面有改動(dòng),比如班車(chē)路線、發(fā)車(chē)時(shí)間等發(fā)生變化,就不需要修改客戶端程序,只需要修改服務(wù)器端程序,或修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)就可以,減少用戶更新客戶端的次數(shù)。
3.3 坐標(biāo)轉(zhuǎn)換
GPS模塊采集的經(jīng)緯度屬于地球坐標(biāo),即WGS-84坐標(biāo),而我們國(guó)家出于安全考慮,將地球坐標(biāo)重新進(jìn)行加密,形成火星坐標(biāo)。由于我們采用的是百度地圖,需要在火星坐標(biāo)的基礎(chǔ)上進(jìn)行二次加密,形成百度地圖上的坐標(biāo)。坐標(biāo)轉(zhuǎn)換順序如圖4所示。
4 手機(jī)客戶端
手機(jī)端應(yīng)用程序(APP)基于Android系統(tǒng)開(kāi)發(fā),整個(gè)系統(tǒng)的界面分為三部分:登錄界面、線路選擇界面和地圖定位界面。登錄界面如圖5所示。
線路選擇界面如圖6所示。用戶登錄手機(jī)APP后可以選擇查詢的路線,在地圖定位界面會(huì)用圖標(biāo)標(biāo)出各個(gè)站點(diǎn),繪制出該路線車(chē)輛的運(yùn)行軌跡,及車(chē)輛當(dāng)前的位置,并定時(shí)進(jìn)行更新,用戶可以很方便地查看該線路班車(chē)是否到達(dá)本站等信息,如圖7所示。
5 系統(tǒng)測(cè)試結(jié)果
通過(guò)對(duì)不同線路、不同時(shí)間的班車(chē)進(jìn)行真實(shí)測(cè)試,定位誤差基本在3m以內(nèi),完全可以達(dá)到系統(tǒng)的需求。
6 結(jié)束語(yǔ)
該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),可以極大的解決各企事業(yè)單位、學(xué)校等人員乘坐班車(chē)的問(wèn)題,方便乘客及時(shí)查詢車(chē)輛的實(shí)時(shí)位置,減少不必要的等待,節(jié)省花費(fèi)在上班路上的時(shí)間,提升企業(yè)的人為關(guān)懷。后期系統(tǒng)還可以擴(kuò)展更多的功能,比如車(chē)內(nèi)溫濕度的監(jiān)測(cè)、車(chē)輛到達(dá)站點(diǎn)的時(shí)間預(yù)估、車(chē)內(nèi)視頻監(jiān)控、歷史軌跡回放等。
【參考文獻(xiàn)】
[1]劉爽,賈傳熒,賈銀山,馬文耀.基于GPS/GSM和電子地圖的車(chē)輛定位系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].遼寧石油化工大學(xué)學(xué)報(bào),2005,25(1):82-85.
[2]李濤,馬殷元,楊東.基于STM32的GPRS遠(yuǎn)程監(jiān)測(cè)終端設(shè)計(jì)[J].電子世界,2012.06:126-127.
[3]郭濤,郝亮,曹景勝,王群,于繼開(kāi).基于GPS的汽車(chē)電動(dòng)助力轉(zhuǎn)向模擬系統(tǒng)設(shè)計(jì)[J].汽車(chē)工程師,2014,12:34-37.
[4]郭龍.基于GPS/GPRS車(chē)輛遠(yuǎn)程監(jiān)控系統(tǒng)車(chē)載裝置的設(shè)計(jì)[D].南京:東南大學(xué),2007.
[責(zé)任編輯:王楠]