朱鵬程 范安康 李旭 盧鑫 中國礦業(yè)大學(xué)徐海學(xué)院
針對(duì)初代共享單車這一系列的問題,可以設(shè)計(jì)電子圍欄來限制共享單車的停放。該系統(tǒng)將基于Android Studio 開發(fā)一個(gè)功能相對(duì)完善的共享單車APP,以此達(dá)到掃碼取車、實(shí)時(shí)監(jiān)控和電子圍欄等功能,其次通過改善通信方式,使得車鎖通信更加穩(wěn)定,最后使用北斗/GPS 雙模衛(wèi)星定位來有效實(shí)現(xiàn)車輛的實(shí)時(shí)定位與監(jiān)控,最終實(shí)現(xiàn)一個(gè)可靠的電子圍欄系統(tǒng)。
傳統(tǒng)的共享單車定位是采用單個(gè)衛(wèi)星定位,常用衛(wèi)星大致分為北斗和GPS 兩種,北斗是采用三頻段定位的衛(wèi)星系統(tǒng),相比傳統(tǒng)的二頻段定位的GPS 衛(wèi)星,北斗衛(wèi)星的定位精度更高,但是GPS 衛(wèi)星的地面監(jiān)控站比北斗多,所以總體的精度還是GPS 高一些。
該系統(tǒng)采用的雙模衛(wèi)星定位模式,既可以單獨(dú)使用北斗定位,也可以進(jìn)行北斗、GPS 雙模衛(wèi)星定位。當(dāng)其中一個(gè)定位系統(tǒng)失效時(shí),可以切換至另一個(gè)系統(tǒng)實(shí)現(xiàn)精準(zhǔn)定位,維持系統(tǒng)的正常運(yùn)行,并且雙模衛(wèi)星定位的精度高于單點(diǎn)衛(wèi)星定位的精度,正常民用GPS定位精度為10米左右,有時(shí)甚至還會(huì)出現(xiàn)幾百米的定位漂移,不符合共享單車精準(zhǔn)定位的要求,而北斗/GPS 雙模定位精度達(dá)到2.5CEP,大大提高了單車定位的準(zhǔn)確性與穩(wěn)定性,是本系統(tǒng)實(shí)現(xiàn)無源電子圍欄的重要技術(shù)支持。
本系統(tǒng)是基于衛(wèi)星定位的電子圍欄系統(tǒng),在整個(gè)運(yùn)行過程中,單車鎖、APP 服務(wù)平臺(tái)與服務(wù)器三者相互聯(lián)系,硬件車鎖獲得的信息上傳至服務(wù)器,服務(wù)器作為車鎖與APP 通信的媒介,將信息傳輸至APP,APP 下達(dá)的指令也通過服務(wù)器發(fā)送給硬件車鎖。APP 通過API 接口調(diào)用百度地圖,作為共享單車APP 的電子地圖。圖1為該系統(tǒng)結(jié)構(gòu)框圖。
圖1 系統(tǒng)結(jié)構(gòu)框圖
用戶使用APP 掃描指定二維碼對(duì)車輛進(jìn)行解鎖時(shí),APP 發(fā)送用戶ID 至服務(wù)器數(shù)據(jù)庫進(jìn)行匹配,匹配成功后,服務(wù)器通過GPRS 模塊對(duì)單片機(jī)發(fā)送開鎖指令,SIM 卡為GPRS 模塊通信提供網(wǎng)絡(luò),單片機(jī)通過IO 口驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)打開車鎖。在使用進(jìn)程中,北斗/GPS 模塊通過GPRS 模塊實(shí)時(shí)給服務(wù)器發(fā)送位置坐標(biāo),APP 調(diào)用百度地圖實(shí)時(shí)顯示用戶位置。
單車鎖使用STM32 SIM800A 單片機(jī)作為硬件核心,搭載GPRS模塊、北斗/GPS 雙模定位模塊和驅(qū)動(dòng)電機(jī),以此來實(shí)現(xiàn)車鎖的指令傳輸、實(shí)時(shí)定位和開關(guān)功能。
本系統(tǒng)采用的單片機(jī)模塊是STM32 SIM800A 單片機(jī),無需再外接GPRS 模塊,一定程度的縮小了車鎖的體積。在整個(gè)系統(tǒng)中,GPRS模塊配合SIM 卡進(jìn)行數(shù)據(jù)傳輸。定位模塊是ATK1218-BD 模塊,比普通單模定位模塊擁有更高的定位精度,定位精度可以達(dá)到2.5CEP。電機(jī)鎖采用N20 減速電機(jī)對(duì)其驅(qū)動(dòng)。N20 電機(jī)的力矩大,能夠使電機(jī)鎖的開關(guān)更加穩(wěn)定。
服務(wù)平臺(tái)基于Android Studio 開發(fā)共享單車APP。應(yīng)用百度地圖作為APP 的電子地圖,用戶可以在手機(jī)上查看自己的實(shí)時(shí)位置與電子圍欄停車區(qū)域位置。該系統(tǒng)基于百度地圖Android SDK 開發(fā)電子圍欄功能,通過使用百度地圖中API 中的GeoUtils 庫,繪制所需的電子圍欄,并且采用了百度地圖中騎行導(dǎo)航的API,幫助用戶規(guī)劃騎行路線。用戶可以在APP上進(jìn)行注冊(cè)與登錄,登錄成功后,用戶可以通過APP對(duì)車輛進(jìn)行掃碼騎行,當(dāng)車輛損壞時(shí),用戶可以在APP上進(jìn)行客服報(bào)修。
使用共享單車APP對(duì)共享單車鎖上對(duì)應(yīng)的二維碼進(jìn)行掃碼開鎖,車鎖上的北斗/GPS 雙模定位模塊對(duì)用戶進(jìn)行實(shí)時(shí)定位,APP 根據(jù)用戶使用時(shí)長進(jìn)行計(jì)費(fèi)。圖2 為共享單車還車流程圖。
圖2 還車流程圖
用戶還車時(shí),APP 獲取位置信息,判斷車輛是否在電子圍欄內(nèi)部,如果車輛已經(jīng)在指定電子圍欄區(qū)域,APP 顯示還車成功并計(jì)費(fèi),如果車輛不在電子圍欄內(nèi)部,將提示還車失敗,并實(shí)時(shí)引導(dǎo)車輛歸還至最近的電子圍欄區(qū)域,直至還車成功。
該系統(tǒng)使用TCP 傳輸協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,使得通信過程更加安全可靠;使用GPRS 通信發(fā)送指令給硬件處理器;使用Socket 通信,完成SIM 模塊與IP 地址之間的數(shù)據(jù)傳輸。
本系統(tǒng)采用TCP 傳輸協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸。相比UDP,TCP 可以提供更可靠的服務(wù),UDP 不能保證可靠交付。通過TCP 傳輸?shù)臄?shù)據(jù),可以做到數(shù)據(jù)不丟失,傳輸信道不出現(xiàn)差錯(cuò),保證通信過程中傳輸數(shù)據(jù)的準(zhǔn)確性。
共享單車鎖通過GPRS 通信實(shí)現(xiàn)車鎖與服務(wù)器端指令的接收與發(fā)送,利用GPRS 無線傳輸數(shù)據(jù),實(shí)現(xiàn)了車鎖的無線通信。GPRS 具有實(shí)時(shí)在線、高速傳輸?shù)葍?yōu)點(diǎn)。最重要的是實(shí)現(xiàn)了“永遠(yuǎn)在線”,當(dāng)沒有數(shù)據(jù)傳送時(shí),也可以一直保持著網(wǎng)絡(luò)連接,保障了車鎖與服務(wù)器的通信具有高效性。
利用socket 服務(wù)監(jiān)聽所需的服務(wù)器端口,獲得客戶端的IP與端口。用戶通過APP 掃描二維碼,掃碼成功后,APP 將二維碼對(duì)應(yīng)的序列號(hào)發(fā)送到系統(tǒng)的服務(wù)器端獲得序列號(hào),查找服務(wù)器數(shù)據(jù)庫中的記錄,如果數(shù)據(jù)庫中存在這個(gè)序列號(hào)記錄,就向socket 通道中寫入開鎖信號(hào)。如果不一致,斷開socket 連接,等到下一個(gè)用戶再做匹配。
該系統(tǒng)采用自主開發(fā)的共享單車APP 和車鎖硬件,配合北斗/GPS 雙模衛(wèi)星定位實(shí)現(xiàn)整個(gè)共享單車正常運(yùn)行,通過測試,該系統(tǒng)符合共享單車的市場要求,符合當(dāng)代人低碳環(huán)保的理念,解決了傳統(tǒng)有樁共享單車占用大量土地地資源的問題,也有效地治理了車倆亂停亂放的現(xiàn)象,為傳統(tǒng)共享單車出現(xiàn)的問題提供了一種有效的解決方案。