郭宵冉,曾家明,左欣,王橋,楊世龍,李洋,畢亞楠,田江濤,游順才
(貴州師范學院數學與大數據學院,貴州貴陽,550018)
在日常生活中,每個人很難每天攜帶雨傘,在遇到降雨天氣購買雨傘會造成資源的浪費,很有可能沒有準備雨傘被淋雨。共享雨傘有效的減少資源的浪費,同時方便人們出行。本文設計開發出一套可智能租借和歸還的共享雨傘系統,可投放于人流密集的地區,以便應對突發性降雨天氣,提高人們的生活質量。本發明主要由后臺服務器、后臺管理系統、微信小程序和傘樁設備構成。后臺服務器由Java搭建,管理系統由VUE+ElementUI實現,硬件設備使用射頻識別技術讀取雨傘上電子標簽,再利用STM32單片機控制傘樁的內部運作,用戶通過微信掃描二維碼進入傘約小程序,用個人微信號在傘約小程序中完成注冊,客戶端將用戶借還傘信息傳送至后臺服務器,服務器下達指令到傘樁設置上的4G模塊,傘樁設備內的單片機判斷并處理4G模塊接收“借傘”或者“還傘”指令控制電磁鎖打開,并通過4G模塊將雨傘信息反饋至服務器,微信小程序提示借傘或者還傘成功,用戶便可借出換入雨傘。這種基于無線射頻通訊的共享雨傘裝置不僅為在突發性降雨天氣沒有攜帶雨傘的人們提供幫助,同時在雨傘傘面和傘樁上做產品廣告有利于產品的推廣。

圖1 硬件模塊圖
共享雨傘分為傘樁和雨傘兩部分。傘樁內有STM32單片機、電磁鎖模塊、4G模塊以及鎖扣中的RFID模塊。當用戶用傘時,控制系統內的4G模塊收到服務器的信息,根據共享雨傘裝置上每個鎖扣上不同的的標識,STM32單片機在不同的I/O口輸出不同的信號來控制相應電磁鎖中的電磁繼電器,進而控制鎖扣的開關,每一次開鎖STM32單片機內部程序都進行一次計數并進行記錄,用來判斷儲傘箱中是否有傘[1]。當用戶支付成功后,電磁鎖自動打開,用戶即可拿出雨傘使用,用戶取出雨傘后,RFID閱讀器感應到傘柄上的電子標簽后,電磁鎖自動關閉。
當用戶還傘時,如果STM32單片機判斷儲傘箱里面有雨傘時,小程序界面提示用戶,該儲傘箱內傘已滿,請到沒有雨傘的傘樁內還傘,把雨傘放回儲傘箱后用戶把鎖殼還原到初始位置,這樣便完成了一套完整的借傘和還傘的過程。
本裝置傘樁設計簡單,功能性強。該新型共享雨傘裝置在結構上進行了精簡,由儲傘箱,電磁鎖,控制箱組成,其電磁鎖結構簡單,不易損壞,成本低,故障維修難度低。
傘樁的內部結構主要由STM32單片機傘箱、進傘通道、出傘通道、RFID硬件設施、4G模塊等組成。服務器作為信號媒介,系統整體由STM32單片機控制,雨傘和系統直接的連接通過對傘樁上的二維碼進行掃描及其傘上電子標簽和特定的二維碼對應實現。STM32基于低成本、低功耗、高性能的特定以及內置外設的輸入輸出引腳具有重映功能滿足設計需求。基于此,STM32單片機來控制整個傘樁系統的收放機的運行。傘樁內放置雨傘,雨傘傘柄貼有對應的電子標簽,當用戶掃描傘樁外部的二維碼,進入微信小程序,服務器向傘樁內的4G模塊發送信號,傘樁內的STM32單片機接收4G模塊傳來的信號,并控制傘樁內的電磁鎖打開,雨傘從儲傘箱內滑出,經過出傘口的時,傘上的電子標簽被出出傘口處的RFID閱讀器識別,完成系統下達的指令;還傘時,還傘口處的RFID閱讀器識別電子標簽,自動裝置啟動,雨傘滑入儲傘箱內。
RFID是一種先進的非接觸式射頻自動識別技術,因無源RFID標簽成本低,使用壽命長,速度快,抗干擾能力強。基于此將無源RFID標簽安裝在本發明的每把雨傘上,即在雨傘傘柄內固定一個微小的電子標簽,并且事先寫入將與該標簽相匹配的密碼。RFID系統由讀寫器、電子標簽和后臺計算機管理系統組成。電子標簽和讀寫器組成射頻終端,電子標簽儲存識別雨傘身份和屬性的信息并與雨傘結合,[3]每把雨傘都配有一個電子標簽,讀寫器通過射頻信號和雨傘上的電子標簽進行無線通信并和計算機信息管理系統通信,實現對雨傘上的電子標簽的識別和內存數據的讀取操作,進而實現雨傘的借還操作和必要的管理。當RFID系統工作時,RFID讀寫器通過無線通訊收發器發送一定頻率的射頻信號,電子標簽在RFID讀寫器識別的范圍內對接收到的射頻信號產生感應從而產生能量,這些能量向讀寫器發送自身所傳達出來的信息,[4]從而將讀寫到的命令加密后傳送給電子標簽,RFID讀寫器識別到電子標簽的信號指令后解碼,進而識別到電子標簽上儲存的唯一識別雨傘身份的信息后,將信息交給后臺計算機管理系統,后臺計算機管理系統根據電子標簽可以識別唯一身份屬性對借出的雨傘進行跟蹤,計時計費等操作。如圖2RFID系統所示。

