李泳君,楊懷港,鄭浩鑫,陶 銘
(東莞理工學(xué)院 計算機科學(xué)與技術(shù)學(xué)院,廣東 東莞 523808)
體育館建設(shè)是體育運動設(shè)施建設(shè)中的重要一環(huán),同時也體現(xiàn)了城市居民的生活質(zhì)量水平。隨著生活水平的日益提高,人們對體育館的需求越來越大,體育館的數(shù)量也在不斷增加,但存在管理體系復(fù)雜等問題,導(dǎo)致體育館場地不能夠高效利用。因此,設(shè)計并開發(fā)了一種高效、智能的基于物聯(lián)網(wǎng)技術(shù)的體育館管理系統(tǒng),以提高體育館場地的利用率和管理水平。
本系統(tǒng)的設(shè)計主要包括5部分功能:
(1)硬件部分采用STM32和ESP8266相結(jié)合的設(shè)計方案,通過MQTT通信協(xié)議對體育館場地設(shè)備進行控制;
(2)服務(wù)器端主要對系統(tǒng)運行過程中產(chǎn)生的數(shù)據(jù)進行存取;
(3)基于Bootstrap框架的系統(tǒng)管理員后臺主要實現(xiàn)體育館管理員、用戶信息和體育館場地信息的管理,以及體育館設(shè)備管理、訂單查看以及消息推送等功能;
(4)基于Android的體育館用戶APP客戶端主要實現(xiàn)用戶獲取體育館信息以及對體育館場地進行預(yù)約。
本系統(tǒng)后端采用的框架主要由SSM架構(gòu)與三層架構(gòu)組成。SSM架構(gòu)是指Spring框架、SpringMVC框架和MyBatis框架。三層架構(gòu)是指將系統(tǒng)項目按照職責(zé)不同劃分為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和交互層,其中界面層用到了SpringMVC框架,數(shù)據(jù)訪問層使用MyBatis框架,而Spring框架則用于全部層次之中。SpringMVC框架使用MVC軟件設(shè)計模式,其中M代表模型(Model)、V代表視圖(View)、C代表控制器(Controller)。前端使用Web網(wǎng)頁、安卓APP和PyQt5桌面應(yīng)用。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
體育館管理員模塊的功能分為四大類:體育館訂單管理功能、體育館場地管理功能、體育館推送管理功能和體育館工作日設(shè)置功能。主要功能為體育館訂單管理功能,如圖2所示,包括:添加體育館訂單、查看體育館訂單信息、取消體育館訂單。
圖2 體育館訂單管理功能時序圖
體育館用戶模塊的功能有三大類:用戶賬戶管理功能、體育館場地預(yù)約功能和控制已下單的場地功能。主要功能為體育館場地預(yù)約功能,如圖3所示,包括:用戶通過該功能實現(xiàn)對體育館場地的預(yù)約。
圖3 體育館場地預(yù)約功能時序圖
本文設(shè)計了一種場地分配算法來更加智能地滿足體育館用戶的場地預(yù)約請求,具體算法描述如下:
(1)預(yù)約場地訂單的開始時間是當(dāng)天:在這種情況下,場地分配算法會先查找符合預(yù)約類型的場地,然后再查找這些場地當(dāng)天的場地訂單,接著對每個場地的所有訂單按照開始時間從小到大進行遍歷,查看有無新訂單插入的位置,如果有,則預(yù)約成功,否則預(yù)約失敗。
(2)預(yù)約場地訂單的開始時間不是當(dāng)天:在這種情況下,場地分配算法會先查找符合預(yù)約類型的場地,然后再查找與預(yù)約訂單同一天開始的同類型訂單,接著給每個符合預(yù)約類型的場地設(shè)置最后結(jié)束時間,并且把這些場地按照最后結(jié)束時間從小到大排序,形成有序的場地集合。把與預(yù)約訂單同一天開始的同類型訂單合成訂單集合,并按照開始時間從小到大排序。最后遍歷訂單集合,對于每一個遍歷到的訂單,取場地集合中的第一個場地,如果第一個場地的開始時間小于訂單的開始時間,則說明該訂單無法分配場地,預(yù)約失敗。如果第一個場地的開始時間大于訂單的開始時間,則該訂單可以被分配場地,然后更新該訂單的場地信息和該場地的最后結(jié)束時間,并對場地集合重新排序,接著遍歷下一個訂單。如果訂單集合都能分配場地,則預(yù)約成功。
據(jù)實體對象的屬性設(shè)計本系統(tǒng)各實體對象之間的關(guān)系模型。系統(tǒng)關(guān)系模型如下(單下劃線用來表示“主鍵”,雙下劃線用來表示“外鍵”):
(1)系統(tǒng)管理員(,名稱,賬號,密碼);
(2)體育館管理員(,郵箱,密碼,手機號碼,體育館名稱,體育館狀態(tài),體育館地址,體育館工作日,體育館開始時間,體育館關(guān)閉時間,注冊時間,羽毛球場價格,籃球場價格);
(3)體育館用戶(,郵箱,名稱,手機號碼,密碼,注冊時間);
(4)體育館場地(,,場地名稱,場地類型,場地空閑狀態(tài),場地設(shè)備狀態(tài),場地?zé)艄鉅顟B(tài),場地使用狀態(tài));
(5)體育館訂單(,訂單名稱,創(chuàng)建時間,開始時間,時長,價格,訂單狀態(tài),,,);
(6)體育館推送(,,創(chuàng)建時間,推送內(nèi)容);
(7)體育館假期(,,假期時間)。
打開安卓APP輸入賬戶、密碼登錄成功后,進入體育館用戶主界面。APP用戶端的重點功能為場地預(yù)約和設(shè)備控制,體育館用戶查看場地信息后,可對場地進行預(yù)約,使用指定場地預(yù)約時,用戶可以看到該場地的使用時間線,然后根據(jù)使用時間線進行場地預(yù)約,如圖4所示。體育館用戶下單后,可對已下單場地進行控制,如圖5所示。勾選設(shè)備和燈光鍵后,對應(yīng)場地的設(shè)備將被打開。原型系統(tǒng)中燈光開啟效果如圖6所示。
圖4 訂單信息
圖5 勾選設(shè)備
圖6 打開場地?zé)艄?/p>
本文設(shè)計并實現(xiàn)了一種基于物聯(lián)網(wǎng)技術(shù)的智慧體育館管理系統(tǒng)。硬件部分采用STM32+ESP8266,并采用MQTT傳輸場地設(shè)備控制指令。后端基于SSM架構(gòu),同步開發(fā)了體育館用戶Android APP、基于PyQt5框架的體育館管理員桌面應(yīng)用客戶端和基于Bootstrap框架的Web管理后臺,以及設(shè)計了一種場地分配算法,能夠更加智能地滿足體育館用戶場地預(yù)約請求。本系統(tǒng)雖然實現(xiàn)了智能體育館的基本功能,但仍有許多不足之處,需進一步完善。