梁栩才,王芊丁,覃纖纖,農春玲,楊子靖,李家海
(廣西民族師范學院 數理與電子信息工程學院系,廣西崇左,532200)
隨著社會不斷地發展,生活水平質量也隨之提高,私家車也越來越多。傳統的停車場管理系統只解決了出入口控制的問題,這導致停車位的利用率比較低,造成了人們停車難的問題。為了解決停車難這個問題,智慧停車引導系統出現了。本文主要采用了物聯網、傳感器和嵌入式等技術設計一款智慧車場引導系統,用戶可通過微信小程序提前查找停車位,在用戶選好停車位后可直接進行導航前往停車位停車。該智慧車場停車引導系統可以減少停車場的人工管理成本;實時更新停車位信息,使停車位能夠更高效地被使用起來;讓用戶在微信小程序上提前選車位,讓用戶更有方向性,大大節省了用戶的選車位時間。該系統適用于各大型商業區、居民區、辦公區等停車場,停車更有目的性,有效改善停車服務困難的難題。
LoRa是作為一種擴頻技術的遠距離無線傳輸技術,因其傳輸距離遠、功耗低、零資費的優點,近幾年在物聯網行業領域得到了廣泛應用[5]。
LORA的智能停車引導系統主要由下位機、上位機、服務端和協調器四大部分構成。上位機為手機小程序終端,小程序終可根據收到的車位數據和決策程序實施相應措施;協調器根據既定網絡通信協議,負責與各LORA節點模塊協調自組建局部無線傳感網絡,管理和存儲各網絡節點上傳的相關信息,并提供各節點之間的路由信息,把數據傳給服務器,同時服務器處理數據并將產生的控制信息下傳到下位機,實現對受控現場設備的控制;下位機為車位空閑識別系統組成,包括測距模塊,測距模塊固定在車位附近,采集車位上的車輛數據。智能停車引導系統功能框圖如圖1所示。

圖1 智能停車引導系統功能框圖
該頁面中有登錄,注冊的選項。如用戶已注冊過,則直接輸入賬號(電話號碼或者郵箱)進行登錄。若未注冊,則需要進行注冊,在注冊時,如果用戶的操作不當或者注冊成功,都會有彈窗提醒用戶。
該頁面中顯示著用戶的基本信息,如有用戶想修改用戶名,可直接選擇編輯進行修改。用戶如果有退出登錄的需要,在該頁面即可實現。
在選擇停車位之前,用戶要先添加車牌號。該頁面也為新能源汽車用戶設計了新能源車牌號的添加。用戶可根據自己的需求添加多個車牌號。在用戶停車后,在相對應的車牌號會顯示已停的狀態。如用戶想離開停車位,可直接點擊離開車位。停車位的狀態信息會實時更新。
用戶選擇自己想要去的停車場,隨后就是選擇停車位。在選擇停車位的頁面,有提醒用戶選擇即停車牌號的文字,如用戶添加有多個車牌號,用戶可根據提示選擇車牌號。用戶預約好停車位后,可直接進行導航前往停車場停車。
服務器將使用JAVA語言編寫,編程工具為IntelliJ IDEA ,使用MyBatis、Spring等主流框架搭建,將具備數據持久化、數據分析、一定的并發性等能力,可以實現實時的數據處理返回功能。數據導通圖如圖2所示。

圖2 數據導通圖
服務器基于阿里云服務搭建,具有公網IP。項目主要采用Springboot、Lobok、Mybatis、Swagger等技術框架,接口采用restful風格,保證安全的前提下優化連接。在接口中利用相對應的方法實現相對應的功能。如在usercontroller中,POST方法中的insertUsers是用于添加用戶;GET方法中的selectFreeSpace用于查詢某區域所有的空車位等。user接口中方法展示頁面如圖3所示。

