陸有麗, 鄧凱航, 李雯婧, 謝凌舉, 何津葳
(湖南理工學(xué)院 信息科學(xué)與工程學(xué)院, 湖南 岳陽 414006)
從騰訊公布的2019年第一季度業(yè)績中可以看到, 微信及WeChat 的合并月活躍賬戶數(shù)達(dá)11.12 億, 高校的教師、學(xué)生、工作人員幾乎人手一個微信號, 這為圖書館通過微信為用戶提供服務(wù)奠定了基礎(chǔ).2017年1月微信正式發(fā)布了微信小程序, 不需要下載、不需要安裝、用完即走、無須卸載[1], 且開發(fā)微信小程序由微信平臺審核, 安全性有保障, 還可以跨平臺使用, 不管是Android 系統(tǒng)還是iOS 系統(tǒng), 使用同一個版本即可[2], 這些優(yōu)點為圖書館通過微信小程序為用戶提供座位預(yù)約服務(wù)奠定了技術(shù)基礎(chǔ).對于大學(xué)生來說, 更強調(diào)學(xué)習(xí)的主動性, 圖書館因優(yōu)雅舒適安靜的環(huán)境、品類繁多的書籍而成為大學(xué)生學(xué)習(xí)的天堂[3].但是圖書館內(nèi)可供學(xué)生學(xué)習(xí)的座位有限, 特別是臨近期末考試, 座位顯得尤其緊張[4].為了解決座位使用的有效性、高效性、公平性, 以及圖書館管理和用戶使用的方便性, 本文基于微信小程序開發(fā)了一款圖書館座位預(yù)約系統(tǒng).
本系統(tǒng)利用STC89C52 控制芯片結(jié)合其他外圍電路, 在LCD 顯示屏上顯示座位號、預(yù)約時間段及實時時間; 通過控制LED 燈的狀態(tài)直觀地顯示預(yù)約狀態(tài); 利用WiFi 通信模塊與服務(wù)器進行數(shù)據(jù)交流, 將座位預(yù)約信息傳送至終端; 服務(wù)器將空閑座位在微信小程序中展現(xiàn), 用戶選擇空閑座位即可預(yù)約.圖書館座位桌面安裝簡易嵌入式設(shè)備, 通過其上的LED 燈和LCD 顯示屏, 可清晰地知曉該座位是否預(yù)約、預(yù)約時間段等信息, 讓進館的無預(yù)約用戶也能在不打擾他人的情況下快速找到座位.
系統(tǒng)包括管理員和用戶兩個模塊.管理員模塊主要負(fù)責(zé)對后臺數(shù)據(jù)進行處理, 主要有用戶管理、信用管理、預(yù)約管理、教室管理、座位管理、通知管理等功能.用戶模塊主要有個人信息管理、座位預(yù)約、預(yù)約信息查詢、通知提示、信用記錄查詢、書目查詢、問題反饋等功能.系統(tǒng)功能模塊如圖1所示.
圖1 系統(tǒng)功能模塊
本系統(tǒng)利用RFID 射頻識別技術(shù)及WiFi 無線通信技術(shù)完成現(xiàn)場身份確認(rèn), 是由嵌入式終端、微信小程序和服務(wù)器組成的座位預(yù)約系統(tǒng).
嵌入式智能終端主要包括身份驗證、數(shù)據(jù)處理、數(shù)據(jù)傳輸和信息顯示四大部分.分別由MF-RC522 IC 卡識別模塊、單片機STC89C51、ESP8266 WiFi 模塊以及LCD1602 顯示模塊實現(xiàn).嵌入式終端如圖2所示.
圖2 嵌入式終端
2.1.1 身份驗證功能
MF-RC522 模塊能夠識別并讀取IC 卡的信息, 在嵌入式終端中, 該模塊與STC89C51 主控芯片以SPI 方式進行數(shù)據(jù)通信.終端由MF-RC522 模塊利用RFID 射頻識別技術(shù)讀取IC 卡的信息, 并由MCU 將讀取的IC 卡信息與服務(wù)器發(fā)送的用戶信息進行比對, 從而實現(xiàn)身份驗證功能.
2.1.2 數(shù)據(jù)處理功能
微信小程序預(yù)約座位時, 嵌入式終端由ESP8266 模塊通過WiFi 通信技術(shù)接收服務(wù)器發(fā)送過來的數(shù)據(jù), 并以UART 方式將數(shù)據(jù)發(fā)送給STC89C51.STC89C51 對數(shù)據(jù)進行處理, 分離出其中的用戶信息、預(yù)約時間段和座位號等數(shù)據(jù).現(xiàn)場使用座位時, STC89C51 通過MF-RC522 模塊讀取用戶IC 卡信息.進行處理后, 將用戶信息、座位號等數(shù)據(jù)通過ESP8266 模塊利用WiFi 發(fā)送至服務(wù)器.
2.1.3 數(shù)據(jù)傳輸功能
ESP8266 模塊通過AT 指令配置連接網(wǎng)絡(luò)WiFi 熱點作為客戶端, 使用云服務(wù)器作服務(wù)端, 通過網(wǎng)絡(luò)進行數(shù)據(jù)發(fā)送與接收, 實現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)通信.當(dāng)系統(tǒng)模式是微信小程序預(yù)約時, 終端通過ESP8266 WiFi 模塊接收服務(wù)器發(fā)送過來的指令和信息, 執(zhí)行相應(yīng)操作, 如進行預(yù)約、提示燈顯示等, 并把狀態(tài)返回給服務(wù)器.現(xiàn)場使用座位時, 終端通過ESP8266 WiFi 模塊發(fā)送用戶信息、座位號等數(shù)據(jù)至服務(wù)器, 向服務(wù)器說明該座位已被使用.
2.1.4 信息顯示功能
嵌入式終端有LCD 屏和紅綠兩個小燈.由單片機控制LCD 液晶屏顯示座位號、當(dāng)前系統(tǒng)時間、座位預(yù)約狀態(tài)、如果已預(yù)約則顯示預(yù)約時間段.紅綠兩個LED 用來表示座位預(yù)約狀態(tài), 紅燈表示座位在當(dāng)前時間已被預(yù)約, 綠燈表示座位未被預(yù)約, 使進館用戶能更直觀地發(fā)現(xiàn)可預(yù)約使用的座位.
2.1.5 恢復(fù)功能
出于設(shè)備的穩(wěn)定性、可靠性考慮, 須有可以讓設(shè)備恢復(fù)出廠設(shè)置以及備份、恢復(fù)當(dāng)前設(shè)置的功能.可以通過恢復(fù)鍵讓嵌入式終端恢復(fù)出廠設(shè)置, 并且嵌入式終端可以自動判斷網(wǎng)絡(luò)故障和自身故障從而自動進行相關(guān)處理操作, 還可以通過后臺服務(wù)器發(fā)送指令恢復(fù)出廠設(shè)置.嵌入式終端硬件框圖如圖3所示.
圖3 嵌入式終端硬件框圖
2.2.1 個人信息管理模塊
用戶首次進入微信小程序會提醒用戶進入個人中心綁定個人身份信息, 后續(xù)還可以在個人中心修改已綁定的身份信息, 小程序會保存身份信息.在預(yù)約選座時, 小程序?qū)⑸矸菪畔⒑皖A(yù)約信息一起發(fā)送給服務(wù)器, 由服務(wù)器進行記錄.界面如圖4所示.
2.2.2 選座模塊
(1) 小程序預(yù)約座位
用戶在微信小程序中預(yù)約選座界面選擇座位時, 程序會判斷用戶信用是否充足, 如果信用不足(低于20), 將不能預(yù)約; 如果信用充足, 用戶可以繼續(xù)選擇該座位的預(yù)約使用時間段, 程序判斷該時間段內(nèi)座位是否空閑, 如果座位空閑, 則預(yù)約成功.小程序再將預(yù)約信息發(fā)送至服務(wù)器, 由服務(wù)器進行記錄.
用戶打開圖書館座位預(yù)約小程序, 預(yù)約選座界面有圖書館的仿真場景, 用戶到達(dá)圖書館后如果不熟悉座位區(qū)域, 可根據(jù)仿真場景快速找到自己預(yù)約的座位, 然后在座位上的終端刷卡完成簽到.選座界面如圖5所示.
圖4 個人中心
圖5 預(yù)約選座
用戶通過微信小程序在線預(yù)約座位, 服務(wù)器會將預(yù)約信息發(fā)送至座位上的嵌入式終端, 設(shè)備的紅燈亮起, 屏幕顯示預(yù)約信息.用戶到達(dá)座位后通過在終端刷卡進行身份確認(rèn), 完成簽到.若用戶未按預(yù)約時間簽到, 將會被記錄違規(guī).座位預(yù)約時間結(jié)束或用戶刷卡離開圖書館, 意味著座位使用結(jié)束, 座位釋放變?yōu)榭深A(yù)約狀態(tài).具體流程如圖6所示.
圖6 微信小程序座位預(yù)約與使用流程
(2) 無預(yù)約現(xiàn)場使用座位
用戶直接去圖書館使用座位, 只需找到嵌入式終端亮著綠燈的可用座位, 刷卡完成簽到, 終端將使用信息發(fā)送至服務(wù)器, 服務(wù)器標(biāo)記該座位已使用并記錄使用信息.用戶刷卡離開圖書館, 意味著座位使用結(jié)束, 座位將可被其他用戶預(yù)約使用.具體流程如圖7所示.
圖7 用戶直接使用座位流程
2.2.3 預(yù)約信息及信用情況查看模塊
用戶進入個人中心可以查看預(yù)約信息以及信用情況.小程序?qū)⒂脩粜畔⒉樵冎噶畎l(fā)送給服務(wù)器, 服務(wù)器在數(shù)據(jù)庫檢索用戶后, 將用戶當(dāng)前預(yù)約信息和用戶信用情況返回給小程序顯示.
2.2.4 通知提示模塊
用戶在進入小程序時, 如果服務(wù)器有新通知發(fā)布, 小程序就會提示有新的通知需要查看.當(dāng)用戶有預(yù)約座位時, 小程序會有預(yù)約信息提示, 用戶信用過低時, 有信用警告提示等.
2.2.5 書目查詢模塊
本模塊連接到圖書館館藏書籍?dāng)?shù)據(jù)庫.用戶通過在書目查詢界面輸入書籍關(guān)鍵字, 系統(tǒng)會在數(shù)據(jù)庫中進行檢索, 并記錄包含關(guān)鍵字的書籍信息, 最后在該界面顯示所有含關(guān)鍵字的書籍信息及書籍所在位置.
2.2.6 問題反饋模塊
用戶通過在問題反饋界面輸入反饋內(nèi)容, 系統(tǒng)會將用戶反饋的內(nèi)容發(fā)送給系統(tǒng)開發(fā)者.反饋內(nèi)容包括: 微信小程序中出現(xiàn)的BUG、界面設(shè)計上存在的問題以及系統(tǒng)需要新增的功能等.
2.3.1 用戶管理模塊
服務(wù)器程序會自動將用戶信息導(dǎo)入數(shù)據(jù)庫, 管理員在后臺進行部分用戶相關(guān)信息的管理, 包括對用戶姓名、一卡通卡號和一卡通UID 號等的添加、修改和刪除.
2.3.2 信用管理模塊
設(shè)定用戶初始信用分為100, 每違規(guī)一次扣30.每成功預(yù)約座位并簽到一次加10, 信用分上限為120.當(dāng)用戶信用低于20 時, 用戶將不能預(yù)約座位, 每過一周信用加10, 可加至30.管理員還可根據(jù)用戶實際情況適當(dāng)修改用戶信用扣分?jǐn)?shù)據(jù).
2.3.3 預(yù)約管理模塊
服務(wù)器將用戶預(yù)約座位的信息和座位使用信息存入數(shù)據(jù)庫.用戶預(yù)約座位時, 服務(wù)器在數(shù)據(jù)庫中查詢當(dāng)前預(yù)約座位在預(yù)約時間段內(nèi)的使用信息, 若座位空閑, 則用戶預(yù)約成功, 并在數(shù)據(jù)庫記錄用戶預(yù)約信息.
2.3.4 教室管理模塊
管理員導(dǎo)入圖書館所有自習(xí)室和教室的教室名、使用狀態(tài)、可容納人數(shù)和位置等信息.對這些信息, 管理員都有權(quán)添加、修改和刪除.教室實際使用狀態(tài)(可用或不可用兩種狀態(tài))改變時, 管理員要及時修改服務(wù)器上的教室使用狀態(tài)并發(fā)布通知.
2.3.5 座位管理模塊
管理員將圖書館每層閱覽區(qū)、自習(xí)室和教室中座位的編號、使用狀態(tài)和位置等信息錄入數(shù)據(jù)庫.管理員可以修改座位信息、刪除多余的座位.
2.3.6 通知管理模塊
服務(wù)器在用戶有預(yù)約信息和用戶信用過低時, 會自動向用戶的小程序發(fā)布通知.管理員也可以發(fā)布新通知和刪除舊通知.
針對圖書館占座、座位資源得不到充分利用等問題, 設(shè)計并開發(fā)由嵌入式終端和微信小程序組成的圖書館座位預(yù)約系統(tǒng).該系統(tǒng)方便用戶預(yù)約圖書館座位, 提高了座位資源利用率.