王中生,,韓康
(西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,,陜西 西安 710021)
摘要:隨著經(jīng)濟(jì)水平和人們生活質(zhì)量的不斷提高,,機(jī)動(dòng)車數(shù)量迅速增加,傳統(tǒng)停車系統(tǒng)無法滿足高速增長的停車需求,,智能停車管理系統(tǒng)的研究勢在必行,。通過對傳統(tǒng)停車系統(tǒng)的分析,研究了智能停車系統(tǒng)需具備的基本功能,并以ZigBee傳感網(wǎng)絡(luò),、MQTT協(xié)議,、Node.js與O2O模式等作為關(guān)鍵技術(shù),提出系統(tǒng)的整體架構(gòu)、系統(tǒng)組成和實(shí)現(xiàn)技術(shù),,該系統(tǒng)可有效利用城市停車資源,減輕停車壓力,。
中圖分類號:TN602文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674 7720.2016.20.028
引用格式:王中生,,韓康. 基于物聯(lián)網(wǎng)的智能停車系統(tǒng)研究設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2016,35(20):99 102.
關(guān)鍵詞:智能停車;ZigBee,;MQTT,;Node.js;O2O
0引言
隨著我國經(jīng)濟(jì)高速增長,、城市化進(jìn)程不斷加快,,機(jī)動(dòng)車的數(shù)量迅速增加,日益增長的停車需求與城市所能提供的停車位數(shù)量之間的矛盾越來越突出,,停車問題已經(jīng)成為影響城市交通可持續(xù)發(fā)展的瓶頸,。然而,傳統(tǒng)停車場由于功能單一,、效率低下,、自動(dòng)化程度低,己經(jīng)不能滿足人們的停車需求,,因此發(fā)展城市各處停車場的智能化建設(shè)對于改善整個(gè)城市的交通管理狀況起著至關(guān)重要的作用[1],。
傳統(tǒng)停車場在停車效率、能源消耗,、安全性能,、車場管理運(yùn)營等方面已不能滿足現(xiàn)代化的停車發(fā)展需求,多數(shù)傳統(tǒng)停車系統(tǒng)存在以下問題,。
?。?)停車系統(tǒng)僅記錄停車場內(nèi)車輛數(shù)目或剩余車位數(shù)目,無法提供具體的停泊位置信息,。如果停車場規(guī)模較大,,車主很難快速找到合適的停車位。
?。?)無法提供空余停車位在線顯示功能,。對于一個(gè)開放性停車場,車主無法了解到該停車場是否會(huì)有空余車位,,等到車主到達(dá)該停車場時(shí)才發(fā)現(xiàn)已經(jīng)停滿,,這無疑是對時(shí)間和資源的浪費(fèi)。
?。?)停車系統(tǒng)之間很少進(jìn)行資源共享,。當(dāng)前各個(gè)停車場的系統(tǒng)是各自分離的“信息孤島”[2],停車系統(tǒng)之間無法進(jìn)行數(shù)據(jù)共享,,即使某些停車場爆滿,,而另一些停車場有大量空余車位,系統(tǒng)也無法為用戶提供來自其他停車場的可選停車方案,。
因此,,開發(fā)和設(shè)計(jì)一套完整的智能停車管理系統(tǒng)非常必要,。智能化的停車管理系統(tǒng)成為大中型綜合商業(yè)建筑物、學(xué)校以及居民小區(qū)必備的配套設(shè)施[3],,它可以有效減輕人們出行的壓力,,緩解現(xiàn)代城市堵車及停車難的問題。
1系統(tǒng)功能
智能停車管理系統(tǒng)針對傳統(tǒng)停車場的缺陷,,結(jié)合國內(nèi)外智能停車系統(tǒng)的研究現(xiàn)狀,,采用O2O模式,為系統(tǒng)添加了以下幾方面功能,。
1.1空余車位在線查看功能
在O2O(Online to Offline)模式下,,用戶可以通過PC網(wǎng)頁或者手機(jī)等終端遠(yuǎn)程查看停車場的空余車位信息,車位上有車泊入或離開時(shí),,車位狀態(tài)變化都會(huì)及時(shí)顯示在用戶終端上,。如果用戶想要在某個(gè)停車場泊車,可提前通過手機(jī)等移動(dòng)終端查看信息并預(yù)定車位,,進(jìn)行有計(jì)劃的安排,,消除尋找車位的盲目性。
1.2車位預(yù)約功能
通過移動(dòng)終端查看空閑車位,,用戶可以對其進(jìn)行標(biāo)記和預(yù)約,,對于被用戶標(biāo)記過的車位系統(tǒng)會(huì)限制其他車輛泊入,待用戶到達(dá)自己預(yù)約的車位時(shí),,可以通過移動(dòng)終端操作,,解除限制,泊車入位,。
1.3停車引導(dǎo)功能
用戶可以通過移動(dòng)終端查看停車場布局圖和停車情況,,并根據(jù)引導(dǎo)找出事先預(yù)約或者空閑的車位。當(dāng)停車場規(guī)模較大時(shí),,清晰的停車分布圖可以引導(dǎo)用戶快速泊車,。
1.4停車場信息共享和停車位推薦功能
當(dāng)用戶通過移動(dòng)終端預(yù)約車位時(shí),系統(tǒng)控制硬件,,采取強(qiáng)制措施保護(hù)車位,,例如升起一排地樁或者檔桿,阻止其他用戶進(jìn)入,。但是這顯然是對公共資源的一種浪費(fèi),,更好的做法是,僅對被預(yù)約的車位進(jìn)行標(biāo)記,,當(dāng)用戶預(yù)約的車位被其他用戶占用時(shí),,系統(tǒng)可為用戶推薦車位,提供可選的停車方案,。停車位推薦的功能是依賴于信息共享的,,各個(gè)停車系統(tǒng)之間能夠信息共享,,才能提供合理的車位推薦。
2系統(tǒng)架構(gòu)
該智能停車系統(tǒng)整體上劃分為三大部分[4]:數(shù)據(jù)源層,、數(shù)據(jù)服務(wù)層和發(fā)布層,如圖1所示,。
首先,,系統(tǒng)中原始數(shù)據(jù)均來源于數(shù)據(jù)源層,通過紅外,、超聲波等設(shè)備采集車位傳感數(shù)據(jù),,采用ZigBee傳感網(wǎng)絡(luò)作為中間層進(jìn)行通信,依照ZigBee協(xié)議進(jìn)行組網(wǎng)和發(fā)送數(shù)據(jù)[5],。采集到的傳感器數(shù)據(jù)可通過ZigBee傳感網(wǎng)絡(luò)傳送至PC上位機(jī)進(jìn)行數(shù)據(jù)的集中預(yù)處理,。其次,數(shù)據(jù)服務(wù)層運(yùn)行于服務(wù)器中,,接收來自PC上位機(jī)的傳感器數(shù)據(jù),,對其進(jìn)行處理,最終轉(zhuǎn)換為車位狀態(tài)信息存儲(chǔ)于數(shù)據(jù)庫內(nèi),,并使用Webservice規(guī)范發(fā)布數(shù)據(jù)接口,,提供數(shù)據(jù)共享功能。最后,,在發(fā)布層,,系統(tǒng)支持多種客戶端,用戶可方便地查看停車場車位信息,,并使用車位預(yù)約,、停車引導(dǎo)等功能。
3系統(tǒng)設(shè)計(jì)與關(guān)鍵技術(shù)
系統(tǒng)整體實(shí)現(xiàn)思路是:按照O2O理念[6],,線下使用ZigBee進(jìn)行數(shù)據(jù)采集,,配合Arduino控制器控制硬件,線上使用Node.js處理數(shù)據(jù)存儲(chǔ)與數(shù)據(jù)分發(fā),,配合手機(jī)等移動(dòng)端App,,管理停車位資源。通過線上線下的有序配合,,為用戶提供空閑車位查詢,、車位標(biāo)記預(yù)約、停車引導(dǎo)等功能,。系統(tǒng)的整體結(jié)構(gòu)如圖2所示,。
系統(tǒng)主要采用ZigBee數(shù)據(jù)傳輸、MQTT消息推送,、Node.js數(shù)據(jù)服務(wù),、移動(dòng)客戶端等關(guān)鍵技術(shù),。
3.1ZigBee無線傳感網(wǎng)絡(luò)
在智能停車系統(tǒng)中,下位機(jī)采用超聲波傳感器探測距離,,從而判斷車位上是否有車輛泊入,。通過Arduino控制器操縱傳感器采集數(shù)據(jù)經(jīng)由ZigBee網(wǎng)絡(luò)傳遞至PC上位機(jī),數(shù)據(jù)在上位機(jī)上進(jìn)行預(yù)處理(消除噪聲)后,,最終遞交至服務(wù)器,。另一方面,除了接收和處理來自下位機(jī)的數(shù)據(jù),,上位機(jī)也可以接收服務(wù)器控制信息,,并通過ZigBee網(wǎng)絡(luò)發(fā)送控制信息至Arduino控制器,最終由Arduino來控制硬件動(dòng)作,,實(shí)現(xiàn)反向控制,,因此,系統(tǒng)中不僅可以通過移動(dòng)終端獲取傳感器數(shù)據(jù)實(shí)現(xiàn)在線查看車位的功能,,也能通過手機(jī)操作控制系統(tǒng)硬件,,實(shí)現(xiàn)預(yù)約車位的功能。超聲波傳感器與Arduino控制器,、 ZigBee與上位機(jī)均采用串口通信協(xié)議交換數(shù)據(jù),。
3.2MQTT消息推送
智能停車系統(tǒng)要求數(shù)據(jù)能自主雙向流動(dòng),即上位機(jī)與服務(wù)器通信過程中,,一方面當(dāng)傳感器數(shù)據(jù)由于車輛位泊入或者離開發(fā)生變化時(shí),,上位機(jī)能主動(dòng)通知服務(wù)器,服務(wù)器接收新數(shù)據(jù)并存儲(chǔ),。另一方面,,用戶發(fā)送反饋數(shù)據(jù)去操作車位時(shí),服務(wù)器能主動(dòng)通知上位機(jī),,上位機(jī)再將用戶控制指令數(shù)據(jù)傳遞至ZigBee網(wǎng)絡(luò),,進(jìn)而通知Arduino控制器操作相關(guān)硬件。由于HTTP協(xié)議具有被動(dòng)性,,在此過程中,,單純地使用HTTP協(xié)議只能保證傳感器數(shù)據(jù)被正確提交至服務(wù)器,但無法保證服務(wù)器數(shù)據(jù)變化時(shí)能主動(dòng)通知服務(wù)器,,除非使用客戶端長輪詢的方式,,即在上位機(jī)不斷地發(fā)送HTTP請求獲取最新的服務(wù)器數(shù)據(jù)。但是這種方式非常耗費(fèi)系統(tǒng)資源,,對一個(gè)物聯(lián)網(wǎng)系統(tǒng)代價(jià)比較大,,因此選用擁有“消息訂閱機(jī)制”特點(diǎn)的MQTT協(xié)議實(shí)現(xiàn)服務(wù)器到上位機(jī)的通信更加合理。
消息隊(duì)列遙測傳輸(Message Queuing Telemetry Transport,,MQTT)采用輕量級發(fā)布和訂閱消息傳輸機(jī)制,,支持雙向消息推送[7],。在MQTT協(xié)議中有訂閱者、發(fā)布者和代理三類角色,,前兩種以MQTT客戶端的形式來展現(xiàn),,后一種以MQTT代理服務(wù)器的形式展現(xiàn)。訂閱者和發(fā)布者的通信由MQTT代理來協(xié)調(diào),,具體運(yùn)行機(jī)制是:MQTT代理服務(wù)器維護(hù)各個(gè)MQTT客戶端之間的關(guān)系,,當(dāng)某一客戶端發(fā)布消息時(shí),代理服務(wù)器會(huì)首先接收消息,,查詢訂閱該類型消息的用戶,并將消息轉(zhuǎn)發(fā)給訂閱者,,訂閱者便可主動(dòng)收到消息推送,。智能停車系統(tǒng)中采用MQTT協(xié)議進(jìn)行服務(wù)器到上位機(jī)的反向通信,PC上位機(jī)訂閱服務(wù)器發(fā)布的數(shù)據(jù)庫更新的消息,,一旦數(shù)據(jù)庫更新事件發(fā)生,,便發(fā)布消息主動(dòng)通知上位機(jī),上位機(jī)再做相應(yīng)處理,。通信模型如圖3所示,,上位機(jī)PC和服務(wù)器均運(yùn)行著MQTT客戶端,用于消息的訂閱或發(fā)布,,某個(gè)MQTT客戶端一旦發(fā)布消息,,MQTT代理服務(wù)器便會(huì)將其轉(zhuǎn)發(fā)給相應(yīng)的訂閱者。
本系統(tǒng)在上位機(jī)上采用基于Python的開源工具Paho實(shí)現(xiàn)MQTT客戶端,,與運(yùn)行于服務(wù)器中的MQTT代理服務(wù)器進(jìn)行交互,,完成服務(wù)器到上位機(jī)的消息推送;使用HTTP協(xié)議實(shí)現(xiàn)上位機(jī)到服務(wù)器的通信,,當(dāng)傳感器數(shù)據(jù)的變化超過一定閾值時(shí)發(fā)送HTTP請求,,將數(shù)據(jù)提交給服務(wù)器??偟膩碚f,,通過HTTP協(xié)議與MQTT協(xié)議,數(shù)據(jù)可以在服務(wù)器與上位機(jī)之間自主雙向流動(dòng),。
3.3Node.js數(shù)據(jù)服務(wù)
服務(wù)端采用Node.js技術(shù),,可實(shí)現(xiàn)服務(wù)掛載、數(shù)據(jù)操作,、數(shù)據(jù)分發(fā)等多種功能,。
(1)服務(wù)掛載。在Node.js環(huán)境中可以同時(shí)掛載MQTT代理服務(wù)器和HTTP服務(wù)器,,滿足服務(wù)器自主推送消息到上位機(jī)的需求,,也允許上位機(jī)發(fā)送HTTP請求來提交傳感器數(shù)據(jù),。在Node.js環(huán)境中,可采用Mosca[8]搭建MQTT代理服務(wù)器,,同時(shí)創(chuàng)建MQTT客戶端,,在數(shù)據(jù)庫更新時(shí)發(fā)布消息,通知上位機(jī)執(zhí)行執(zhí)行相應(yīng)動(dòng)作,。
(2)數(shù)據(jù)操作,。MongoDB是一種NoSQL數(shù)據(jù)庫,基于分布式文件存儲(chǔ),,可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型,,適用于大數(shù)據(jù)查詢服務(wù)。在智能停車系統(tǒng)中,,服務(wù)器接收到傳感器數(shù)據(jù)后按照一定規(guī)則將傳感器數(shù)據(jù)映射為車位的占用狀態(tài)信息,,以JSON格式表示,存儲(chǔ)于MongoDB,。
(3)數(shù)據(jù)分發(fā),。Webservice為運(yùn)行于不同系統(tǒng)或平臺(tái)的應(yīng)用提供了一套交互規(guī)范,RESTful Webservice因其輕量,、高效,、易用、易設(shè)計(jì)等特點(diǎn),,在移動(dòng)互聯(lián)網(wǎng)應(yīng)用中使用廣泛,。使用Node.js平臺(tái)的輕量級Web框架Express,可設(shè)計(jì)符合REST規(guī)范的API,,方便快捷地進(jìn)行數(shù)據(jù)分發(fā)和共享,。手機(jī)等移動(dòng)客戶端調(diào)用REST API可以從數(shù)據(jù)庫中獲取車位信息,展示在移動(dòng)設(shè)備上,。
總之,,在Node.js環(huán)境下,各項(xiàng)功能可以便捷地實(shí)現(xiàn)[9],,其整體組織結(jié)構(gòu)如圖4所示,。
3.4移動(dòng)客戶端技術(shù)
使用Java、Swift,、React Native[10]等技術(shù)可開發(fā)各個(gè)平臺(tái)的App,,通過調(diào)用服務(wù)器提供的REST API 獲取車位狀態(tài),并使用第三方SDK集成一些實(shí)用的功能,,例如,,使用百度地圖SDK為App集成地圖和導(dǎo)航功能[1112];使用支付寶SDK可以為App集成在線支付功能,停車收費(fèi)通過移動(dòng)支付技術(shù)完成,。因此,,用戶通過App可以快速查看停車場的布局圖和停車位的當(dāng)前占用信息,提前預(yù)約車位,,進(jìn)行高效的停車管理,,緩解城市停車壓力。
4結(jié)論
本文通過對現(xiàn)有停車系統(tǒng)的分析,,結(jié)合當(dāng)前物聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)先進(jìn)技術(shù),,根據(jù)O2O模式提出了一種智能停車系統(tǒng)的整體架構(gòu),并重點(diǎn)對其中的關(guān)鍵技術(shù)進(jìn)行了研究,。該系統(tǒng)可提供空余車位在線查看,、車位在線預(yù)約、用戶停車引導(dǎo),、附近停車場推薦和智能計(jì)費(fèi)系統(tǒng)等功能,,實(shí)現(xiàn)停車場自動(dòng)化管理,緩解日益增長的汽車保有量帶來的城市停車壓力,。
依據(jù)信息技術(shù)的發(fā)展趨勢,未來智能停車場主要從以下幾個(gè)方面進(jìn)行深化,。
?。?)打破信息孤島。依賴于互聯(lián)網(wǎng)技術(shù),,停車場之間數(shù)據(jù)共享,,構(gòu)建統(tǒng)一物聯(lián)平臺(tái),進(jìn)行資源整合,,使停車資源得到有效利用,。
(2)實(shí)現(xiàn)高度自動(dòng)化,。通過移動(dòng)支付自助繳費(fèi),,使用傳感器技術(shù)感知車輛泊入并自動(dòng)計(jì)費(fèi),使用計(jì)算機(jī)視覺等技術(shù)實(shí)現(xiàn)快速識(shí)別,。逐漸實(shí)現(xiàn)停車場無人化管理,,節(jié)省人力資源。
?。?)精確的停車誘導(dǎo),。通過傳感器定位技術(shù)自動(dòng)生成停車場布局圖,為用戶提供更精確的停車誘導(dǎo),、車位引導(dǎo)和反向?qū)ぼ嚨裙δ堋?/p>
?。?)移動(dòng)終端支持更多功能,如停車位自動(dòng)導(dǎo)航、自動(dòng)繳費(fèi),、按照停車位反向?qū)ぼ嚨裙δ堋?/p>
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,,停車系統(tǒng)會(huì)變得越來越智能,“城市停車難”的問題也會(huì)逐步減緩,。
參考文獻(xiàn)
?。?] 郭 騰. 智能停車管理系統(tǒng)的研究與實(shí)現(xiàn)[D]. 北京:北方工業(yè)大學(xué),2015.
[2] 姚雄. 信息孤島問題及PLM解決方案[D].南京:南京航空航天大學(xué),2005.
?。?] 黨蟒. 一種露天停車場管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].鄭州:鄭州大學(xué),2014.
?。?] 李揚(yáng)威,焦朋朋. 城市智能停車管理系統(tǒng)研究[J].交通信息安全,2014,32(4):160-164.
?。?] 蔡文晶. 基于ZigBee技術(shù)的無線數(shù)據(jù)采集系統(tǒng)[D].杭州:杭州電子科技大學(xué),2011.
?。?] 盧益清, 李忱.O2O商業(yè)模式及發(fā)展前景研究[J].企業(yè)經(jīng)濟(jì),2013(11):98-100.
[7] COLLINA M,, CORAZZA G E,, VACELLICORALLI A. Introducing the QEST broker: scaling the IoT by bridging MQTT and REST[C].2012 IEEE 23rd International Symposium on Personal Indoor and Mobile Radio Communications (PIMRC), 2012:36-41.
[8] Mcollina. MQTT broker as a module[EB/OL].(2016-05-08)[2016-06-26]https://github.com/mcollina/mosca.
?。?] TILKOV Stefan. Node.js: using JavaScript to build high performance network programs[J]. IEEE Internet Computing,2010,14(6):1-15.
?。?0] A JavaScript library for building user interfaces[EB/OL].(2016-05-07)[2016-06-26]http://facebook.github.io/react/.
[11] 肖文漢,吳孝斌.基于百度地圖API的停車場查詢系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(4):227-230.
?。?2] 任齊. 基于Android的LBS應(yīng)用研究[D].上海:華東師范大學(xué),2012.