馬 可,黃恒熠,栗云鵬
1(河海大學(xué) 機(jī)電工程學(xué)院,常州 213022)
2(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,南京 211106)
3(浩鯨云計(jì)算科技股份有限公司,南京 211153)
高校擁有大量的座位資源供學(xué)生自習(xí),包括圖書館、自習(xí)室和實(shí)驗(yàn)室等,但高校的座位管理存在很多難題,如占座嚴(yán)重、尋座困難、難以統(tǒng)一管理等[1,2].已有不少高校采用了各種圖書館座位管理系統(tǒng)進(jìn)行圖書館座位分配[3-5],一定程度上緩解了占座問題,但諸如尋座困難、難以統(tǒng)一管理等問題依舊存在.
基于FSR 薄膜傳感器[6,7]檢測(cè)終端的C/S 架構(gòu)的高校座位管理系統(tǒng)可以有效的解決上述問題,在座位中配置檢測(cè)終端進(jìn)行座位使用情況的判定,生成檢測(cè)數(shù)據(jù),由管理系統(tǒng)對(duì)座位情況和使用用戶進(jìn)行記錄,由管理員進(jìn)行座位使用規(guī)則的獨(dú)立設(shè)定,學(xué)生可以通過(guò)移動(dòng)APP 進(jìn)行座位的查詢和預(yù)約,實(shí)現(xiàn)座位的獨(dú)立設(shè)置規(guī)則并統(tǒng)一管理,方便學(xué)生預(yù)約,減少學(xué)生尋座時(shí)間,快速排查占座行為,提高座位的有效利用率和管理效率.
高校座位信息管理系統(tǒng)是一個(gè)對(duì)高校所有座位以及與座位相關(guān)的使用規(guī)則進(jìn)行統(tǒng)一管理,為管理者和用戶提供統(tǒng)一規(guī)范的系統(tǒng).該系統(tǒng)主要適用于高校管理者對(duì)高校座位資源的管理和高校師生對(duì)高校座位資源的查詢和使用.管理系統(tǒng)必須滿足以下需求:
(1)數(shù)據(jù)資源的有效管理
① 實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)資源的存儲(chǔ),通過(guò)本地以及云端,可靠地存儲(chǔ)座位使用情況的相關(guān)信息和數(shù)據(jù);② 實(shí)現(xiàn)數(shù)據(jù)及數(shù)據(jù)庫(kù)的管理和維護(hù),為系統(tǒng)各項(xiàng)數(shù)據(jù)進(jìn)行存儲(chǔ)、查詢、修改和校驗(yàn)等,并提供文檔、圖片等不同數(shù)據(jù)的傳輸.
(2)數(shù)據(jù)資源的共享與適用
該管理系統(tǒng)適用于高校管理,是高校管理的組成部分,系統(tǒng)的各類信息和數(shù)據(jù)應(yīng)符合高校管理的規(guī)范,數(shù)據(jù)類型與結(jié)構(gòu)與高校管理的其他系統(tǒng)相統(tǒng)一,確保管理人員能夠獲取正確的數(shù)據(jù).
(3)用戶友好和界面友善
該系統(tǒng)需為用戶提供便捷的登陸注冊(cè)界面以及系統(tǒng)座位信息服務(wù)界面,用戶登陸后系統(tǒng)按照用戶的身份權(quán)限為用戶規(guī)劃出可以使用的座位和可以預(yù)約的座位,用戶可以通過(guò)點(diǎn)擊對(duì)應(yīng)的設(shè)備來(lái)操作符合其權(quán)限的設(shè)備,進(jìn)行業(yè)務(wù)的操作和實(shí)現(xiàn),使得用戶可以通過(guò)簡(jiǎn)單的操作完成系統(tǒng)的任務(wù),提高工作效率.
(4)功能的可擴(kuò)展性
該系統(tǒng)為高校座位管理服務(wù),需要提供座位查詢、預(yù)約、管理等基本功能,同時(shí)還需要能夠高效的擴(kuò)展,以滿足高校座位管理的新需求.
整個(gè)系統(tǒng)可分為3 個(gè)部分,包括用戶端應(yīng)用、云服務(wù)器端應(yīng)用和檢測(cè)終端.用戶端應(yīng)用面向使用者,提供交互服務(wù);云服務(wù)器端應(yīng)用負(fù)責(zé)邏輯處理和數(shù)據(jù)存儲(chǔ);檢測(cè)終端作為硬件檢測(cè)設(shè)施,與座位配套,負(fù)責(zé)檢測(cè)座位的使用情況.為了實(shí)現(xiàn)系統(tǒng)的可擴(kuò)展性和易維護(hù)性目標(biāo),系統(tǒng)各個(gè)不同部分直接進(jìn)行交互時(shí),根據(jù)云服務(wù)器端應(yīng)用的數(shù)據(jù)結(jié)構(gòu)類型進(jìn)行通信時(shí)數(shù)據(jù)的格式化規(guī)范.
高校座位包括了圖書館、自習(xí)室和實(shí)驗(yàn)室等不同區(qū)域,各個(gè)區(qū)域的管理規(guī)范各不相同,負(fù)責(zé)的管理人員繁多,系統(tǒng)對(duì)各個(gè)區(qū)域的座位進(jìn)行統(tǒng)一管理能夠提升管理的效率.針對(duì)系統(tǒng)需求的不同部分,將系統(tǒng)的功能模塊主要?jiǎng)澐譃?用戶管理、座位配置、座位管理和座位檢測(cè).系統(tǒng)的功能模塊如圖1所示.
(1)用戶管理模塊:即管理該系統(tǒng)的用戶,負(fù)責(zé)管理用戶的基本信息.包括用戶的注冊(cè)、用戶的信息錄入、用戶登陸與用戶退出、用戶信息修改、用戶注銷.為了滿足高校管理時(shí)信息的統(tǒng)一管理,系統(tǒng)除了開放用戶賬戶的注冊(cè)方式,也可以通過(guò)統(tǒng)一導(dǎo)入賬戶信息以創(chuàng)建用戶賬號(hào),接入校園信息管理系統(tǒng),實(shí)現(xiàn)信息的共享.
(2)座位配置模塊:即管理如何配置該系統(tǒng)中的座位使用權(quán)限,面向高權(quán)限座位管理員.由各個(gè)區(qū)域的管理員對(duì)座位進(jìn)行設(shè)置.該模塊主要包括了設(shè)置座位的啟用情況、修改座位的基礎(chǔ)信息和修改座位的使用權(quán)限等.通過(guò)對(duì)座位功能的統(tǒng)一設(shè)定,實(shí)現(xiàn)不同區(qū)域不同座位管理方式的自由設(shè)定,實(shí)現(xiàn)座位使用的自由、公開管理.
(3)座位管理模塊:即管理座位的使用,面用系統(tǒng)中高校座位使用者.包括為用戶獲取座位的基本信息,如座位的位置、使用方式、管理公告等,為用戶提供可用座位的查詢、座位的預(yù)約以及預(yù)約的取消,同時(shí)將座位信息進(jìn)行圖形化顯示,為用戶記錄違規(guī)信息和使用時(shí)長(zhǎng),以供統(tǒng)計(jì)和管理.
(4)座位檢測(cè)模塊:即檢測(cè)座位的使用情況.該模塊主要包括了為座位配置對(duì)應(yīng)的座位檢測(cè)設(shè)備,以及為座位檢測(cè)設(shè)備設(shè)置檢測(cè)間隔,包括座位檢測(cè)時(shí)間間隔和判定未使用的時(shí)長(zhǎng)間隔等.
該高校座位信息管理系統(tǒng)包括了大量的數(shù)據(jù)通信和數(shù)據(jù)存儲(chǔ)等操作,采取C/S 架構(gòu)進(jìn)行開發(fā),需要明確處理數(shù)據(jù)的在網(wǎng)絡(luò)中的流動(dòng)和管理.由于采取了C/S架構(gòu),系統(tǒng)中的數(shù)據(jù)流動(dòng)可以按照需求進(jìn)行設(shè)定,系統(tǒng)的數(shù)據(jù)流向圖如圖2所示.
圖2 系統(tǒng)的數(shù)據(jù)流向圖
系統(tǒng)中主要包含了用戶的請(qǐng)求數(shù)據(jù)和座位檢測(cè)數(shù)據(jù),數(shù)據(jù)作為信息的載體,在各個(gè)不同模塊間流動(dòng)和傳輸,將系統(tǒng)的模塊連接起來(lái),實(shí)現(xiàn)了系統(tǒng)各個(gè)模塊的解耦,利于系統(tǒng)的層次化設(shè)計(jì).
按照系統(tǒng)需求和數(shù)據(jù)流設(shè)計(jì),系統(tǒng)的總體架構(gòu)設(shè)計(jì)如圖3,主要包括了移動(dòng)手機(jī)APP[8]、云端應(yīng)用服務(wù)器、座位檢測(cè)終端、座位檢測(cè)服務(wù)器、MySQL 數(shù)據(jù)庫(kù)服務(wù)器.
圖3 系統(tǒng)總體架構(gòu)圖
系統(tǒng)架構(gòu)將系統(tǒng)劃分為云端服務(wù)、用戶端交互、終端座位檢測(cè)3 個(gè)部分,各個(gè)部分功能可以獨(dú)立開發(fā),提高系統(tǒng)的開發(fā)效率和穩(wěn)定性.該系統(tǒng)架構(gòu)適合采用廣泛的C/S 開發(fā)模式,并適合于將系統(tǒng)劃分為“用戶界面/數(shù)據(jù)采集—功能邏輯—數(shù)據(jù)庫(kù)”的3 個(gè)層次.對(duì)系統(tǒng)進(jìn)行該架構(gòu)的劃分使得系統(tǒng)各個(gè)部分獨(dú)立開發(fā),使得各個(gè)層次的功能透明,便于各個(gè)層次的獨(dú)立維護(hù)和擴(kuò)展.
根據(jù)功能的可擴(kuò)展性的需求,該系統(tǒng)采用了Android MVP 設(shè)計(jì)模式進(jìn)行系統(tǒng)的開發(fā),使得系統(tǒng)劃分為了4 層:用戶應(yīng)用層、邏輯服務(wù)層、數(shù)據(jù)模型層、數(shù)據(jù)存儲(chǔ)層.系統(tǒng)的軟件架構(gòu)如圖4.
圖4 系統(tǒng)軟件架構(gòu)圖
采用Android MVP 設(shè)計(jì)模式的優(yōu)點(diǎn)在于:系統(tǒng)的各個(gè)部分相對(duì)獨(dú)立,開發(fā)者可以將一個(gè)功能拆分為多個(gè)部分進(jìn)行開發(fā),使得代碼有極高的可讀性,功能實(shí)現(xiàn)十分明晰.通過(guò)面向接口,隱藏和忽略其他層的實(shí)現(xiàn)方式,使得開發(fā)者可以實(shí)現(xiàn)各層的獨(dú)立設(shè)計(jì),也使得系統(tǒng)的功能可以高效的進(jìn)行擴(kuò)展和維護(hù).
其中用戶應(yīng)用層主要負(fù)責(zé)交互、顯示以及座位使用情況的檢測(cè),主要對(duì)應(yīng)了用戶應(yīng)用的APP 界面和座位檢測(cè)終端;其中邏輯服務(wù)層主要負(fù)責(zé)功能的邏輯實(shí)現(xiàn),對(duì)應(yīng)了用戶應(yīng)用中的控制層和服務(wù)器應(yīng)用的邏輯層;其中數(shù)據(jù)模型層主要負(fù)責(zé)數(shù)據(jù)的面向?qū)ο蟮膶?shí)體類的管理以及數(shù)據(jù)庫(kù)的操作;其中數(shù)據(jù)存儲(chǔ)層主要包括了MySQL 數(shù)據(jù)庫(kù)服務(wù)器和本地?cái)?shù)據(jù)庫(kù)SQLite,分別負(fù)責(zé)系統(tǒng)的數(shù)據(jù)存儲(chǔ)管理和用戶應(yīng)用的本地?cái)?shù)據(jù)存儲(chǔ).
此系統(tǒng)為了實(shí)現(xiàn)作為的統(tǒng)一管理,需要設(shè)計(jì)終端進(jìn)行座位信息的綁定以及使用情況的檢測(cè),通過(guò)硬件終端檢測(cè)座位使用情況,可以生成座位管理需要的大量數(shù)據(jù),便于后續(xù)的統(tǒng)計(jì)和分析,本系統(tǒng)的座位檢測(cè)終端原理如圖5所示.
圖5 檢測(cè)終端原理圖
檢測(cè)終端將實(shí)驗(yàn)室、自習(xí)室和圖書館等不同的區(qū)域中的座位錄入系統(tǒng),并在每個(gè)錄入系統(tǒng)的座位上安裝檢測(cè)終端,使用FSR 薄膜傳感器,能夠檢測(cè)出座位是否有人使用,檢測(cè)結(jié)果通過(guò)A/D 轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào),經(jīng)Arduino 平臺(tái)上的nRF24L01 無(wú)線模塊傳輸數(shù)據(jù)到上位機(jī).系統(tǒng)使用基于ARM的微型電腦Raspberry Pi 作為檢測(cè)終端上位機(jī),接收檢測(cè)終端數(shù)據(jù),并上傳到網(wǎng)絡(luò)服務(wù)器中,并由服務(wù)器系統(tǒng)軟件對(duì)檢測(cè)數(shù)據(jù)進(jìn)行處理,結(jié)合服務(wù)器系統(tǒng)軟件提供的其他功能子模塊,向用戶端軟件提供系統(tǒng)功能,實(shí)現(xiàn)對(duì)高校實(shí)驗(yàn)室、自習(xí)室和圖書館的不同資源進(jìn)行統(tǒng)一管理.
(1)技術(shù)思路
MVP的核心在于將程序中的視圖和數(shù)據(jù)分離,減輕Activity[9,10]的負(fù)擔(dān),也使得程序的邏輯更加簡(jiǎn)潔.其中,M 層負(fù)責(zé)數(shù)據(jù)的獲取,V 層負(fù)責(zé)視圖的處理,P 層負(fù)責(zé)邏輯的實(shí)現(xiàn).其中V 層不直接調(diào)用M 層也不持有V 層,而是由P 層持有V 層對(duì)象和M 層對(duì)象,作為中介來(lái)獲取數(shù)據(jù)[11,12].雖然在一定程度上加大了代碼量,但是在邏輯上的簡(jiǎn)潔性和明確性使得這個(gè)缺點(diǎn)可以承受.
(2)具體的分層結(jié)構(gòu)
該系統(tǒng)采用MVP的思想進(jìn)行構(gòu)建,分別構(gòu)建了M 層、V 層和P 層,項(xiàng)目結(jié)構(gòu)圖見圖6.
圖6 項(xiàng)目結(jié)構(gòu)圖
圖6中MyView對(duì)應(yīng)的是V 層,model對(duì)應(yīng)的是M 層,presenter對(duì)應(yīng)的是P 層,util是常用工具類.MyView 下包含了Activity 類、fragment 類和自定義view 類以及對(duì)應(yīng)的視圖接口類;model 下包含了實(shí)體的抽象類Bean、網(wǎng)絡(luò)請(qǐng)求的自定義bean 類、用于本地?cái)?shù)據(jù)庫(kù)查詢的DAO 類和用于網(wǎng)絡(luò)HTTP 請(qǐng)求的Moudle 類;presenter 包含了層現(xiàn)器類和層現(xiàn)器的接口類.
(3)以單個(gè)功能模塊的數(shù)據(jù)流為例,系統(tǒng)實(shí)現(xiàn)MVP 設(shè)計(jì)思想的流程如下:
① Activity 繼承對(duì)應(yīng)的View 接口,實(shí)現(xiàn)其中方法;
② Activity在OnCreate()中綁定用戶信息實(shí)體的父容器LinearLayout,并實(shí)例化對(duì)應(yīng)的Presenter 層現(xiàn)器,調(diào)用層現(xiàn)器中檢查用戶身份表版本的方法checkUserRoleVersion()和請(qǐng)求加載用戶數(shù)據(jù)的請(qǐng)求getSeatPartUser(Seat seat);
③ 層現(xiàn)器通過(guò)在實(shí)例化時(shí)持有View對(duì)象,并創(chuàng)建Moudle對(duì)象和DAO對(duì)象;
④ 層現(xiàn)器調(diào)用Moudle 中網(wǎng)絡(luò)請(qǐng)求方法獲取用戶數(shù)據(jù),調(diào)用DAO 中數(shù)據(jù)庫(kù)請(qǐng)求方法獲取本地?cái)?shù)據(jù)庫(kù)數(shù)據(jù);
⑤ 返回結(jié)果數(shù)據(jù)后,Moudle 回調(diào)層現(xiàn)器方法,層現(xiàn)器回調(diào)View 方法,將數(shù)據(jù)返回到頁(yè)面Activity;
⑥ Activity 調(diào)用動(dòng)態(tài)創(chuàng)建實(shí)體方法,利用得到的數(shù)據(jù)完成頁(yè)面更新.
數(shù)據(jù)的持久化[13]是該系統(tǒng)的核心技術(shù)之一,在服務(wù)器端通過(guò)使用數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的持久化,通過(guò)數(shù)據(jù)類型映射進(jìn)行數(shù)據(jù)的訪問和存儲(chǔ),并通過(guò)JavaBean 技術(shù)進(jìn)行服務(wù)器與移動(dòng)端應(yīng)用的數(shù)據(jù)交互.在Android移動(dòng)端應(yīng)用中,對(duì)于數(shù)據(jù)的本地存儲(chǔ)也有一定的需求,為了能夠應(yīng)對(duì)不同大小、不同類型的數(shù)據(jù),本系統(tǒng)實(shí)現(xiàn)了SharedPreference、SQLite 存儲(chǔ)方式.
(1)數(shù)據(jù)類型映射
本系統(tǒng)中包括了大量不同類型的數(shù)據(jù),在數(shù)據(jù)庫(kù)中建立數(shù)據(jù)了對(duì)應(yīng)的條目,為了實(shí)現(xiàn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)在系統(tǒng)應(yīng)用中的流動(dòng)和交互,系統(tǒng)設(shè)計(jì)了對(duì)應(yīng)的數(shù)據(jù)映射類型,實(shí)現(xiàn)數(shù)據(jù)格式的統(tǒng)一化,有利于數(shù)據(jù)的網(wǎng)絡(luò)交互的數(shù)據(jù)庫(kù)存儲(chǔ)讀取規(guī)范化.其中最核心的數(shù)據(jù)映射類型包括了用戶類User、座位類Seat、用戶身分類UserRoleBean、座位預(yù)約類Appointment.以用戶類為例,其映射結(jié)構(gòu)如下:
@Setter
@Getter
@ToString
public class User {
@NotBlank
private String userId;
private String userName;
…
}
(2)SharedPreference
對(duì)于系統(tǒng)中常用的一些數(shù)據(jù),如簡(jiǎn)單參數(shù)和系統(tǒng)狀態(tài)等,若其數(shù)據(jù)量較小,本系統(tǒng)將其存儲(chǔ)在XML 格式的文件中.
以本系統(tǒng)進(jìn)行暫存當(dāng)前用戶登陸狀態(tài)和基本信息的SharedPreference為例:存儲(chǔ)路徑如下:/data/data/com.SSHHY/shared_prefs/userinfo.xml
流程:實(shí)例化SharedPreferences對(duì)象,存儲(chǔ)Shared-Preferences對(duì)象,讀取SharedPreferences對(duì)象.
其代碼實(shí)現(xiàn)如下:
# 實(shí)例化SharedPreferences對(duì)象
private SharedPreferences sharedPreferences;
# 讀取SharedPreferences對(duì)象
sharedPreferences=getSharedPreferences(“userinfo”,Context.MODE_PRIVATE);
Boolean loginFlag=sharedPreferences.getBoolean(“l(fā)oginFlag”,false);
# 修改和存儲(chǔ)SharedPreferences對(duì)象
SharedPreferences.Editor editor=sharedPreferences.edit();
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.apply();
(3)SQLite
對(duì)于系統(tǒng)中的基礎(chǔ)數(shù)據(jù),當(dāng)其數(shù)據(jù)量相對(duì)較大時(shí),本系統(tǒng)使用SQLite 輕量級(jí)數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),存儲(chǔ)在db 格式的文件中.
以本系統(tǒng)中的SQLite 數(shù)據(jù)庫(kù)為例,存儲(chǔ)路徑如下:/data/data/com.SSHHY/databases/myDemo.db
SQLite 數(shù)據(jù)庫(kù)支持SQL 語(yǔ)法,同時(shí)Android 提供了SQLiteOpenHelper 類進(jìn)行操作.為了使得數(shù)據(jù)庫(kù)操作的邏輯符合MVP的思想,本系統(tǒng)開發(fā)時(shí)將SQLite數(shù)據(jù)庫(kù)的操作劃分入M 層,由專門的DAO 類進(jìn)行操作.所有對(duì)數(shù)據(jù)庫(kù)的操作均從Activity的UI 主線程分離出來(lái),由P 層作為中介進(jìn)行連接.
為了進(jìn)行數(shù)據(jù)庫(kù)的查詢等操作時(shí),建立了對(duì)應(yīng)數(shù)據(jù)庫(kù)的DAO 類,通過(guò)持有DBHelper對(duì)象實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查.結(jié)合數(shù)據(jù)的存儲(chǔ)和訪問技術(shù),通過(guò)數(shù)據(jù)類型的映射,可便捷實(shí)現(xiàn)用戶端雨數(shù)據(jù)庫(kù)的交互.
(1)登陸注冊(cè)界面
用戶通過(guò)該界面進(jìn)行新賬號(hào)的申請(qǐng),也可以通過(guò)已有賬號(hào)的用戶賬戶和密碼進(jìn)行登陸,如圖7.
圖7 登陸注冊(cè)界面
(2)個(gè)人信息及查詢界面
用戶完成登陸后進(jìn)行個(gè)人信息界面,查看、完善和修改個(gè)人的信息;可以進(jìn)行查詢,按照頂部導(dǎo)航欄中的下拉框進(jìn)行選擇即可查詢得出該教室中所有座位的使用情況如圖8.
圖8 個(gè)人信息及查詢界面
(3)預(yù)約提示
用戶查詢到座位后,對(duì)座位進(jìn)行點(diǎn)擊即可對(duì)該座位進(jìn)行預(yù)約,系統(tǒng)按照座位的使用情況、管理員設(shè)置的使用期限和用戶個(gè)人權(quán)限進(jìn)行預(yù)約,并彈出對(duì)應(yīng)的提示框進(jìn)行提示預(yù)約情況,如圖9.
圖9 預(yù)約提示
(4)預(yù)約界面
用戶成功完成預(yù)約后自動(dòng)進(jìn)去預(yù)約界面,期間無(wú)法進(jìn)行其他座位的查詢和預(yù)約,用戶在預(yù)約時(shí)間未按時(shí)使用座位或離開座位時(shí)間過(guò)久會(huì)被自動(dòng)取消座位預(yù)約資格,防止用戶占座行為,如圖10.
圖10 預(yù)約界面
(1)檢測(cè)終端的連接
系統(tǒng)使用檢測(cè)終端檢測(cè)座位使用情況,使用Arduino作為檢測(cè)終端上位機(jī),由Arduino 連接樹莓派服務(wù)器.如圖11所示.其中檢測(cè)終端包含了FSR 薄膜傳感器、數(shù)模轉(zhuǎn)換器、LED 顯示燈、離座按鍵.FSR 薄膜傳感器檢測(cè)時(shí)不會(huì)對(duì)10 kg 以下的書包、書籍等物品產(chǎn)生檢測(cè)值,只會(huì)對(duì)超過(guò)40 kg的人坐到座位上時(shí)才會(huì)產(chǎn)生檢測(cè)值.FSR 薄膜傳感器通過(guò)數(shù)模轉(zhuǎn)換器連接到Arduino,將產(chǎn)生的數(shù)字量轉(zhuǎn)變成模擬量,傳輸?shù)紸rduino可以識(shí)別的數(shù)據(jù).LED 顯示燈由兩個(gè)不同的LED 組成,一個(gè)燈在按下離座按鍵時(shí)亮起,指示暫離,另一個(gè)燈亮起指示違規(guī).Arduino 通過(guò)nRF24L01 芯片射頻通信與上位機(jī)樹莓派進(jìn)行連接,將數(shù)據(jù)傳輸至樹莓派.
圖11 檢測(cè)終端連接示意圖
(2)檢測(cè)終端的通信配置
系統(tǒng)在投入使用前,需要配置網(wǎng)絡(luò)設(shè)備保證檢測(cè)終端與互聯(lián)網(wǎng)聯(lián)通.檢測(cè)終端中,使用Arduino 通過(guò)nRF24L01 芯片射頻通信與上位機(jī)樹莓派進(jìn)行連接,將數(shù)據(jù)傳輸至樹莓派.樹莓派連接至互聯(lián)網(wǎng)公網(wǎng),樹莓派中安裝Tomcat 網(wǎng)絡(luò)服務(wù)器,利用Tomcat 訪問服務(wù)器的公網(wǎng)IP 地址,將數(shù)據(jù)發(fā)送至服務(wù)器的規(guī)定端口.服務(wù)器開放對(duì)應(yīng)端口,以接收數(shù)據(jù).服務(wù)器開放對(duì)應(yīng)端口以接收數(shù)據(jù),如圖12所示,其中80 端口為Tomcat 服務(wù)器默認(rèn)端口,8081為APP的服務(wù)器網(wǎng)絡(luò)服務(wù)端口,6000和7000為FRP 內(nèi)網(wǎng)穿透端口,20和21是FTP服務(wù)端口.通過(guò)訪問服務(wù)器公網(wǎng)IP 地址下的對(duì)應(yīng)端口號(hào),以訪問對(duì)應(yīng)的服務(wù)或上傳對(duì)應(yīng)的數(shù)據(jù).
圖12 服務(wù)器開放端口
(3)檢測(cè)終端讀取的代碼示例
FSR 薄膜傳感器連接到Arduino的模擬輸入引腳讀取數(shù)值引腳后,可以由Arduino 讀取其模擬輸入數(shù)值,使用analogRead(pin)函數(shù)可以讀取0 到1023 之間的值,代表的是0-5 V的電壓信號(hào),這個(gè)電壓值可以用于后續(xù)估計(jì)薄膜傳感器上受到的壓力范圍,并可以通過(guò)串口監(jiān)視器顯示.其代碼實(shí)現(xiàn)如下:
int val_AD=0;
void setup()
{
Serial.begin(9600);
}
void sloop()
{
val_AD=analogRead(A0);
Serial.println(val_AD);
delay(20);
}
本文對(duì)高校座位的信息化管理進(jìn)行探索,研究了對(duì)應(yīng)的軟件管理系統(tǒng),有利于數(shù)據(jù)的統(tǒng)一管理、信息的安全存儲(chǔ),為相關(guān)管理人員提高了統(tǒng)一的人員導(dǎo)入、規(guī)則設(shè)定、信息統(tǒng)計(jì)等功能,為高校座位的統(tǒng)一管理提供了更便捷、更可靠的管理方式.滿足了管理員對(duì)信息化管理的需求,方便高校用戶對(duì)高校資源的利用率,提高高校管理的信息化水平,提高管理人員的管理效率,在實(shí)際測(cè)試中,滿足了使用者的基本使用需求.