楊皓予 李智強(qiáng) 段海龍
摘要:隨著無(wú)線通信技術(shù)的發(fā)展,基于WiFi無(wú)線通信的物聯(lián)網(wǎng)設(shè)備的研究開(kāi)始受到關(guān)注。該文針對(duì)現(xiàn)如今共享經(jīng)濟(jì)發(fā)展勢(shì)頭良好和停車場(chǎng)車位供需關(guān)系緊張的社會(huì)現(xiàn)象,進(jìn)行了基于WiFi的共享車位設(shè)計(jì)。該文分析了Android操作系統(tǒng)和WiFi無(wú)線通信技術(shù)的應(yīng)用優(yōu)勢(shì),對(duì)基于NodeMcu Lua WIFI模塊的智能車位鎖硬件方面做了詳細(xì)設(shè)計(jì),在所采用的通信協(xié)議和開(kāi)發(fā)平臺(tái)上進(jìn)行了基于Android操作系統(tǒng)的應(yīng)用程序設(shè)計(jì),建立了LabView服務(wù)器模型。在車位鎖硬件方面實(shí)現(xiàn)了無(wú)線控制和低功耗控制的功能,實(shí)現(xiàn)了在移動(dòng)客戶端對(duì)停車場(chǎng)車位進(jìn)行預(yù)約、使用、結(jié)算等功能。該設(shè)計(jì)具有使用方便和應(yīng)用廣泛等優(yōu)勢(shì),能夠很好地緩解停車位供需關(guān)系緊張的現(xiàn)象。
關(guān)鍵詞:WiFi;Android;LabView服務(wù)器;共享車位
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)24-0032-04
1 引言
現(xiàn)如今,我國(guó)公民的汽車保有量呈井噴式增長(zhǎng)。因此所導(dǎo)致的停車場(chǎng)車位供需關(guān)系緊張、私停亂放和人工管理效率低下的現(xiàn)象日益突出。針對(duì)這些現(xiàn)象,國(guó)內(nèi)的一些機(jī)構(gòu)開(kāi)始了對(duì)智能車位鎖的研究。據(jù)了解,市面上的智能車位鎖大部分是利用藍(lán)牙或紅外遙控器控制解鎖,由于這些無(wú)線通信技術(shù)自身的局限性,它們無(wú)法給用戶提供最佳的使用體驗(yàn)。這也導(dǎo)致了購(gòu)物商場(chǎng)、住宅小區(qū)、旅游景區(qū)等場(chǎng)所的停車場(chǎng)無(wú)法實(shí)現(xiàn)一體化、智能化管理。本文設(shè)計(jì)的基于WiFi的共享車位能夠?qū)⒊鞘欣锏墓餐\囄蝗考{入系統(tǒng),通過(guò)云端提供管理與服務(wù),為用戶智能推選出合適的車位以減少不必要的行駛。該系統(tǒng)通過(guò)互聯(lián)網(wǎng)電子現(xiàn)金結(jié)算,方便高效。整個(gè)系統(tǒng)只需少數(shù)工程技術(shù)人員進(jìn)行軟硬件維護(hù),很大程度上節(jié)省人力物力,提高了停車場(chǎng)車位管理效率。
2 系統(tǒng)設(shè)計(jì)
2.1 通信方式與操作系統(tǒng)
本設(shè)計(jì)選擇Android和WiFi無(wú)線通信技術(shù)作為系統(tǒng)開(kāi)發(fā)的技術(shù)核心。Android是一個(gè)由操作系統(tǒng)、中介架構(gòu)層及應(yīng)用程序所產(chǎn)生出來(lái)的軟件堆棧架[1]。由下而上,其核心為嵌入式Linux 2.6操作系統(tǒng),向上搭配Google為Android開(kāi)發(fā)的庫(kù),Android運(yùn)行時(shí)再配合應(yīng)用程序架構(gòu),來(lái)開(kāi)發(fā)各種不同的應(yīng)用程序 [2]。WIFI(Wireless Fidelity)技術(shù)即IEEE802.11協(xié)議,無(wú)線接入和高速傳輸是WIFI的主要技術(shù)優(yōu)點(diǎn),其中IEEE802.11b最高速度為11Mbps,IEEE802.11a與IEEE802.11g的最高速度為54Mbps[3]。WiFi技術(shù)能在數(shù)百英尺內(nèi)給予所接入無(wú)線電信號(hào)以強(qiáng)大的支持[4]。WiFi無(wú)線通信技術(shù)具有覆蓋范圍廣、無(wú)須布線、傳輸速度快的優(yōu)點(diǎn),這些優(yōu)點(diǎn)可以滿足本設(shè)計(jì)的要求。
2.2 系統(tǒng)總體設(shè)計(jì)
本文設(shè)計(jì)出一種基于WiFi的共享車位。系統(tǒng)包括Android應(yīng)用程序、LabView服務(wù)器和車位鎖三個(gè)部分。通過(guò)操作Android應(yīng)用程序?qū)⒚钚畔⑼ㄟ^(guò)無(wú)線網(wǎng)絡(luò)發(fā)送出去,LabView服務(wù)器接收并處理該信息后給車位鎖硬件發(fā)出動(dòng)作命令的信息,車位區(qū)的車位鎖接收到服務(wù)器發(fā)來(lái)的指令并運(yùn)行處理器上的程序以控制車位鎖機(jī)械結(jié)構(gòu)的開(kāi)關(guān)動(dòng)作。同時(shí),車位鎖的無(wú)線模塊將控制記錄等數(shù)據(jù)通過(guò)無(wú)線網(wǎng)絡(luò)返回到LabView服務(wù)器中進(jìn)行儲(chǔ)存。
基于WiFi的共享車位的系統(tǒng)整體架構(gòu)圖如圖1所示。移動(dòng)客戶端即基于Android操作系統(tǒng)開(kāi)發(fā)的應(yīng)用程序。系統(tǒng)服務(wù)器模塊由前面板和程序框圖組成。車位鎖端由主控模塊和以限位開(kāi)關(guān)為主的機(jī)械結(jié)構(gòu)模塊組成。LabView服務(wù)器接收到移動(dòng)客戶端發(fā)來(lái)的操作請(qǐng)求,對(duì)請(qǐng)求信號(hào)進(jìn)行處理后把命令信號(hào)發(fā)送至車位鎖端,車位鎖端的處理器對(duì)服務(wù)器發(fā)來(lái)的數(shù)據(jù)信息進(jìn)行匹配檢測(cè),從而執(zhí)行相應(yīng)的控制命令以控制車位鎖動(dòng)作。在系統(tǒng)工作示意圖中紅色代表已經(jīng)被使用的車位,綠色代表可以使用的車位。
2.3 車位鎖硬件部分設(shè)計(jì)
車位鎖硬件部分實(shí)現(xiàn)控制車位鎖機(jī)械結(jié)構(gòu)動(dòng)作的功能。其主控模塊主要由電機(jī)驅(qū)動(dòng)模塊、NodeMcu Lua WIF模塊和穩(wěn)壓模塊三部分組成。
2.3.1 電機(jī)驅(qū)動(dòng)模塊
本設(shè)計(jì)選擇的電機(jī)驅(qū)動(dòng)模塊其內(nèi)置芯片L298N是由意法半導(dǎo)體公司研發(fā)制造的一款雙全橋大電流(2A×2)電機(jī)驅(qū)動(dòng)芯片。L298N可驅(qū)動(dòng)2個(gè)電動(dòng)機(jī),OUT1,OUT2和OUT3,OUT4之間可分別接電動(dòng)機(jī)。5,7,10,12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn)。ENA,ENB接控制使能端,控制電機(jī)的停轉(zhuǎn)[6]。電路原理圖如圖2所示。
2.3.2 NodeMcu Lua WIFI模塊
本設(shè)計(jì)選擇的NodeMcu Lua WIFI模塊是基于樂(lè)鑫ESP8266無(wú)線通信模塊的超低功耗的UART-WiFi模塊。其硬件接口豐富,可支持UART、IIC、PWM、GPIO和ADC等接口[5]。模塊核心處理器 ESP8266在較小尺寸封裝中集成了Tensilica L106超低功耗32位微型 MCU,帶有16位精簡(jiǎn)模式,主頻支持80MHz和160MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板載天線。支持標(biāo)準(zhǔn)的IEEE802.11 b/g/n協(xié)議,完整的TCP/IP協(xié)議棧。為了能夠讓ESP8266無(wú)線通信模塊連接WIFI無(wú)線路由器,這里需要利用Lua腳本語(yǔ)言編寫WIFI路由連接程序,主要包括WIFI工作模式設(shè)置,station模式下的ssid和password設(shè)置,以及通過(guò)開(kāi)啟定時(shí)器進(jìn)行station模式下路由AP連接[7],如果連接WIFI路由成功,則通過(guò)無(wú)線路由器的DHCP功能獲取客戶端IP地址[8]。
2.3.3 穩(wěn)壓模塊
本設(shè)計(jì)選擇的LM2596S-ADJ可調(diào)降壓穩(wěn)壓模塊采用TO-263封裝方式。其電源電壓最大40V最小4.5V。輸出電壓最大37V最小1.23V。輸出電流最大3A頻率150kHz。以上參數(shù)完全符合本設(shè)計(jì)對(duì)于穩(wěn)壓模塊的硬件要求。
2.3.4 主控模塊總體設(shè)計(jì)
主控模塊的主要組成部分是:NodeMcu Lua WIFI模塊、電機(jī)驅(qū)動(dòng)模塊、繼電器模塊、直流減速電機(jī)模塊、穩(wěn)壓模塊、限位開(kāi)關(guān)模塊。根據(jù)每個(gè)組成部分所選用元件的封裝和使用方法設(shè)計(jì)了主控模塊的電路。電源通過(guò)外部接線接入該電路的電源端口,由于直流減速電機(jī)工作所需電壓直接使用電源提供的6V電壓,經(jīng)過(guò)穩(wěn)壓電路降壓后的5V電壓主要給CPU和其他元件供電。當(dāng)CPU接收到開(kāi)鎖命令,NodeMcu Lua的D1引腳輸出高電平觸發(fā)繼電器引腳導(dǎo)通,車位鎖機(jī)械結(jié)構(gòu)開(kāi)始動(dòng)作。當(dāng)限位開(kāi)關(guān)動(dòng)作,NodeMcu Lua的D5引腳輸入低電平觸發(fā)繼電器動(dòng)作,車位鎖機(jī)械結(jié)構(gòu)停止動(dòng)作。當(dāng)NodeMcu Lua的D2引腳輸出高電平D3引腳輸出低電平時(shí)電機(jī)驅(qū)動(dòng)模塊OUTA引腳輸出高電平D3引腳輸出低電平,電機(jī)正轉(zhuǎn)。反之電機(jī)反轉(zhuǎn)。主控模塊電路原理圖如圖3所示。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 Android應(yīng)用程序的設(shè)計(jì)
本設(shè)計(jì)中基于Android操作系統(tǒng)的應(yīng)用程序是利用androidstudio開(kāi)發(fā)的。該APP的部分操作界面截圖和基本功能導(dǎo)圖分別如圖4、5所示。
APP初始化需要用到的主要控件有:Button,EditText,TextView,ImageView。電子地圖則使用百度地圖sdk提供的一些服務(wù)進(jìn)行二次開(kāi)發(fā)。首先初始化地圖,在Activity的生命周期里實(shí)現(xiàn)地圖生命周期管理,用MapStatusUpdate來(lái)縮放地圖,LocationClient來(lái)定位以及定位監(jiān)聽(tīng)BaiduMap.setTrafficEnabled(true)打開(kāi)交通圖,Marker來(lái)添加覆蓋物,根據(jù)覆蓋物的LatLng經(jīng)緯度來(lái)顯示pop的位置以及監(jiān)聽(tīng)。DrivingRoutePlanOption根據(jù)兩個(gè)地方的經(jīng)緯度繪畫出行車路徑,車位計(jì)時(shí)用Timer定時(shí)處理,信息傳遞通過(guò)Socket的TCP協(xié)議請(qǐng)求服務(wù)器完成發(fā)送接收,然后用子線程請(qǐng)求服務(wù)器,再用Handler處理更新UI。
APP使用流程:進(jìn)入APP后彈出注冊(cè)和登錄信息框,用戶輸入注冊(cè)信息后便可登錄。在APP的主界面中輸入目的地后即檢索出相應(yīng)停車場(chǎng)的車位信息。在目標(biāo)停車場(chǎng)選擇空余車位后即完成預(yù)約(計(jì)費(fèi)開(kāi)始)。停車結(jié)束后用戶只需點(diǎn)擊結(jié)束按鈕并完成支付即可離開(kāi)。
3.2 上位機(jī)服務(wù)器的設(shè)計(jì)
本設(shè)計(jì)中的LabView服務(wù)器部分是由NI(National Instruments)公司的LabView軟件所開(kāi)發(fā)。該服務(wù)器的前面板和程序框圖截圖分別如圖6、7所示。
程序初始化后,管理員輸入主機(jī)IP和端口號(hào)創(chuàng)建TCP偵聽(tīng),其中創(chuàng)建局部變量“#of Connections”。下一步進(jìn)行狀態(tài)檢查(不按停止按鈕):判斷被打包的數(shù)據(jù)信息按名稱解綁后是否為空,若為空則重新執(zhí)行狀態(tài)檢查結(jié)構(gòu),若不為空則執(zhí)行“發(fā)送數(shù)據(jù)”。即忽略超時(shí)錯(cuò)誤,只要有客戶端連接進(jìn)來(lái)就發(fā)送數(shù)據(jù)。將偵聽(tīng)到的遠(yuǎn)程IP和端口創(chuàng)建為數(shù)組,通過(guò)數(shù)組顯示控件在前面板顯示出來(lái)。即只要有新的客戶端建立了連接就進(jìn)入“發(fā)送數(shù)據(jù)階段”整個(gè)過(guò)程運(yùn)行在FOR循環(huán)之中,當(dāng)有客戶端數(shù)據(jù)傳來(lái)的時(shí)候,數(shù)據(jù)被依次按序號(hào)保存在全局變量“data”中。保存在全局變量中的數(shù)據(jù)會(huì)在子VI中進(jìn)行處理如下處理:首先根據(jù)自己規(guī)定的標(biāo)志位字節(jié)(截圖中所用的是“1”)分割字符串,在標(biāo)志位之前的數(shù)據(jù)若是“ds”代表數(shù)據(jù)是車位鎖發(fā)來(lái)的,在標(biāo)志位之前的數(shù)據(jù)若是“csj”代表數(shù)據(jù)是手機(jī)發(fā)來(lái)的。在標(biāo)志位之后的數(shù)據(jù)會(huì)全部保存在圖中所示路徑中的.txt文件中,方便管理員查看。經(jīng)過(guò)子函數(shù)的處理,程序會(huì)把APP發(fā)來(lái)的東西截取出來(lái),然后通過(guò)上圖函數(shù)依次發(fā)送給所連接的車位鎖當(dāng)中。由于設(shè)計(jì)車位鎖軟件時(shí)在固件中已經(jīng)寫好了指令,所以只有對(duì)應(yīng)的車位鎖才能夠?qū)ο鄳?yīng)的數(shù)據(jù)進(jìn)行識(shí)別并作出操作。
3.3 車位鎖軟件設(shè)計(jì)
本設(shè)計(jì)中的車位鎖軟件部分執(zhí)行流程圖如圖8所示。
首先進(jìn)入初始化函數(shù),進(jìn)行相關(guān)初始化操作連接到服務(wù)器上,連接成功后喚醒主控芯片并通過(guò)串口打印服務(wù)器信息,如服務(wù)器IP和端口信息,此時(shí)處理器處于工作狀態(tài)。當(dāng)車位鎖的處理器NodeMcuLua的WiFi接口接收到來(lái)自服務(wù)器端發(fā)送過(guò)來(lái)的數(shù)據(jù)信息,并對(duì)數(shù)據(jù)進(jìn)行匹配操作。當(dāng)檢測(cè)到該信息是開(kāi)鎖命令,NodeMcuLua的D2、D3端口輸出相應(yīng)電平到繼電器模塊,繼電器動(dòng)作致使電機(jī)驅(qū)動(dòng)電路動(dòng)作,實(shí)現(xiàn)車位鎖的開(kāi)啟。當(dāng)檢測(cè)到該信息是關(guān)鎖命令,NodeMcuLua的D1、D5端口切換為預(yù)先設(shè)置的IO模式,在此過(guò)程中限位開(kāi)關(guān)掃描檢測(cè)機(jī)械臂位置信息,待到車位鎖完全關(guān)閉后返回相應(yīng)電平,NodeMcuLua處理器輸出相應(yīng)電平到繼電器模塊,繼電器動(dòng)作致使電機(jī)驅(qū)動(dòng)電路停止動(dòng)作,實(shí)現(xiàn)車位鎖的關(guān)閉。
4 系統(tǒng)性能測(cè)試與分析
經(jīng)過(guò)多次聯(lián)合調(diào)試,完成了基于WiFi的共享車位設(shè)計(jì)。當(dāng)在APP上注冊(cè)賬號(hào)并登錄后,選擇提前設(shè)定的三個(gè)模擬停車位,預(yù)約成功后點(diǎn)擊開(kāi)鎖,車位鎖開(kāi)啟。當(dāng)結(jié)束按鈕按下時(shí),彈出計(jì)費(fèi)信息,確認(rèn)無(wú)誤并支付后車位鎖關(guān)閉。通過(guò)軟件和硬件的結(jié)合,可以很好地實(shí)現(xiàn)預(yù)先設(shè)計(jì)的功能。
5 結(jié)論
現(xiàn)如今,市場(chǎng)上的智能車位鎖非常多,但是能通過(guò)手機(jī)客戶端提供商業(yè)租賃、車位查找等一體化服務(wù)的便很少。該項(xiàng)目在原有傳統(tǒng)車位鎖的基礎(chǔ)上,將物聯(lián)網(wǎng)思想運(yùn)用到車位管理系統(tǒng)上來(lái),并進(jìn)行了本質(zhì)上的創(chuàng)新。隨著Android系統(tǒng)的發(fā)展和普及,每臺(tái)安卓智能移動(dòng)設(shè)備都可以從軟件商城下載該APP,并且可以免費(fèi)注冊(cè)賬號(hào)。用戶只要根據(jù)自己所在的城市、街道,所要停車的單位名稱等信息就可以輕松地找到車位。在整個(gè)過(guò)程中,用戶甚至都不需要下車就可以輕松地從城市里萬(wàn)千停車場(chǎng)中找到一個(gè)滿意的車位,最后放心停車。這一設(shè)計(jì)投入市場(chǎng)后會(huì)在很大程度上緩解停車位供需關(guān)系緊張的社會(huì)現(xiàn)象,為市民生活提供方便。本文在WiFi無(wú)線通信技術(shù)支持的基礎(chǔ)上,實(shí)現(xiàn)了共享車位的研制。
參考文獻(xiàn):
[1] 高紅旭.基于Android操作系統(tǒng)的應(yīng)用研究[D].西安電子科技大學(xué),2011.
[2] 馬寧.嵌入式移動(dòng)開(kāi)發(fā)[J].程序員,2005(06):12-13.
[3] 唐思敏.WIFI技術(shù)及其應(yīng)用研究[J].福建電腦,2009,25(10):59+82.
[4] 盛仲飆.WIFI無(wú)線網(wǎng)絡(luò)技術(shù)及安全性研究[J].電子設(shè)計(jì)工程,2012,20(16):1-3.
[5] 王浩,王東.基于NodeMCU固件平臺(tái)的RGB三色燈遠(yuǎn)程控制設(shè)計(jì)與實(shí)現(xiàn)[J].軟件工程,2017,20(05):47-50.
[6] 張?zhí)禊i,徐磊.L298N控制直流電機(jī)正反轉(zhuǎn)[J].工業(yè)設(shè)計(jì),2011(03):98-99.
[7] 姜仲,劉丹.Zig Bee技術(shù)與實(shí)訓(xùn)教程[M].北京:清華大學(xué)出版社,2014:137-140.
[8] 王浩,浦靈敏.物聯(lián)網(wǎng)技術(shù)應(yīng)用開(kāi)發(fā)[M].北京:中國(guó)水利水電出版社,2015:113-115.
【通聯(lián)編輯:代影】