李泳君,楊懷港,鄭浩鑫,陶 銘
(東莞理工學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,廣東 東莞 523808)
體育館建設(shè)是體育運(yùn)動(dòng)設(shè)施建設(shè)中的重要一環(huán),同時(shí)也體現(xiàn)了城市居民的生活質(zhì)量水平。隨著生活水平的日益提高,人們對(duì)體育館的需求越來越大,體育館的數(shù)量也在不斷增加,但存在管理體系復(fù)雜等問題,導(dǎo)致體育館場地不能夠高效利用。因此,設(shè)計(jì)并開發(fā)了一種高效、智能的基于物聯(lián)網(wǎng)技術(shù)的體育館管理系統(tǒng),以提高體育館場地的利用率和管理水平。
本系統(tǒng)的設(shè)計(jì)主要包括5部分功能:
(1)硬件部分采用STM32和ESP8266相結(jié)合的設(shè)計(jì)方案,通過MQTT通信協(xié)議對(duì)體育館場地設(shè)備進(jìn)行控制;
(2)服務(wù)器端主要對(duì)系統(tǒng)運(yùn)行過程中產(chǎn)生的數(shù)據(jù)進(jìn)行存取;
(3)基于Bootstrap框架的系統(tǒng)管理員后臺(tái)主要實(shí)現(xiàn)體育館管理員、用戶信息和體育館場地信息的管理,以及體育館設(shè)備管理、訂單查看以及消息推送等功能;
(4)基于Android的體育館用戶APP客戶端主要實(shí)現(xiàn)用戶獲取體育館信息以及對(duì)體育館場地進(jìn)行預(yù)約。
本系統(tǒng)后端采用的框架主要由SSM架構(gòu)與三層架構(gòu)組成。SSM架構(gòu)是指Spring框架、SpringMVC框架和MyBatis框架。三層架構(gòu)是指將系統(tǒng)項(xiàng)目按照職責(zé)不同劃分為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和交互層,其中界面層用到了SpringMVC框架,數(shù)據(jù)訪問層使用MyBatis框架,而Spring框架則用于全部層次之中。SpringMVC框架使用MVC軟件設(shè)計(jì)模式,其中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 體育館訂單管理功能時(shí)序圖
體育館用戶模塊的功能有三大類:用戶賬戶管理功能、體育館場地預(yù)約功能和控制已下單的場地功能。主要功能為體育館場地預(yù)約功能,如圖3所示,包括:用戶通過該功能實(shí)現(xiàn)對(duì)體育館場地的預(yù)約。

圖3 體育館場地預(yù)約功能時(shí)序圖
本文設(shè)計(jì)了一種場地分配算法來更加智能地滿足體育館用戶的場地預(yù)約請(qǐng)求,具體算法描述如下:
(1)預(yù)約場地訂單的開始時(shí)間是當(dāng)天:在這種情況下,場地分配算法會(huì)先查找符合預(yù)約類型的場地,然后再查找這些場地當(dāng)天的場地訂單,接著對(duì)每個(gè)場地的所有訂單按照開始時(shí)間從小到大進(jìn)行遍歷,查看有無新訂單插入的位置,如果有,則預(yù)約成功,否則預(yù)約失敗。
(2)預(yù)約場地訂單的開始時(shí)間不是當(dāng)天:在這種情況下,場地分配算法會(huì)先查找符合預(yù)約類型的場地,然后再查找與預(yù)約訂單同一天開始的同類型訂單,接著給每個(gè)符合預(yù)約類型的場地設(shè)置最后結(jié)束時(shí)間,并且把這些場地按照最后結(jié)束時(shí)間從小到大排序,形成有序的場地集合。把與預(yù)約訂單同一天開始的同類型訂單合成訂單集合,并按照開始時(shí)間從小到大排序。最后遍歷訂單集合,對(duì)于每一個(gè)遍歷到的訂單,取場地集合中的第一個(gè)場地,如果第一個(gè)場地的開始時(shí)間小于訂單的開始時(shí)間,則說明該訂單無法分配場地,預(yù)約失敗。如果第一個(gè)場地的開始時(shí)間大于訂單的開始時(shí)間,則該訂單可以被分配場地,然后更新該訂單的場地信息和該場地的最后結(jié)束時(shí)間,并對(duì)場地集合重新排序,接著遍歷下一個(gè)訂單。如果訂單集合都能分配場地,則預(yù)約成功。



據(jù)實(shí)體對(duì)象的屬性設(shè)計(jì)本系統(tǒng)各實(shí)體對(duì)象之間的關(guān)系模型。系統(tǒng)關(guān)系模型如下(單下劃線用來表示“主鍵”,雙下劃線用來表示“外鍵”):
(1)系統(tǒng)管理員(,名稱,賬號(hào),密碼);
(2)體育館管理員(,郵箱,密碼,手機(jī)號(hào)碼,體育館名稱,體育館狀態(tài),體育館地址,體育館工作日,體育館開始時(shí)間,體育館關(guān)閉時(shí)間,注冊(cè)時(shí)間,羽毛球場價(jià)格,籃球場價(jià)格);
(3)體育館用戶(,郵箱,名稱,手機(jī)號(hào)碼,密碼,注冊(cè)時(shí)間);
(4)體育館場地(,,場地名稱,場地類型,場地空閑狀態(tài),場地設(shè)備狀態(tài),場地?zé)艄鉅顟B(tài),場地使用狀態(tài));
(5)體育館訂單(,訂單名稱,創(chuàng)建時(shí)間,開始時(shí)間,時(shí)長,價(jià)格,訂單狀態(tài),,,);
(6)體育館推送(,,創(chuàng)建時(shí)間,推送內(nèi)容);
(7)體育館假期(,,假期時(shí)間)。
打開安卓APP輸入賬戶、密碼登錄成功后,進(jìn)入體育館用戶主界面。APP用戶端的重點(diǎn)功能為場地預(yù)約和設(shè)備控制,體育館用戶查看場地信息后,可對(duì)場地進(jìn)行預(yù)約,使用指定場地預(yù)約時(shí),用戶可以看到該場地的使用時(shí)間線,然后根據(jù)使用時(shí)間線進(jìn)行場地預(yù)約,如圖4所示。體育館用戶下單后,可對(duì)已下單場地進(jìn)行控制,如圖5所示。勾選設(shè)備和燈光鍵后,對(duì)應(yīng)場地的設(shè)備將被打開。原型系統(tǒng)中燈光開啟效果如圖6所示。

圖4 訂單信息

圖5 勾選設(shè)備

圖6 打開場地?zé)艄?/p>
本文設(shè)計(jì)并實(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管理后臺(tái),以及設(shè)計(jì)了一種場地分配算法,能夠更加智能地滿足體育館用戶場地預(yù)約請(qǐng)求。本系統(tǒng)雖然實(shí)現(xiàn)了智能體育館的基本功能,但仍有許多不足之處,需進(jìn)一步完善。