(1.四川文理學院 智能制造學院,達州 635000;2.四川文理學院 達州智能制造產業技術研究院)
隨著城市經濟的迅速發展,人民的生活水平得到了不斷提高,私家車也越來越多,對停車位的需求也越來越大。但是很多城市的中心城區修建較早,規劃不是很完善,加之停車場的擴建較為緩慢,導致中心城區停車難的問題日益嚴重。
為解決停車難的問題,有很多學者對此做了大量的研究工作,從利用RFID[1-3]、CDMA[4]、ZigBee[5-6]并結合計算機軟件技術來提高停車位的管理水平,到利用大數據[7]、云平臺[8]技術來提高停車位管理的智能化程度;從預訂停車位[9]方便車主停車,到共享停車位[10-12]都有效提高了停車位的利用率。
與此同時,管理系統的個性化和便捷性也得到了改善,從基于云平臺的停車位管理系統[8],到基于手機的APP停車位管理系統[13],這些都極大地提高了用戶的體驗度。但是,這些系統使用時需要在手機上安裝一個APP軟件,這不僅要消耗有限的手機資源,同時,每次操作都需要打開APP客戶端,操作起來多有不便。為此,我們設計了一款基于微信平臺的停車位管理系統,因為微信是目前比較流行的社交軟件,用戶在聊天的同時,就可以進行停車位共享信息的發布、預訂及繳費等操作,從而在一定程度上方便了用戶的操作,也提高了軟件的個性化水平。
下面從系統方案的總體方案設計、關鍵硬件模塊設計、軟件系統設計三個方面來闡述基于微信平臺的停車位管理系統的設計。
本文設計的基于微信平臺的停車位管理系統主要包括:車位探測器、嵌入式網關、服務器系統、微信公眾平臺四個部分。車位探測器主要負責探測車位是否空閑,并根據車位空閑與否自動控制車位鎖的開關狀態,然后將信息經由ZigBee通信模塊轉發給嵌入式網關;嵌入式網關主要負責接收ZigBee通信模塊發送來的信息,并將其轉發給服務器;服務器系統主要負責收費管理、停車位信息管理、出入庫控制、監控管理和安全運行管理;微信公眾平臺主要負責微信用戶注冊、車位出租信息發布、車位預訂及繳費等。系統整體方案圖如圖1所示。下面我們從關鍵硬件模塊和軟件系統兩個方面對基于微信公眾平臺的停車位管理系統的設計過程加以闡述。

圖1 系統總體方案圖
綜合考慮停車位管理系統的建設成本、用戶使用的便捷性等方面的因素后,設計的停車位管理系統中關鍵硬件模塊由車位探測器、嵌入式網關兩部分組成。
車位探測器主要由無線通信模塊、超聲波數據采集模塊和電源模塊組成。無線通信模塊主要負責數據的無線傳輸;超聲波數據采集模塊主要負責采集車位是否空閑的信息;電源模塊主要負責給設備供電。下面主要介紹無線通信模塊和超聲波數據采集模塊。
2.1.1 無線通信模塊
現有可用于無線通信的模塊有很多種,如WiFi、藍牙、GSM、ZigBee等無線通信技術。由于ZigBee模塊具有自組織網絡的特性,網絡中一個模塊出問題后,其他模塊可以自動更新網絡拓撲結構,繼續保持網絡的連通性,這樣既增強了網絡的穩定性,成本又不高,所以選擇ZigBee模塊作為無線通信模塊。
考慮到停車位上的每一個ZigBee模塊除了要進行采集信息之外,還要兼作路由器的功能進行數據轉發,且模塊與模塊之間的通信距離不能太短,所以我們選擇CC2520這款射頻收發器,該芯片可以在2.4 GHz頻段、 -40~125 ℃下正常工作,并且提供了廣泛的硬件處理技術,如可以支持幀處理、數據緩沖、突發傳輸、數據加密、數據驗證、信道評估、鏈路質量指示和幀定時等功能,這可以有效降低主控制器的負荷。該通信模塊的電路圖如圖2所示。

圖2 無線通信模塊電路圖
2.1.2 超聲波數據采集模塊
車位探測器的一個主要功能是探測車位是否空閑,而功能的實現主要依靠數據采集模塊。目前可以采集車位信息的模塊較多,如紅外線探測模塊、超聲波測距模塊等。考慮到超聲波傳感器在短距離測距時,受環境影響比較小,選擇了HC-SR05超聲波測距模塊作為停車位的數據采集模塊。
每一個超聲波模塊對應著一個停車位。該模塊由CC2530控制,安裝在停車位底部中間位置,當測距大于1 m的時候,標記為空閑車位,當測距小于1 m的時候,標記車位被占用,這樣能夠記錄停車場內車位實時變化情況。
HY-SRF05超聲波數據采集模塊的電路圖如圖3所示。