圖2 RFID 系統
軟件部分使用前端開發工具HBuilder設計了“傘約”共享雨傘APP,使用簡單,操作方便,服務器的開發環境是Eclipse,開發語言是Java。整個系統為B/S架構,Web服務器采用A-pache+Tomcat+數據庫MySQL。端與端通信為C/S方式。使用Java語言與js提供異步請求,請求后臺數據接口,[5]解析后返回json數據,微信掃碼打開“傘約”小程序[3]。系統采用通過RFID無線射頻識別技術記錄跟蹤每把雨傘,用戶租借歸還時,會將識別出雨傘的唯一ID,通過4g模塊傳輸給物聯網服務器,實現雨傘狀態的數據更新,設置雨傘租用的定金和租用的價格。用戶可以通過掃描傘樁上的二維碼借傘,當雨傘使用完成并歸還后,用戶可以在微信小程序上查看本次借傘的時長,花費金額,并通過微信或支付寶支付訂單費用。如圖3小程序界面所示。

圖3 小程序界面
主程序主要實現4G模塊的配置,電機轉動顯示以及液晶屏顯示等功能。利用A/D轉換器將數字信號輸入計算機,通過STM32單片機實現借還傘的相關功能,掃碼成功后,電磁鎖打開,用戶拿出雨傘,小程序界面顯示取傘成功;反之,小程序界面顯示取傘失敗。STM32單片機控制系統則由Java來進行編譯。單片機控制系統構建共享雨傘的監控系統與中心服務器相連,若檢測到雨傘損壞或者缺失的情況時,及時有效的將情況反饋至中心服務器并對其進行檢修和補充。
在微信小程序中掃碼借傘,小程序端向后臺服務器發送借傘請求,服務器給硬件設備發送指令打開電磁鎖,計時器開始計時并將消息回執返回給小程序端,生成訂單,硬件設備顯示屏顯示借傘成功;若是過程中出現網絡不通,機器故障,雨傘不夠等情況則顯示借傘失敗。

微信賬號一鍵登錄注冊進入程序中,通過授權獲取用戶手機號登錄注冊并把用戶信息存到后臺服務器,之后,用戶通過點擊頭像,授權獲取用戶頭像昵稱等信息展示到個人頁面。放傘點包括距離、是否可借還和導航去放傘點(1)調用騰訊地圖sdk進行標點,距離計算,顯示在地圖上。(2)進入程序獲取用戶,向后臺發起請求獲取放傘點展示在地圖上,用戶可以點擊附近的放傘點查看放傘點是否可借、可還,以及到那的距離,然后再次點擊頁面導航去那。押金和充值(1)調用微信支付接口,服務器同步更新余額、押金數值。(2)用戶可在支付租用雨傘的押金后打開傘樁電磁鎖租用雨傘。雨傘借和還通過一個掃碼按鈕實現,每個用戶僅能同時借一把傘,根據用戶目前狀態來判斷當用戶掃碼的時候是借傘還是還傘,減少了許多不必要的麻煩。借傘之前先判斷是否繳納押金,沒有則跳轉到繳納押金頁面。意見反饋 用戶可通過該功能反應系統問題和對服務提出改進。借傘、還傘
后臺管理系統前端頁面是vue+elementUI實現。具體功能模塊如下:

雨傘管理增加刪除雨傘,跟蹤雨傘。雨傘營運人員在系統的雨傘租用管理界面對發起雨傘調度。

傘樁管理 增加刪除傘樁,設置傘樁運行狀態。雨傘運營人員在系統中管理線下采購雨傘。權限分配管理給不同的管理員角色賦予不同的功能。不同管理員之間相互約束。訂單管理 對用戶下單情況進行管理,支付租用費用,當用戶未按規定歸還雨傘,可對用戶進行定金扣除。用戶信息管理對借傘用戶進行管理,當用戶違規使用時,可對用戶進行追責、拉人黑名單。
通過springboot搭建后臺服務器,采用mysql數據庫存儲數據嗎,redis做緩存,security實現權限管理,mybatisplus框架對數據做持久化。通過mqtt協議與硬件交互,實現雨傘的借還。如圖4后臺服務器界面所示。

圖4 后臺服務器界面
共享雨傘解決了廣大市民在出行時遇到突發性降雨天氣而沒有攜帶雨傘造成的困擾。該雨傘實現輕松掃碼,一鍵借傘,隨借隨還,讓閑置的雨傘在人們需要時及時出現,發揮它遮陽擋雨的作用。同時雨傘裝有電子標簽,可以實時監控雨傘的使用情況,微信小程序的設計讓用戶更方便的了解使用該軟件,滿足市民需求,方便市民出行。