郭宵冉,曾家明,左欣,王橋,楊世龍,李洋,畢亞楠,田江濤,游順才
(貴州師范學(xué)院數(shù)學(xué)與大數(shù)據(jù)學(xué)院,貴州貴陽,550018)
在日常生活中,每個(gè)人很難每天攜帶雨傘,在遇到降雨天氣購(gòu)買雨傘會(huì)造成資源的浪費(fèi),很有可能沒有準(zhǔn)備雨傘被淋雨。共享雨傘有效的減少資源的浪費(fèi),同時(shí)方便人們出行。本文設(shè)計(jì)開發(fā)出一套可智能租借和歸還的共享雨傘系統(tǒng),可投放于人流密集的地區(qū),以便應(yīng)對(duì)突發(fā)性降雨天氣,提高人們的生活質(zhì)量。本發(fā)明主要由后臺(tái)服務(wù)器、后臺(tái)管理系統(tǒng)、微信小程序和傘樁設(shè)備構(gòu)成。后臺(tái)服務(wù)器由Java搭建,管理系統(tǒng)由VUE+ElementUI實(shí)現(xiàn),硬件設(shè)備使用射頻識(shí)別技術(shù)讀取雨傘上電子標(biāo)簽,再利用STM32單片機(jī)控制傘樁的內(nèi)部運(yùn)作,用戶通過微信掃描二維碼進(jìn)入傘約小程序,用個(gè)人微信號(hào)在傘約小程序中完成注冊(cè),客戶端將用戶借還傘信息傳送至后臺(tái)服務(wù)器,服務(wù)器下達(dá)指令到傘樁設(shè)置上的4G模塊,傘樁設(shè)備內(nèi)的單片機(jī)判斷并處理4G模塊接收“借傘”或者“還傘”指令控制電磁鎖打開,并通過4G模塊將雨傘信息反饋至服務(wù)器,微信小程序提示借傘或者還傘成功,用戶便可借出換入雨傘。這種基于無線射頻通訊的共享雨傘裝置不僅為在突發(fā)性降雨天氣沒有攜帶雨傘的人們提供幫助,同時(shí)在雨傘傘面和傘樁上做產(chǎn)品廣告有利于產(chǎn)品的推廣。
圖1 硬件模塊圖
共享雨傘分為傘樁和雨傘兩部分。傘樁內(nèi)有STM32單片機(jī)、電磁鎖模塊、4G模塊以及鎖扣中的RFID模塊。當(dāng)用戶用傘時(shí),控制系統(tǒng)內(nèi)的4G模塊收到服務(wù)器的信息,根據(jù)共享雨傘裝置上每個(gè)鎖扣上不同的的標(biāo)識(shí),STM32單片機(jī)在不同的I/O口輸出不同的信號(hào)來控制相應(yīng)電磁鎖中的電磁繼電器,進(jìn)而控制鎖扣的開關(guān),每一次開鎖STM32單片機(jī)內(nèi)部程序都進(jìn)行一次計(jì)數(shù)并進(jìn)行記錄,用來判斷儲(chǔ)傘箱中是否有傘[1]。當(dāng)用戶支付成功后,電磁鎖自動(dòng)打開,用戶即可拿出雨傘使用,用戶取出雨傘后,RFID閱讀器感應(yīng)到傘柄上的電子標(biāo)簽后,電磁鎖自動(dòng)關(guān)閉。
當(dāng)用戶還傘時(shí),如果STM32單片機(jī)判斷儲(chǔ)傘箱里面有雨傘時(shí),小程序界面提示用戶,該儲(chǔ)傘箱內(nèi)傘已滿,請(qǐng)到?jīng)]有雨傘的傘樁內(nèi)還傘,把雨傘放回儲(chǔ)傘箱后用戶把鎖殼還原到初始位置,這樣便完成了一套完整的借傘和還傘的過程。
本裝置傘樁設(shè)計(jì)簡(jiǎn)單,功能性強(qiáng)。該新型共享雨傘裝置在結(jié)構(gòu)上進(jìn)行了精簡(jiǎn),由儲(chǔ)傘箱,電磁鎖,控制箱組成,其電磁鎖結(jié)構(gòu)簡(jiǎn)單,不易損壞,成本低,故障維修難度低。
傘樁的內(nèi)部結(jié)構(gòu)主要由STM32單片機(jī)傘箱、進(jìn)傘通道、出傘通道、RFID硬件設(shè)施、4G模塊等組成。服務(wù)器作為信號(hào)媒介,系統(tǒng)整體由STM32單片機(jī)控制,雨傘和系統(tǒng)直接的連接通過對(duì)傘樁上的二維碼進(jìn)行掃描及其傘上電子標(biāo)簽和特定的二維碼對(duì)應(yīng)實(shí)現(xiàn)。STM32基于低成本、低功耗、高性能的特定以及內(nèi)置外設(shè)的輸入輸出引腳具有重映功能滿足設(shè)計(jì)需求?;诖?,STM32單片機(jī)來控制整個(gè)傘樁系統(tǒng)的收放機(jī)的運(yùn)行。傘樁內(nèi)放置雨傘,雨傘傘柄貼有對(duì)應(yīng)的電子標(biāo)簽,當(dāng)用戶掃描傘樁外部的二維碼,進(jìn)入微信小程序,服務(wù)器向傘樁內(nèi)的4G模塊發(fā)送信號(hào),傘樁內(nèi)的STM32單片機(jī)接收4G模塊傳來的信號(hào),并控制傘樁內(nèi)的電磁鎖打開,雨傘從儲(chǔ)傘箱內(nèi)滑出,經(jīng)過出傘口的時(shí),傘上的電子標(biāo)簽被出出傘口處的RFID閱讀器識(shí)別,完成系統(tǒng)下達(dá)的指令;還傘時(shí),還傘口處的RFID閱讀器識(shí)別電子標(biāo)簽,自動(dòng)裝置啟動(dòng),雨傘滑入儲(chǔ)傘箱內(nèi)。
RFID是一種先進(jìn)的非接觸式射頻自動(dòng)識(shí)別技術(shù),因無源RFID標(biāo)簽成本低,使用壽命長(zhǎng),速度快,抗干擾能力強(qiáng)?;诖藢o源RFID標(biāo)簽安裝在本發(fā)明的每把雨傘上,即在雨傘傘柄內(nèi)固定一個(gè)微小的電子標(biāo)簽,并且事先寫入將與該標(biāo)簽相匹配的密碼。RFID系統(tǒng)由讀寫器、電子標(biāo)簽和后臺(tái)計(jì)算機(jī)管理系統(tǒng)組成。電子標(biāo)簽和讀寫器組成射頻終端,電子標(biāo)簽儲(chǔ)存識(shí)別雨傘身份和屬性的信息并與雨傘結(jié)合,[3]每把雨傘都配有一個(gè)電子標(biāo)簽,讀寫器通過射頻信號(hào)和雨傘上的電子標(biāo)簽進(jìn)行無線通信并和計(jì)算機(jī)信息管理系統(tǒng)通信,實(shí)現(xiàn)對(duì)雨傘上的電子標(biāo)簽的識(shí)別和內(nèi)存數(shù)據(jù)的讀取操作,進(jìn)而實(shí)現(xiàn)雨傘的借還操作和必要的管理。當(dāng)RFID系統(tǒng)工作時(shí),RFID讀寫器通過無線通訊收發(fā)器發(fā)送一定頻率的射頻信號(hào),電子標(biāo)簽在RFID讀寫器識(shí)別的范圍內(nèi)對(duì)接收到的射頻信號(hào)產(chǎn)生感應(yīng)從而產(chǎn)生能量,這些能量向讀寫器發(fā)送自身所傳達(dá)出來的信息,[4]從而將讀寫到的命令加密后傳送給電子標(biāo)簽,RFID讀寫器識(shí)別到電子標(biāo)簽的信號(hào)指令后解碼,進(jìn)而識(shí)別到電子標(biāo)簽上儲(chǔ)存的唯一識(shí)別雨傘身份的信息后,將信息交給后臺(tái)計(jì)算機(jī)管理系統(tǒng),后臺(tái)計(jì)算機(jī)管理系統(tǒng)根據(jù)電子標(biāo)簽可以識(shí)別唯一身份屬性對(duì)借出的雨傘進(jìn)行跟蹤,計(jì)時(shí)計(jì)費(fèi)等操作。如圖2RFID系統(tǒng)所示。
圖2 RFID 系統(tǒng)
軟件部分使用前端開發(fā)工具HBuilder設(shè)計(jì)了“傘約”共享雨傘APP,使用簡(jiǎn)單,操作方便,服務(wù)器的開發(fā)環(huán)境是Eclipse,開發(fā)語言是Java。整個(gè)系統(tǒng)為B/S架構(gòu),Web服務(wù)器采用A-pache+Tomcat+數(shù)據(jù)庫(kù)MySQL。端與端通信為C/S方式。使用Java語言與js提供異步請(qǐng)求,請(qǐng)求后臺(tái)數(shù)據(jù)接口,[5]解析后返回json數(shù)據(jù),微信掃碼打開“傘約”小程序[3]。系統(tǒng)采用通過RFID無線射頻識(shí)別技術(shù)記錄跟蹤每把雨傘,用戶租借歸還時(shí),會(huì)將識(shí)別出雨傘的唯一ID,通過4g模塊傳輸給物聯(lián)網(wǎng)服務(wù)器,實(shí)現(xiàn)雨傘狀態(tài)的數(shù)據(jù)更新,設(shè)置雨傘租用的定金和租用的價(jià)格。用戶可以通過掃描傘樁上的二維碼借傘,當(dāng)雨傘使用完成并歸還后,用戶可以在微信小程序上查看本次借傘的時(shí)長(zhǎng),花費(fèi)金額,并通過微信或支付寶支付訂單費(fèi)用。如圖3小程序界面所示。
圖3 小程序界面
主程序主要實(shí)現(xiàn)4G模塊的配置,電機(jī)轉(zhuǎn)動(dòng)顯示以及液晶屏顯示等功能。利用A/D轉(zhuǎn)換器將數(shù)字信號(hào)輸入計(jì)算機(jī),通過STM32單片機(jī)實(shí)現(xiàn)借還傘的相關(guān)功能,掃碼成功后,電磁鎖打開,用戶拿出雨傘,小程序界面顯示取傘成功;反之,小程序界面顯示取傘失敗。STM32單片機(jī)控制系統(tǒng)則由Java來進(jìn)行編譯。單片機(jī)控制系統(tǒng)構(gòu)建共享雨傘的監(jiān)控系統(tǒng)與中心服務(wù)器相連,若檢測(cè)到雨傘損壞或者缺失的情況時(shí),及時(shí)有效的將情況反饋至中心服務(wù)器并對(duì)其進(jìn)行檢修和補(bǔ)充。
在微信小程序中掃碼借傘,小程序端向后臺(tái)服務(wù)器發(fā)送借傘請(qǐng)求,服務(wù)器給硬件設(shè)備發(fā)送指令打開電磁鎖,計(jì)時(shí)器開始計(jì)時(shí)并將消息回執(zhí)返回給小程序端,生成訂單,硬件設(shè)備顯示屏顯示借傘成功;若是過程中出現(xiàn)網(wǎng)絡(luò)不通,機(jī)器故障,雨傘不夠等情況則顯示借傘失敗。
微信賬號(hào)一鍵登錄注冊(cè)進(jìn)入程序中,通過授權(quán)獲取用戶手機(jī)號(hào)登錄注冊(cè)并把用戶信息存到后臺(tái)服務(wù)器,之后,用戶通過點(diǎn)擊頭像,授權(quán)獲取用戶頭像昵稱等信息展示到個(gè)人頁面。放傘點(diǎn)包括距離、是否可借還和導(dǎo)航去放傘點(diǎn)(1)調(diào)用騰訊地圖sdk進(jìn)行標(biāo)點(diǎn),距離計(jì)算,顯示在地圖上。(2)進(jìn)入程序獲取用戶,向后臺(tái)發(fā)起請(qǐng)求獲取放傘點(diǎn)展示在地圖上,用戶可以點(diǎn)擊附近的放傘點(diǎn)查看放傘點(diǎn)是否可借、可還,以及到那的距離,然后再次點(diǎn)擊頁面導(dǎo)航去那。押金和充值(1)調(diào)用微信支付接口,服務(wù)器同步更新余額、押金數(shù)值。(2)用戶可在支付租用雨傘的押金后打開傘樁電磁鎖租用雨傘。雨傘借和還通過一個(gè)掃碼按鈕實(shí)現(xiàn),每個(gè)用戶僅能同時(shí)借一把傘,根據(jù)用戶目前狀態(tài)來判斷當(dāng)用戶掃碼的時(shí)候是借傘還是還傘,減少了許多不必要的麻煩。借傘之前先判斷是否繳納押金,沒有則跳轉(zhuǎn)到繳納押金頁面。意見反饋 用戶可通過該功能反應(yīng)系統(tǒng)問題和對(duì)服務(wù)提出改進(jìn)。借傘、還傘
后臺(tái)管理系統(tǒng)前端頁面是vue+elementUI實(shí)現(xiàn)。具體功能模塊如下:
雨傘管理增加刪除雨傘,跟蹤雨傘。雨傘營(yíng)運(yùn)人員在系統(tǒng)的雨傘租用管理界面對(duì)發(fā)起雨傘調(diào)度。
傘樁管理 增加刪除傘樁,設(shè)置傘樁運(yùn)行狀態(tài)。雨傘運(yùn)營(yíng)人員在系統(tǒng)中管理線下采購(gòu)雨傘。權(quán)限分配管理給不同的管理員角色賦予不同的功能。不同管理員之間相互約束。訂單管理 對(duì)用戶下單情況進(jìn)行管理,支付租用費(fèi)用,當(dāng)用戶未按規(guī)定歸還雨傘,可對(duì)用戶進(jìn)行定金扣除。用戶信息管理對(duì)借傘用戶進(jìn)行管理,當(dāng)用戶違規(guī)使用時(shí),可對(duì)用戶進(jìn)行追責(zé)、拉人黑名單。
通過springboot搭建后臺(tái)服務(wù)器,采用mysql數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)嗎,redis做緩存,security實(shí)現(xiàn)權(quán)限管理,mybatisplus框架對(duì)數(shù)據(jù)做持久化。通過mqtt協(xié)議與硬件交互,實(shí)現(xiàn)雨傘的借還。如圖4后臺(tái)服務(wù)器界面所示。
圖4 后臺(tái)服務(wù)器界面
共享雨傘解決了廣大市民在出行時(shí)遇到突發(fā)性降雨天氣而沒有攜帶雨傘造成的困擾。該雨傘實(shí)現(xiàn)輕松掃碼,一鍵借傘,隨借隨還,讓閑置的雨傘在人們需要時(shí)及時(shí)出現(xiàn),發(fā)揮它遮陽擋雨的作用。同時(shí)雨傘裝有電子標(biāo)簽,可以實(shí)時(shí)監(jiān)控雨傘的使用情況,微信小程序的設(shè)計(jì)讓用戶更方便的了解使用該軟件,滿足市民需求,方便市民出行。