圖3 user接口中方法展示頁面
數據庫方面是基于騰訊云TDSQL的MySQL數據庫,充分發揮關系型數據庫的大容量存儲優勢。一共設計5張表,基本遵守數據庫設計三范式,中間表用來連接用戶表、區域表和車位表,日志表作為業務以外的表用來存儲用戶操作數據,作為只讀記錄供用戶查看。用戶和車牌號是n對n的關系,即一個賬號可以擁有多輛車,一輛車也可以有多個用戶使用,這是充分考慮到親人朋友之間可能會借對方車子開的現實狀況決定的;區域表與車位表是1對n的關系,一個區域里可以有多個車位,但是一個車位僅屬于一個區域。數據庫表如圖4所示。

圖4 數據庫表
測距系統主要由Arduino、距離感應模塊、電源模塊、LoRa模塊組成,距離感應器采集到數據通過串口傳輸經過Arduino到LoRa模塊,LoRa模塊再將數據通過無線傳輸到LoRa網關,實現聯網。測距系統設計框圖如圖5所示。

圖5 測距系統設計框圖
測距系統的電路圖設計如圖6所示。

圖6 測距系統電路圖設計
對初代小程序進行第一輪測試,發現了以下幾點錯誤:(1)車牌信息顯示不正確,未考慮到用戶與車牌號之間的關系是一對多的關系,而不是一對一的關系,導致用戶無論綁定了多少個車牌號信息都只能顯示最初綁定的車牌號信息。(2)停車場的車位信息顯示有誤,未能正確顯示車位是否為空的問題。對以上問題做出相應的整改,查找相應的資料和信息發現可以通過小程序中的條件渲染和列表渲染的知識點來解決以上功能不足的問題。在完善以上功能的同時在個人中心頁面添加了修改用戶信息的功能,以及考慮到程序中只能停車而不能離開車位所以在車牌號信息頁面添加了離開車位的功能,只需點擊離開車位按鈕剛點擊停車的車位就會為空。進一步考慮到用戶可能出行的車輛不同、出行車牌號的不同,在選位停車頁面添加了車牌號選擇器的功能,原先的程序則是自動獲取用戶初次綁定的車牌號進行選位停車服務。
對進一步完善的程序進行測試,發現了以下幾點問題:(1)注冊頁面的初次輸入的密碼與檢驗密碼不一致時也能成功注冊,經檢查發現程序中并無初次輸入密碼與檢驗密碼判斷是否一致的條件判斷邏輯。(2)在車位顯示頁面中的剩余車位顯示有誤并且其中的車牌號選擇器顯示了車牌號信息卻不能選擇車位,雖然頁面上顯示了車牌號實際上后臺并沒有拿到車牌號的信息,經調試發現其問題出在了車牌號選擇器上。車牌號選擇器綁定了點擊事件,需點擊車牌號選擇器才能觸發點擊事件從而拿到車牌號的車牌信息。
對程序進行第三輪測試,尋找新用戶體驗停車小程序,發現以下不足的地方:(1)選位停車頁面中的車牌號選擇器不明顯,導致新用戶不知道頁面中有車牌號選擇的功能,對其功能進行樣式上的調整,使其功能部分更加亮眼明顯。(2)用戶發現同一車牌號竟然能進行多次選位停車服務,相當于一輛車占了好幾個停車位,理論上來說應該是一車一位。經調試發現是因為停車選位頁面中的部分數據沒有實時更新的原因。在用戶選擇即停的車位停車成功后彈出提示窗口,而用戶點擊取消鍵則重新加載部分數據并獲取新的數據從而時間數據的實時更新,點擊確認則跳轉到車場導航功能。目前已改善的最終版本還需進一步頁面美化。部分微信小程序頁面如圖7所示。

圖7 停車位預約頁面
本文設計的基于LoRa的智慧車場停車引導系統所采用的技術有微信小程序開發技術、傳感器技術和嵌入式技術等。該智慧車場停車引導系統由四個大模塊設計而成,分別是微信小程序模塊、服務器模塊、數據庫模塊和硬件模塊。智慧車場停車引導系統的設計主要用于減少車主尋找車位的時間,還有車位狀態識別的功能。用戶可通過小程序查找車位,小程序根據收到的車位數據和決策程序實施相應措施,實現停車智慧化、管理可視化和運營高效化,能夠為車主提供車位查詢、車位導航等價值體驗,從而解決了從尋找車位到安穩停車的問題,同時也實現了停車場的智能化,大大減輕了管理負擔。