• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于二維碼的開放實驗室預(yù)約系統(tǒng)

      2020-08-07 14:43:58黃鎮(zhèn)建陳泓昌
      現(xiàn)代計算機 2020年18期
      關(guān)鍵詞:服務(wù)器端管理員二維碼

      黃鎮(zhèn)建,陳泓昌

      (韓山師范學院物理與電子工程學院,潮州521000)

      0 引言

      開放實驗室是高??茖W研究的承載體,是鍛煉學生動手能力、創(chuàng)新能力以及進行實驗教學的重要場所,開放實驗室的建設(shè)也越來越受到高校的重視。如何適應(yīng)高等教育發(fā)展趨勢,提高大學生整體綜合素質(zhì),是現(xiàn)階段亟待解決的一項問題,要想收獲良好的教學成效,離不開多元豐富實踐教學內(nèi)容及教學手段的有力支持。開放實驗室的重點在于“開放”,學生可以根據(jù)自己的學習計劃,預(yù)約實驗時間和實驗項目。實驗室的開放說起來簡單,實現(xiàn)卻十分困難,諸如預(yù)約管理制度、開放時間,實驗人員身份認證等問題,令國內(nèi)外高校十分頭痛。目前的門禁系統(tǒng),大多是校園信息卡、指紋、人臉識別等,沒有辦法進行預(yù)約,因此,非常有必要借助互聯(lián)網(wǎng)+的環(huán)境,利用信息和電子技術(shù),采用瀏覽器/服務(wù)器模式(B/S 模式)[1-2],設(shè)計一個符合本校實際的開放實驗室預(yù)約系統(tǒng)來解決這些問題,保障開放實驗室的有序運行。

      1 系統(tǒng)設(shè)計

      QR Code 碼,是由日本Denso 公司于1994 年9 月研制的一種矩陣二維碼符號,可通過圖象輸入設(shè)備或光電掃描設(shè)備自動識讀以實現(xiàn)信息自動處理,是矩陣式二維條碼的典型代表[3]。本設(shè)計將根據(jù)用戶預(yù)約信息生成的二維碼當作“鑰匙”,只有遇到正確的“鑰匙”,門禁端才會打開門鎖,允許進入實驗室。系統(tǒng)主要由在線網(wǎng)站、數(shù)據(jù)庫和門禁端硬件設(shè)備兩部分組成,在線網(wǎng)站用于預(yù)約及生成二維碼,門禁端硬件設(shè)備用于實驗人員的身份認證。其中門禁端硬件設(shè)備主要包括ESP8266 模塊和GM65 二維碼識別模塊,ESP8266 是一款超低功耗UART-WiFi 透傳模塊,專為移動設(shè)備和物聯(lián)網(wǎng)應(yīng)用設(shè)計,可將用戶的物理設(shè)備連接到Wi-Fi 無線網(wǎng)絡(luò)上,系統(tǒng)的電路如圖1 所示。

      圖1 電路圖

      基于二維碼的開放實驗室預(yù)約系統(tǒng)可以實現(xiàn)在線預(yù)約使用實驗室,其工作流程如圖2 所示。用戶訪問網(wǎng)站,預(yù)約成功后,使用智能手機獲取門禁授權(quán)二維碼。用戶在預(yù)約時間到達實驗室,通過門禁端的二維碼識別模塊GM65 掃描手機二維碼,二維碼信息將通過ESP8266 模塊發(fā)送到服務(wù)器端,與數(shù)據(jù)庫中的預(yù)約信息進行驗證。最后,門禁端根據(jù)返回的驗證結(jié)果判斷是否打開由ESP8266 驅(qū)動的門閘,同時OLED 顯示屏會顯示相應(yīng)的提示信息。如果預(yù)約二維碼信息正確,則OLED 顯示屏顯示“預(yù)約信息正確”,閘機打開,如果二維碼信息錯誤,顯示屏顯示“無此預(yù)約”。二維碼只能使用一次,成功掃碼后,服務(wù)器端會在預(yù)約記錄表中將進入標志位flag 置零,令該預(yù)約信息失效。用戶完成實驗后,從另一側(cè)門禁掃碼離開,這時只需判斷是否有該預(yù)約信息,標志位flag 是否為零,系統(tǒng)記錄用戶離開實驗室時間。

      圖2 系統(tǒng)工作流程

      2 系統(tǒng)的實現(xiàn)

      2.1 線上網(wǎng)站

      線上網(wǎng)站主要實現(xiàn)用戶注冊登錄、提交預(yù)約、預(yù)約記錄、個人信息維護、以及實驗室管理員審核預(yù)約等功能,網(wǎng)站功能結(jié)構(gòu)圖如圖3 所示。用戶登錄系統(tǒng)平臺,查看可開放的實驗室,選擇預(yù)約時間段,確認預(yù)約信息后提交申請。實驗室管理員登錄系統(tǒng),根據(jù)申請人提交的時間、實驗室現(xiàn)狀等綜合情況,決定是否同意預(yù)約申請,如審核通過,用戶則獲得門禁授權(quán)二維碼;另外,實驗室管理員還可根據(jù)系統(tǒng)存儲預(yù)約信息進行預(yù)約實驗的監(jiān)管、查詢和導出實驗室進入記錄,當出現(xiàn)預(yù)約爽約時,系統(tǒng)自動記錄,作為該用戶的預(yù)約優(yōu)先等級信用;最后實驗室管理員還可以根據(jù)實驗室的排課和使用情況,發(fā)布預(yù)約時間和信息。

      圖3 功能結(jié)構(gòu)圖

      圖4 網(wǎng)站二維碼

      網(wǎng)站選用靈活、輕便、安全的Flask 框架來實現(xiàn),后臺數(shù)據(jù)庫選用SQLite 數(shù)據(jù)庫,它占用資源非常低,處理速度更快[4]。服務(wù)器使用的是阿里云服務(wù)器,運行環(huán)境為CentOS+Python3+Gunicorn+Nginx[5-6]。網(wǎng)站支持手機瀏覽器、傳統(tǒng)PC Web 頁面兩種訪問方式,用手機掃圖4 的二維碼可以直接登錄本系統(tǒng)的主頁進行預(yù)約,使用起來非常方便。系統(tǒng)沒有設(shè)計App,這樣可以避免下載安裝、占用手機內(nèi)存等諸多麻煩。用戶提交的預(yù)約申請中包含預(yù)約時間,實驗室管理員可通過這些信息和實驗室的實際使用情況決定是否同意預(yù)約。如果實驗室管理員同意預(yù)約,則服務(wù)器調(diào)用第三方庫qrcode 來生成二維碼,然后把生成的二維碼圖片文件名存入到用戶預(yù)約記錄表中record 字段中,當用戶查看預(yù)約記錄時,前端頁面就會顯示相應(yīng)的二維碼圖片,二維碼信息包含用戶+預(yù)約實驗室名稱+預(yù)約時間段三部分內(nèi)容,圖5 為手機瀏覽器獲取的二維碼,用戶憑該二維碼到預(yù)約實驗室掃碼通過門禁。

      2.2 數(shù)據(jù)庫

      數(shù)據(jù)庫設(shè)計在系統(tǒng)開發(fā)中發(fā)揮著至關(guān)重要的作用。一個設(shè)計良好的數(shù)據(jù)庫不但可以有效地存儲的數(shù)據(jù),而且還可以提高系統(tǒng)的運行效率,以及有利于系統(tǒng)開發(fā)和后期維護。結(jié)合本系統(tǒng)的實際功能需求分析,設(shè)計了6 張表,這6 張表分別為管理員信息表、普通用戶信息表、預(yù)約記錄表、預(yù)約信息表、實驗室信息表、系統(tǒng)消息表。管理員信息表(admin)用來存儲管理員的相關(guān)信息,普通用戶信息表(users)用來存儲普通用戶的相關(guān)信息。預(yù)約記錄表(book_record)用來存儲預(yù)約記錄的相關(guān)信息。如圖6 所示,id 字段是主鍵,具有唯一性,類型是integer 型,存儲的是數(shù)據(jù)在表中的序號。record 字段的約束為非空,類型為string 型,存儲的是用戶預(yù)約申請通過后,用來生成二維碼的信息。用戶在門禁端掃碼后傳過來的二維碼信息,就是要與record字段存儲的信息作比較,驗證是否有這個預(yù)約。預(yù)約信息表(book_info)用來存儲普票用戶提交的預(yù)約申請的相關(guān)信息。實驗室信息表(lab_info)用來存儲實驗室的相關(guān)信息。系統(tǒng)消息表(sys_mess)用來存儲管理員發(fā)布的消息的相關(guān)信息。

      圖5 系統(tǒng)生成的二維碼

      圖6 預(yù)約記錄表

      2.3 硬件設(shè)備

      門禁端硬件設(shè)備主要包括ESP8266 模塊和GM65二維碼識別模塊,這部分在Arduino IDE 環(huán)境下進行研發(fā)[7]。它們主要完成兩個功能:一是二維碼識別;二是在Wi-Fi 狀態(tài)下與服務(wù)器通信,將二維碼信息上傳至數(shù)據(jù)庫進行驗證,從而控制門禁的開關(guān)。

      (1)門禁端識別二維碼信息

      用戶預(yù)約成功后,就可以使用手機在預(yù)約記錄中得到一個包含預(yù)約信息的二維碼,按照預(yù)約的時間到達預(yù)約的實驗室掃碼就可以進入實驗室。實驗室門禁端使用GM65 二維碼識別模塊來識別二維碼的信息。GM65 掃描設(shè)備模塊功耗低,工作電流小于150mA,一體化設(shè)計,體積?。恢С諸TL232 和USB(中文免驅(qū))接口;支持所有通用一維條碼及常用二維碼,可直接識別手機屏幕中的二維碼。將GM65 模塊與ESP8266 模塊通過串口通信方式連接,就可以把二維碼信息傳給ESP8266 模塊。

      (2)門禁端與服務(wù)器進行通信

      門禁端識別二維碼后還得把二維碼信息上傳到網(wǎng)站服務(wù)器端進行驗證,根據(jù)服務(wù)器端回傳的驗證結(jié)果來決定閘機的開關(guān)狀態(tài),這就要使門禁端與網(wǎng)站服務(wù)器端之間能夠進行通信。本設(shè)計使用HTTP 協(xié)議和ESP8266-12E 模塊來實現(xiàn)它們之間的通信。ESP8266-12E 模塊是ESP8266-12 的增強版,支持HSPI、UART、I2C、I2S,不僅帶有Wi-Fi 模塊可以實現(xiàn)聯(lián)網(wǎng)還可以拓展外圍電路,控制相關(guān)外設(shè)。每個門禁端都是與對應(yīng)的實驗室綁定的,當ESP8266-12E 模塊接收到GM65二維碼識別模塊傳過來的二維碼信息時,會在這個信息前加上當前實驗室的名稱,然后才會把這個合并后的信息通過HTTP 協(xié)議上傳到網(wǎng)站服務(wù)器端進行驗證。使用HTTP 協(xié)議實現(xiàn)這一通信的部分代碼如下所示:

      add_data 為合并后的信息。ESP8266-12E 模塊通過post[8]方法將add_data 變量發(fā)送到網(wǎng)站的“/from_esp”這一URL,在這個URL 中會先對這個信息進行編碼格式的轉(zhuǎn)換,因為使用HTTP 協(xié)議上傳時原信息的編碼

      格式已經(jīng)改變了。然后把add_data 變量中的信息拆分為合并前的樣子,即分為綁定的實驗室名稱和二維碼信息這兩部分,然后就可以對二維碼信息進行驗證了。在數(shù)據(jù)庫預(yù)約記錄表中查找是否有這個二維碼信息的部分代碼如下所示:

      (3)門禁端的響應(yīng)

      門禁端是根據(jù)服務(wù)器端返回的驗證結(jié)果而做出相應(yīng)的響應(yīng)的。在門禁端與服務(wù)器端之間定義一個簡單的通信協(xié)議:R 表示預(yù)約信息正確,E 表示非預(yù)約時間,I 沒有這個預(yù)約,B 表示非預(yù)約實驗室。網(wǎng)站服務(wù)器端返回的驗證結(jié)果將存到flag 變量,即flag 變量的值為R、E、I、B 中的一個,ESP8266 模塊根據(jù)flag 的值決定是否打開閘機以及驅(qū)動oled 顯示屏顯示什么信息。門禁端響應(yīng)的部分代碼如下所示:

      3 結(jié)語

      本文實現(xiàn)了基于二維碼的開放實驗室預(yù)約系統(tǒng),能為實驗室的開放提供強有力的支撐,為開放實驗室的管理提供一種新的思路,該系統(tǒng)具有:①多樣快捷的訪問方式,支持手機瀏覽器、傳統(tǒng)Web 頁面兩種訪問方式;②在線預(yù)約與門禁授權(quán)聯(lián)動,實現(xiàn)實驗室預(yù)約使用者身份的智能認證;③實現(xiàn)了實驗室智能化監(jiān)管,門禁系統(tǒng)有效記錄開放實驗室使用信息。本系統(tǒng)利用二維碼作為實驗室授權(quán)使用的“鑰匙”,再結(jié)合“互聯(lián)網(wǎng)+”技術(shù),實現(xiàn)開放實驗室預(yù)約的在線管理,破解了進入開放實驗室的身份認證難題?;诙S碼的開放實驗室預(yù)約系統(tǒng)的使用,能夠使高校實驗室在互聯(lián)網(wǎng)、智能裝備的引導下發(fā)生質(zhì)的飛躍,實現(xiàn)實驗室的現(xiàn)代化、智能化管理,為高校師生的工作和學習提供更大的方便。

      猜你喜歡
      服務(wù)器端管理員二維碼
      可以吃的二維碼
      我是小小午餐管理員
      二維碼
      童話世界(2020年32期)2020-12-18 18:15:41
      我是圖書管理員
      少先隊活動(2020年8期)2020-12-18 02:32:07
      我是圖書管理員
      少先隊活動(2020年7期)2020-12-18 01:48:39
      可疑的管理員
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      讓嚴肅的二維碼呆萌起來
      學生天地(2017年10期)2017-05-17 05:50:46
      二維碼,別想一掃了之
      在Windows中安裝OpenVPN
      沭阳县| 敖汉旗| 罗田县| 平远县| 恭城| 浠水县| 十堰市| 平山县| 抚宁县| 株洲市| 乌审旗| 延川县| 田阳县| 乐东| 永年县| 茶陵县| 兴安盟| 安徽省| 五指山市| 西和县| 高雄市| 石林| 简阳市| 城市| 城步| 西畴县| 瑞丽市| 怀远县| 勃利县| 大同县| 恩平市| 武隆县| 隆安县| 新蔡县| 高淳县| 肇东市| 青海省| 光泽县| 时尚| 万州区| 芜湖县|