王中生,韓 康
(西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710021)
?
基于物聯(lián)網(wǎng)的智能停車系統(tǒng)研究設(shè)計(jì)
王中生,韓 康
(西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710021)
隨著經(jīng)濟(jì)水平和人們生活質(zhì)量的不斷提高,機(jī)動(dòng)車數(shù)量迅速增加,傳統(tǒng)停車系統(tǒng)無法滿足高速增長的停車需求,智能停車管理系統(tǒng)的研究勢(shì)在必行。通過對(duì)傳統(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)可有效利用城市停車資源,減輕停車壓力。
智能停車;ZigBee;MQTT; Node.js;O2O
隨著我國經(jīng)濟(jì)高速增長、城市化進(jìn)程不斷加快,機(jī)動(dòng)車的數(shù)量迅速增加,日益增長的停車需求與城市所能提供的停車位數(shù)量之間的矛盾越來越突出,停車問題已經(jīng)成為影響城市交通可持續(xù)發(fā)展的瓶頸。然而,傳統(tǒng)停車場(chǎng)由于功能單一、效率低下、自動(dòng)化程度低,己經(jīng)不能滿足人們的停車需求,因此發(fā)展城市各處停車場(chǎng)的智能化建設(shè)對(duì)于改善整個(gè)城市的交通管理狀況起著至關(guān)重要的作用[1]。
傳統(tǒng)停車場(chǎng)在停車效率、能源消耗、安全性能、車場(chǎng)管理運(yùn)營等方面已不能滿足現(xiàn)代化的停車發(fā)展需求,多數(shù)傳統(tǒng)停車系統(tǒng)存在以下問題。
(1)停車系統(tǒng)僅記錄停車場(chǎng)內(nèi)車輛數(shù)目或剩余車位數(shù)目,無法提供具體的停泊位置信息。如果停車場(chǎng)規(guī)模較大,車主很難快速找到合適的停車位。
(2)無法提供空余停車位在線顯示功能。對(duì)于一個(gè)開放性停車場(chǎng),車主無法了解到該停車場(chǎng)是否會(huì)有空余車位,等到車主到達(dá)該停車場(chǎng)時(shí)才發(fā)現(xiàn)已經(jīng)停滿,這無疑是對(duì)時(shí)間和資源的浪費(fèi)。
(3)停車系統(tǒng)之間很少進(jìn)行資源共享。當(dāng)前各個(gè)停車場(chǎng)的系統(tǒng)是各自分離的“信息孤島”[2],停車系統(tǒng)之間無法進(jìn)行數(shù)據(jù)共享,即使某些停車場(chǎng)爆滿,而另一些停車場(chǎng)有大量空余車位,系統(tǒng)也無法為用戶提供來自其他停車場(chǎng)的可選停車方案。
因此,開發(fā)和設(shè)計(jì)一套完整的智能停車管理系統(tǒng)非常必要。智能化的停車管理系統(tǒng)成為大中型綜合商業(yè)建筑物、學(xué)校以及居民小區(qū)必備的配套設(shè)施[3],它可以有效減輕人們出行的壓力,緩解現(xiàn)代城市堵車及停車難的問題。
智能停車管理系統(tǒng)針對(duì)傳統(tǒng)停車場(chǎng)的缺陷,結(jié)合國內(nèi)外智能停車系統(tǒng)的研究現(xiàn)狀,采用O2O模式,為系統(tǒng)添加了以下幾方面功能。
1.1 空余車位在線查看功能
在O2O(Online to Offline)模式下,用戶可以通過PC網(wǎng)頁或者手機(jī)等終端遠(yuǎn)程查看停車場(chǎng)的空余車位信息,車位上有車泊入或離開時(shí),車位狀態(tài)變化都會(huì)及時(shí)顯示在用戶終端上。如果用戶想要在某個(gè)停車場(chǎng)泊車,可提前通過手機(jī)等移動(dòng)終端查看信息并預(yù)定車位,進(jìn)行有計(jì)劃的安排,消除尋找車位的盲目性。
1.2 車位預(yù)約功能
通過移動(dòng)終端查看空閑車位,用戶可以對(duì)其進(jìn)行標(biāo)記和預(yù)約,對(duì)于被用戶標(biāo)記過的車位系統(tǒng)會(huì)限制其他車輛泊入,待用戶到達(dá)自己預(yù)約的車位時(shí),可以通過移動(dòng)終端操作,解除限制,泊車入位。
1.3 停車引導(dǎo)功能
用戶可以通過移動(dòng)終端查看停車場(chǎng)布局圖和停車情況,并根據(jù)引導(dǎo)找出事先預(yù)約或者空閑的車位。當(dāng)停車場(chǎng)規(guī)模較大時(shí),清晰的停車分布圖可以引導(dǎo)用戶快速泊車。
1.4 停車場(chǎng)信息共享和停車位推薦功能
當(dāng)用戶通過移動(dòng)終端預(yù)約車位時(shí),系統(tǒng)控制硬件,采取強(qiáng)制措施保護(hù)車位,例如升起一排地樁或者檔桿,阻止其他用戶進(jìn)入。但是這顯然是對(duì)公共資源的一種浪費(fèi),更好的做法是,僅對(duì)被預(yù)約的車位進(jìn)行標(biāo)記,當(dāng)用戶預(yù)約的車位被其他用戶占用時(shí),系統(tǒng)可為用戶推薦車位,提供可選的停車方案。停車位推薦的功能是依賴于信息共享的,各個(gè)停車系統(tǒng)之間能夠信息共享,才能提供合理的車位推薦。
該智能停車系統(tǒng)整體上劃分為三大部分[4]:數(shù)據(jù)源層、數(shù)據(jù)服務(wù)層和發(fā)布層,如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
首先,系統(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ù),對(duì)其進(jìn)行處理,最終轉(zhuǎn)換為車位狀態(tài)信息存儲(chǔ)于數(shù)據(jù)庫內(nèi),并使用Webservice規(guī)范發(fā)布數(shù)據(jù)接口,提供數(shù)據(jù)共享功能。最后,在發(fā)布層,系統(tǒng)支持多種客戶端,用戶可方便地查看停車場(chǎng)車位信息,并使用車位預(yù)約、停車引導(dǎo)等功能。
系統(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.1 ZigBee無線傳感網(wǎng)絡(luò)
在智能停車系統(tǒng)中,下位機(jī)采用超聲波傳感器探測(cè)距離,從而判斷車位上是否有車輛泊入。通過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.2 MQTT消息推送
智能停車系統(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請(qǐng)求獲取最新的服務(wù)器數(shù)據(jù)。但是這種方式非常耗費(fèi)系統(tǒng)資源,對(duì)一個(gè)物聯(lián)網(wǎng)系統(tǒng)代價(jià)比較大,因此選用擁有“消息訂閱機(jī)制”特點(diǎn)的MQTT協(xié)議實(shí)現(xiàn)服務(wù)器到上位機(jī)的通信更加合理。
消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport,MQTT)采用輕量級(jí)發(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)的訂閱者。
圖3 MQTT協(xié)議通信模型
本系統(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請(qǐng)求,將數(shù)據(jù)提交給服務(wù)器??偟膩碚f,通過HTTP協(xié)議與MQTT協(xié)議,數(shù)據(jù)可以在服務(wù)器與上位機(jī)之間自主雙向流動(dòng)。
3.3 Node.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請(qǐng)求來提交傳感器數(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)的輕量級(jí)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所示。
圖4 Node.js環(huán)境組織結(jié)構(gòu)
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)航功能[11-12];使用支付寶SDK可以為App集成在線支付功能,停車收費(fèi)通過移動(dòng)支付技術(shù)完成。因此,用戶通過App可以快速查看停車場(chǎng)的布局圖和停車位的當(dāng)前占用信息,提前預(yù)約車位,進(jìn)行高效的停車管理,緩解城市停車壓力。
本文通過對(duì)現(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)對(duì)其中的關(guān)鍵技術(shù)進(jìn)行了研究。該系統(tǒng)可提供空余車位在線查看、車位在線預(yù)約、用戶停車引導(dǎo)、附近停車場(chǎng)推薦和智能計(jì)費(fèi)系統(tǒng)等功能,實(shí)現(xiàn)停車場(chǎng)自動(dòng)化管理,緩解日益增長的汽車保有量帶來的城市停車壓力。
依據(jù)信息技術(shù)的發(fā)展趨勢(shì),未來智能停車場(chǎng)主要從以下幾個(gè)方面進(jìn)行深化。
(1)打破信息孤島。依賴于互聯(lián)網(wǎng)技術(shù),停車場(chǎng)之間數(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)停車場(chǎng)無人化管理,節(jié)省人力資源。
(3)精確的停車誘導(dǎo)。通過傳感器定位技術(shù)自動(dòng)生成停車場(chǎng)布局圖,為用戶提供更精確的停車誘導(dǎo)、車位引導(dǎo)和反向?qū)ぼ嚨裙δ堋?/p>
(4)移動(dòng)終端支持更多功能,如停車位自動(dòng)導(dǎo)航、自動(dòng)繳費(fèi)、按照停車位反向?qū)ぼ嚨裙δ堋?/p>
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,停車系統(tǒng)會(huì)變得越來越智能,“城市停車難”的問題也會(huì)逐步減緩。
[1] 郭 騰. 智能停車管理系統(tǒng)的研究與實(shí)現(xiàn)[D]. 北京:北方工業(yè)大學(xué),2015.
[2] 姚雄. 信息孤島問題及PLM解決方案[D].南京:南京航空航天大學(xué),2005.
[3] 黨蟒. 一種露天停車場(chǎng)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].鄭州:鄭州大學(xué),2014.
[4] 李揚(yáng)威,焦朋朋. 城市智能停車管理系統(tǒng)研究[J].交通信息安全,2014,32(4):160-164.
[5] 蔡文晶. 基于ZigBee技術(shù)的無線數(shù)據(jù)采集系統(tǒng)[D].杭州:杭州電子科技大學(xué),2011.
[6] 盧益清, 李忱.O2O商業(yè)模式及發(fā)展前景研究[J].企業(yè)經(jīng)濟(jì),2013(11):98-100.
[7] COLLINA M, CORAZZA G E, VACELLI-CORALLI 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.
[9] TILKOV Stefan. Node.js: using JavaScript to build high-performance network programs[J]. IEEE Internet Computing,2010,14(6):1-15.
[10] A JavaScript library for building user interfaces[EB/OL].(2016-05-07)[2016-06-26]http://facebook.github.io/react/.
[11] 肖文漢,吳孝斌.基于百度地圖API的停車場(chǎng)查詢系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(4):227-230.
[12] 任齊. 基于Android的LBS應(yīng)用研究[D].上海:華東師范大學(xué),2012.
Research of intelligent parking system based on ZigBee
Wang Zhongsheng, Han Kang
(School of Computer Science and Engineering, Xi’an Technology University , Xi’an 710021, China)
With the improvement of economy level and life quality, more and more people own cars, which also brings series of traffic and infrastructure resource allocation problem. In this situation, traditional parking system cannot meet the current parking demands and intelligent parking management system is necessary. This paper focuses on the main functions and solutions of the intelligent parking system. It proposes an intelligent parking system framework, composition and the related technical methods based on ZigBee, mobile Internet, MQTT protocol, Node.js and the O2O technology. The system provides a solution to solve parking difficulties, which could effectively utilize the city parking resources.
intelligent parking system; ZigBee; MQTT; Node.js; O2O
TN602
A
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.
2016-06-26)
王中生(1966-),男,博士,教授,主要研究方向:無線傳感網(wǎng)絡(luò)。
韓康(1991-),通信作者,男,碩士,主要研究方向:無線傳感網(wǎng)絡(luò)。E-mail:744324414@qq.com。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2016年20期