圖3 超聲波數據采集模塊電路圖
CC2530控制超聲波模塊采集數據的關鍵代碼代碼如下:
#ifdef WXL_COORD
if(RfRx.RXDATA.DataBuf[0] ==Y&& RfRx.RXDATA.DataBuf[1] ==D&& RfRx.RXDATA.DataBuf[2] ==W){
//接收到預定車位的信號
SendData(0xffff, RfTx.TxBuf, 32);
}
if(RfRx.RXDATA.DataBuf[0] ==M&& RfRx.RXDATA.DataBuf[1] ==D&& RfRx.RXDATA.DataBuf[2] ==W){
//未接收到預定車位的信號
SendData(0xffff, RfTx.TxBuf, 32);
}
#endif
嵌入式網關的主要功能是處理不同網絡之間信息傳輸的問題。由于車位探測器到嵌入式網關是ZigBee通信,而嵌入式網關到服務器采用的是TCP/IP通信,所以嵌入式網關不僅要具備較強的信息處理能力,而且還要能實現將數據從ZigBee協議到TCP/IP協議的數據格式轉換。所以,處理器芯片的好壞對嵌入式網關的性能起著決定性的作用。
為此,對多款芯片從成本、處理能力、通信能力和擴展能力等方面進行比較分析,最后選擇STM32F103芯片作為嵌入式網關的主處理器。由于該芯片的數據處理能力較強,通信擴展接口豐富,且成本也比較適中。
根據嵌入式網關工作的需求,將STM32F102的USART1接口作為本體的數據傳輸接口,與CC2530模塊的數據傳輸接口相連接;將USART2連接到WiFi模塊的數據傳輸接口。這樣既可以實現通信協議的轉換,又降低了編程的復雜度。
嵌入式網關通過數據處理模塊控制WiFi與ZigBee的通信,并處理在WiFi和ZigBee之間傳輸的數字信號,部分關鍵代碼如下:
if (USART_RX_STA2 & 0x8000){//串口2接收到的信號
......
if (USART_RX_BUF2[0] == 21){
if (USART_RX_BUF2[4] == 10){ //查詢
//查詢,車位為預定情況
for (t = 0; t< 42; t++){
USART_SendData(USART2, full[t]);
//向串口2 發送沒車位
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);
}
}
else if (USART_RX_BUF[0] ==M){
//查詢,車位為空閑時
for (t = 0; t < 42; t++){
USART_SendData(USART2, empty[t]);
//向串口2 發送有車位
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);
}
}
}
elseif (USART_RX_BUF2[4] == 11){
//串口2(wifi)接收到的信號是請求預定
......
for (t = 0; t < 42; t++){
USART_SendData(USART2, mode[t]);
//返回請求預定命令——請求成功
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);
}
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
for (t = 0; t < 32; t++){
USART_SendData(USART1, send[t]);
//向串口1發送數據
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
//等待發送結束
}
}
}
基于微信公眾平臺的停車位管理系統主要包括微信公眾平臺前端系統和后臺服務器管理系統兩個部分。
微信公眾平臺前端系統主要通過公眾號消息會話和公眾號內網頁來為用戶提供注冊、車位租賃、車位預訂、繳費等功能的服務。本文根據微信公眾號處理停車位租賃業務的實際需求,將系統的角色分為三種:系統管理員、車位出租方、車位承租方。根據角色不同,系統的賬號分為管理員賬號和普通賬號,系統管理員是管理員賬號,車位出租方和車位承租方是普通賬號。每個微信帳號只能注冊一個普通賬號,每個普通賬號在系統中既可以是車位出租方的角色,也可以是車位承租方的角色,賬號的角色會根據用戶的操作自動轉換,但每種角色只能在這種角色的權限范圍內使用停車位系統提供的功能。用戶使用系統租賃車位的工作流程如圖4所示。

圖4 工作流程
綜合考慮目前流行的前端框架技術的優缺點,結合系統的實際需求,本系統選擇React+Bootstrap的框架設計技術。這不僅因為 React 的設計思想極其獨特、性能出眾、代碼邏輯卻非常簡單,而且Bootstrap的css代碼模塊化、有較好層次感,便于理解與把握。另外,考慮到微信的js、css與許多前端庫的兼容性問題,所以在微信語音、圖片、拍照等部分功能使用了微信的JS SDK,因為它不僅可以兼容非微信瀏覽器,也可以兼容低版本微信系統。
后臺服務器管理系統軟件作為停車位管理系統的核心,主要負責收費管理、停車管理、數據庫管理和后臺管理,因此,整個系統包括支付服務平臺、停車位管理軟件、數據庫和微信通信小程序4個部分,其結構如圖5所示。

