陳泓昌,喻家明,李慶霖,黃鎮(zhèn)建
(韓山師范學院物理與電子工程學院,潮州521000)
隨著汽車的普及,很多城市往往會出現(xiàn)“一位難求”的情況,因此非常有必要開發(fā)一款接入互聯(lián)網(wǎng)的小型智能設備,滿足人民群眾出行的停車的需求。
本系統(tǒng)設計的基于加密二維碼的智能停車系統(tǒng),可以實現(xiàn)網(wǎng)上預約停車。用戶在線預約停車后,即可獲可用智能手機獲得加密二維碼,該二維碼具有時效性。在規(guī)定時間內(nèi),用戶憑獲得的加密二維碼至停車場刷碼停車,用戶停車完畢后,刷碼結算。車輛離開后,云端數(shù)據(jù)庫增加一個停車位。一位難求已成為“城市的痛”,系統(tǒng)可應用到大型公共停車場,實現(xiàn)車位的在線智能化管理,用戶完全可“按需”駕車出行。
停車場管理方只需購買本作品設計的智能設備,并在網(wǎng)上注冊綁定即可使停車場處于無人值守的管理狀態(tài)。這既節(jié)省了人力,還可以實時共享停車數(shù)據(jù),從而改善人們的出行體驗。
二維碼(2-Dimensional Bar Code),是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形記錄數(shù)據(jù)符號信息[1]。目前,最流行的莫過于QR Code,QR 表示Quick Response 即快速響應,QR Code 碼具有全方位(360°)識讀特點,QR Code 碼的超高速識讀特性使它能夠廣泛應用于工業(yè)自動化生產(chǎn)線管理等領域,因此QR Coded 在很多領域得到廣泛應用。
目前,國內(nèi)外市場上,也出現(xiàn)了很多二維碼門禁,廣泛應用于酒店房間,住宅等,但并沒有將二維碼技術應用到智能停車系統(tǒng)的門禁系統(tǒng)開發(fā)中,實現(xiàn)預約和結算功能,并且大多數(shù)應用并沒有注意到QR Code 由于其開源特性,容易被篡改、假冒,因此本文對QR 碼進行了加密處理?;诩用芏S碼的智能停車預約系統(tǒng)開發(fā)成功后,將其適當修改,還可應用于電梯門禁、門診預約、車站、地鐵的驗票、大型賽事集會的簽到等領域,應用十分廣泛。該“鑰匙”很容易分發(fā),制作成本也極低廉,如獲得資金支持,可滿足社會公共事業(yè)建設的需要,為智慧城市的建設添磚加瓦。
目前,QR 二維碼已經(jīng)在很多領域得到大量應用。本文將在線生成的二維碼的信息當做“鑰匙”,只有遇到正確的“鑰匙”,智能停車系統(tǒng)的門禁設備才會啟動,允許停車。系統(tǒng)的實施分為線下硬件設備、MQTT 協(xié)議服務器控制腳本和線上網(wǎng)站三部分。
硬件部分使用ESP8266+Arduino+GM65 圍繞MQTT 協(xié)議來開發(fā)。在物聯(lián)網(wǎng)大肆發(fā)展的今天,樂鑫的ESP8266 模塊,能快速實現(xiàn)物聯(lián)網(wǎng)領域的多種實踐,逐漸在嵌入式領域占據(jù)了領先地位[2]。
服務器控制端使用Python 語言,接收設備發(fā)送過來的數(shù)據(jù),解密,與用戶存儲在數(shù)據(jù)庫中的信息做比對,正確才發(fā)送開門信號給設備。
Web 頁面使用Python 的Flask 框架搭建,給注冊用戶提供生成加密二維碼的預約頁面[3]。管理員則可以通過后臺管理頁面操作數(shù)據(jù),實現(xiàn)停車場數(shù)據(jù)的增刪改查,以及對用戶進行管理。
系統(tǒng)的設計及實現(xiàn)包括以下三部分:
(1)線下停車場硬件設備,主要實現(xiàn)用戶二維碼信息的傳輸給服務器,接收服務器回傳結果并做出相應的處理;
(2)線上網(wǎng)站。提供用戶注冊、信息存儲、停車場信息展示、后臺管理等功能;
(3)MQTT 協(xié)議服務器控制腳本,主要接收線下停車場硬件設備發(fā)送過來的信息,并進行比對,將結果回傳給對應的硬件設備[4]。
本作品硬件設備包括兩大部分,一部分屬于通信設備,為主設備;另一部分為控制設備,為從設備。主設備ESP8266 模組通過MQTT 協(xié)議與服務器通信,處理服務器回傳的數(shù)據(jù),控制從設備Arduino UNO[5-6]從而做出相應的動作,其工作流程如圖1 所示。
ESP8266 模塊是樂鑫公司生產(chǎn)的32 位Tensilica處理器。CPU 時鐘速度最高可達160MHz,支持實時操作系統(tǒng)(RTOS)和Wi-Fi 協(xié)議棧,可將高達80%的處理能力留給應用編程和開發(fā)。
GM65 掃描模塊功耗低,工作電流小于150mA,一體化設計,體積??;支持TTL232 和USB(中文免驅)接口;支持所有通用一維條碼及常用二維碼,可直接識別手機屏幕。
圖1 硬件流程圖
Arduino UNO 通過串口接收到ESP8266 發(fā)送過來的命令信息,進而控制舵機開啟閘門,接著,通過超聲波測距模塊判斷車輛是否完全進入,從而使舵機放下閘門,完成車輛進入停車場的程序,硬件部分的電路如圖2 所示。
圖2 硬件電路圖
服務器端開發(fā)語言為Python,程序基于MQTT 通信協(xié)議,將數(shù)據(jù)發(fā)送到云端服務器,且云端也能主動發(fā)消息到設備端。ESP8266 模塊通過串口接收GM65 掃碼模塊傳過來的二維碼信息,并將該加密信息加上駛入/駛出掃描設備自身的加密信息一同傳輸?shù)椒掌?。服務器對信息進行解密,對比數(shù)據(jù)庫已有信息,從而做出判斷,并將結果加密,通過MQTT 協(xié)議發(fā)送給ESP8266。ESP8266 再將信息解密后通過串口控制從設備Arduino UNO 做出相應的動作。
Web 的開發(fā)框架是Flask,后臺的數(shù)據(jù)庫為MySQL,支持手機瀏覽器、傳統(tǒng)PC 兩種訪問方式。后臺的主要數(shù)據(jù)表有7 張,主要用于存儲管理員信息、用戶信息、用戶積分、用戶預訂信息以及用戶停車賬單、硬件設備、停車場信息等。服務器控制腳本一直在后臺運行著檢測預約情況。注冊用戶可看到停車場的情況,隨時隨地可根據(jù)自已的情況進行預約。Web 部分的結構圖如3 和圖4 所示。
圖3 普通用戶模塊功能結構圖
圖4 管理員模塊功能結構圖
系統(tǒng)使用Docker 技術打包本作品的Web 應用以及依賴包到一個輕量級、可移植的容器中,然后部署上線。服務器用的是阿里的云服務器,系統(tǒng)為Ubuntu Server 18.04,這些應用程序分別運行在不同的Docker容器中,相互隔離,使服務盡可能的安全運行。一共開啟三個容器,分別為:Python-Flask+uwsgi+Nginx 網(wǎng)站運行環(huán)境、MySQL 運行環(huán)境、MQTT 服務器運行環(huán)境。
在使用基于加密二維碼的智能停車場前,用戶必須通過網(wǎng)頁端注冊網(wǎng)頁帳號,填寫相應的資料,并且通過驗證為合法用戶之后才能使用本系統(tǒng)進行線下停車,注冊成功后會自動跳轉到用戶主頁(http://49.234.8.226)。主頁的側邊欄為導航欄,中間部分為各停車場信息頁面,分塊顯示,網(wǎng)站主頁界面如圖5所示。
點擊側邊導航欄的用戶→停車,可生成一個有時效性的經(jīng)過加密的二維碼,并將相應信息存儲到數(shù)據(jù)庫,然后用戶將此二維碼于停車場掃碼設備識別,進而上傳到服務器進行對比,從而開啟停車場閘門,實現(xiàn)停車的功能。系統(tǒng)支持手機瀏覽器,用戶獲得的加密二維碼如圖6 所示。
圖5 網(wǎng)站主頁
圖6 用戶獲取二維碼停車界面
這里二維碼的加密算法使用的是愷撒加密方法。設備開機后會主動向服務器發(fā)送一條算子特定的加密信息,然后服務器將算子存儲到數(shù)據(jù)庫中,之后的加密通信都由此算子加密。
服務器端生成的加密二維碼為一段帶get 參數(shù)的URL,其中所帶的get 參數(shù)即為加密后的信息。門禁系統(tǒng)掃描設備接收到信息后只需在尾部拼接上自己的駛入/駛出加密信息,并發(fā)送給服務器即可。服務器再根據(jù)對應設備在數(shù)據(jù)庫找到相應算子來解密信息,并做出處理,其中算子會定時更新。此時,二維碼中加密信息包含如下字段內(nèi)容。
表1
管理員登錄Web 后臺后顯示的主頁儀表盤信息界面如圖7 所示。后臺可以添加設備、添加停車場、刪除設備、刪除停車場、添加管理員、刪除管理員,其中添加新的停車場前需添加新的設備,一個設備只能屬于一個停車場。若能得到資金的支持,將每座城市分散的停車場接入互聯(lián)網(wǎng),實現(xiàn)線上線下的停車數(shù)據(jù)同步,一定能夠為人民群眾出行提供更好的服務。
圖7 主頁儀表盤
目前,常見的停車系統(tǒng)大多還需要人工值守,或者刷卡通過門禁。部分高端設備即使能實現(xiàn)車輛自動識別,但沒辦法實現(xiàn)在線預約,用戶出行前根本不了解停車場車位狀況,“按需”出行沒有辦法實施,在線支付或者無感支付更是無從談起。也就是說,基于“互聯(lián)網(wǎng)+”思維,使用加密二維碼實現(xiàn)在線車位預約,而且還能在線支付結算的智能停車系統(tǒng)目前尚屬空白。此外,大多數(shù)停車場還處于分散經(jīng)營,各自為政狀況,因而,公共部門無從獲取各停車場的停車數(shù)據(jù),并對這些數(shù)據(jù)進行統(tǒng)計分析,為用戶的出行或停車場的經(jīng)營提供建議。本系統(tǒng)如獲得資金的關注和支持,能夠將一座城市的所有停車場接入互聯(lián)網(wǎng),實現(xiàn)停車數(shù)據(jù)的在線共享,用戶將獲得更好的出行體驗。尤其在節(jié)假日或出行高峰,公共管理部門可以對停車需求進行預警或通報,人們可以根據(jù)互聯(lián)網(wǎng)提供的數(shù)據(jù)“按需”出行,從而解決“一位難求”的城市痛點。