圖5 服務器軟件結構
① 支付服務平臺負責系統收費業務的管理,連接第三方支付服務器,生成訂單并向用戶顯示二維碼;用戶可以掃描二維碼完成訂單支付。
② 數據庫負責保存支付服務和停車服務所產生的數據信息。
③ 微信通信小程序負責微信服務器與停車位管理服務器之間的數據傳輸。
④ 停車位管理軟件連接智能車位鎖、支付服務網站和數據庫,并負責處理停車服務的相關業務,如負責收費管理、車位管理、出入庫控制、監控管理和安全運行管理等業務。系統工作流程如圖6所示。
連接已設計完成的硬件與軟件模塊,搭建完整的系統平臺,形成系統雛形,以便于下一步系統的測試。系統測試流程如下:
① 硬件模塊測試。首先測試各硬件模塊加電后的運行情況,然后將各硬件模塊按照系統的拓撲結構進行連接測試。
② 服務器系統測試。對停車位管理系統軟件進行測試,包括管理軟件對數據庫的通信測試、管理軟件與網關和智能車位鎖的連通與控制測試、支付平臺的繳費測試等。
③ 微信公眾賬號的功能測試。主要包括微信公眾賬號消息會話功能測試、公眾號內網頁訪問功能測試、微信公眾號與服務器通信測試、微信支付功能測試、微信發布、預定車位信息功能測試等。部分測試界面展示如圖7所示。

圖6 停車場管理系統工作流程圖
圖7(a)是用戶關注微信公眾號后的主界面,車位出租方可以點擊出租車位按鈕,進行車位出租的相關設置并發布出租信息,操作界面如圖7(b)和圖7(c)所示;車位承租方可以點擊租用車位按鈕,查詢空閑車位或預訂停車位,操作界面如圖7(d)所示。

圖7 功能展示圖
經過以上流程的測試,系統中存在的問題基本得到解決,預期的各項功能基本得以實現;軟件的便捷性得以提高,用戶可以邊聊天邊發布車位租賃信息;個性化水平也得到極大改善,用戶可以根據自己的需要來設置租賃時間。
本文圍繞城市中心城區停車難的問題,通過對當前私有停車位利用率不高的現狀及現有方案的分析,結合現有的技術條件,提出一種基于微信公眾平臺的停車位管理系統,以此來提高停車位的管理水平,方便私有停車位的租賃,極大地提高了有限停車位資源的利用效率。

[1] 王子銘.RFID智能停車場管理系統的研究與設計[D].北京:北京郵電大學,2010.
[2] 郭穩濤.基于RFID的智能停車場管理系統的研究與設計[D].長沙:湖南大學,2010.
[3] 郭穩濤,何怡剛.基于RFID的智能停車場管理系統的研究與設計[J].自動化技術與應用,2010,29(6):60-64.
[4] 劉雨洲.基于CDMA的智能停車場控制系統研究[D].鄭州:鄭州大學,2011.
[5] 彭吉崇.基于ZigBee技術停車場車位的組網與通信設計[D].哈爾濱:哈爾濱理工大學,2012.
[6] 毛泉涌.基于無線傳感器網絡的停車位控制器研究與設計[D].杭州:浙江工業大學,2012.
[7] 駱超.大數據時代下的停車場系統發展[J].中國公共安全,2014(24):88-90.
[8] 陳新海,劉麗.基于云平臺的停車管理系統設計[J].科技創新與應用,2016(1):67-68.
[9] 古輝,顧杰杰.一種預約式智能停車場及其LEACH路由算法改進[J].浙江工業大學學報,2016,44(2):134-139.
[10] 張真,王蒙蒙.基于共享車位的RFID智能停車管理系統的設計[J].信息通信,2017(10):70-72.
[11] 鄭競恒.基于停車共享的城市中心居住區停車行為特性及泊位調控優化方法[D].南京:東南大學,2017.
[12] 張瑞增.基于智能車位鎖的共享停車位管理系統研究與設計[D].濟南:山東大學,2017.
[13] 郭禹,鄒常豐,丁柏群,等.基于手機APP的智能停車場系統研究[J].黑龍江科技信息,2017(14):40-41.