基于二维码的开放实验室预约系统

2020-08-07 14:43黄镇建陈泓昌
现代计算机 2020年18期
关键词:服务器端管理员二维码

黄镇建,陈泓昌

(韩山师范学院物理与电子工程学院,潮州521000)

0 引言

开放实验室是高校科学研究的承载体,是锻炼学生动手能力、创新能力以及进行实验教学的重要场所,开放实验室的建设也越来越受到高校的重视。如何适应高等教育发展趋势,提高大学生整体综合素质,是现阶段亟待解决的一项问题,要想收获良好的教学成效,离不开多元丰富实践教学内容及教学手段的有力支持。开放实验室的重点在于“开放”,学生可以根据自己的学习计划,预约实验时间和实验项目。实验室的开放说起来简单,实现却十分困难,诸如预约管理制度、开放时间,实验人员身份认证等问题,令国内外高校十分头痛。目前的门禁系统,大多是校园信息卡、指纹、人脸识别等,没有办法进行预约,因此,非常有必要借助互联网+的环境,利用信息和电子技术,采用浏览器/服务器模式(B/S 模式)[1-2],设计一个符合本校实际的开放实验室预约系统来解决这些问题,保障开放实验室的有序运行。

1 系统设计

QR Code 码,是由日本Denso 公司于1994 年9 月研制的一种矩阵二维码符号,可通过图象输入设备或光电扫描设备自动识读以实现信息自动处理,是矩阵式二维条码的典型代表[3]。本设计将根据用户预约信息生成的二维码当作“钥匙”,只有遇到正确的“钥匙”,门禁端才会打开门锁,允许进入实验室。系统主要由在线网站、数据库和门禁端硬件设备两部分组成,在线网站用于预约及生成二维码,门禁端硬件设备用于实验人员的身份认证。其中门禁端硬件设备主要包括ESP8266 模块和GM65 二维码识别模块,ESP8266 是一款超低功耗UART-WiFi 透传模块,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,系统的电路如图1 所示。

图1 电路图

基于二维码的开放实验室预约系统可以实现在线预约使用实验室,其工作流程如图2 所示。用户访问网站,预约成功后,使用智能手机获取门禁授权二维码。用户在预约时间到达实验室,通过门禁端的二维码识别模块GM65 扫描手机二维码,二维码信息将通过ESP8266 模块发送到服务器端,与数据库中的预约信息进行验证。最后,门禁端根据返回的验证结果判断是否打开由ESP8266 驱动的门闸,同时OLED 显示屏会显示相应的提示信息。如果预约二维码信息正确,则OLED 显示屏显示“预约信息正确”,闸机打开,如果二维码信息错误,显示屏显示“无此预约”。二维码只能使用一次,成功扫码后,服务器端会在预约记录表中将进入标志位flag 置零,令该预约信息失效。用户完成实验后,从另一侧门禁扫码离开,这时只需判断是否有该预约信息,标志位flag 是否为零,系统记录用户离开实验室时间。

图2 系统工作流程

2 系统的实现

2.1 线上网站

线上网站主要实现用户注册登录、提交预约、预约记录、个人信息维护、以及实验室管理员审核预约等功能,网站功能结构图如图3 所示。用户登录系统平台,查看可开放的实验室,选择预约时间段,确认预约信息后提交申请。实验室管理员登录系统,根据申请人提交的时间、实验室现状等综合情况,决定是否同意预约申请,如审核通过,用户则获得门禁授权二维码;另外,实验室管理员还可根据系统存储预约信息进行预约实验的监管、查询和导出实验室进入记录,当出现预约爽约时,系统自动记录,作为该用户的预约优先等级信用;最后实验室管理员还可以根据实验室的排课和使用情况,发布预约时间和信息。

图3 功能结构图

图4 网站二维码

网站选用灵活、轻便、安全的Flask 框架来实现,后台数据库选用SQLite 数据库,它占用资源非常低,处理速度更快[4]。服务器使用的是阿里云服务器,运行环境为CentOS+Python3+Gunicorn+Nginx[5-6]。网站支持手机浏览器、传统PC Web 页面两种访问方式,用手机扫图4 的二维码可以直接登录本系统的主页进行预约,使用起来非常方便。系统没有设计App,这样可以避免下载安装、占用手机内存等诸多麻烦。用户提交的预约申请中包含预约时间,实验室管理员可通过这些信息和实验室的实际使用情况决定是否同意预约。如果实验室管理员同意预约,则服务器调用第三方库qrcode 来生成二维码,然后把生成的二维码图片文件名存入到用户预约记录表中record 字段中,当用户查看预约记录时,前端页面就会显示相应的二维码图片,二维码信息包含用户+预约实验室名称+预约时间段三部分内容,图5 为手机浏览器获取的二维码,用户凭该二维码到预约实验室扫码通过门禁。

2.2 数据库

数据库设计在系统开发中发挥着至关重要的作用。一个设计良好的数据库不但可以有效地存储的数据,而且还可以提高系统的运行效率,以及有利于系统开发和后期维护。结合本系统的实际功能需求分析,设计了6 张表,这6 张表分别为管理员信息表、普通用户信息表、预约记录表、预约信息表、实验室信息表、系统消息表。管理员信息表(admin)用来存储管理员的相关信息,普通用户信息表(users)用来存储普通用户的相关信息。预约记录表(book_record)用来存储预约记录的相关信息。如图6 所示,id 字段是主键,具有唯一性,类型是integer 型,存储的是数据在表中的序号。record 字段的约束为非空,类型为string 型,存储的是用户预约申请通过后,用来生成二维码的信息。用户在门禁端扫码后传过来的二维码信息,就是要与record字段存储的信息作比较,验证是否有这个预约。预约信息表(book_info)用来存储普票用户提交的预约申请的相关信息。实验室信息表(lab_info)用来存储实验室的相关信息。系统消息表(sys_mess)用来存储管理员发布的消息的相关信息。

图5 系统生成的二维码

图6 预约记录表

2.3 硬件设备

门禁端硬件设备主要包括ESP8266 模块和GM65二维码识别模块,这部分在Arduino IDE 环境下进行研发[7]。它们主要完成两个功能:一是二维码识别;二是在Wi-Fi 状态下与服务器通信,将二维码信息上传至数据库进行验证,从而控制门禁的开关。

(1)门禁端识别二维码信息

用户预约成功后,就可以使用手机在预约记录中得到一个包含预约信息的二维码,按照预约的时间到达预约的实验室扫码就可以进入实验室。实验室门禁端使用GM65 二维码识别模块来识别二维码的信息。GM65 扫描设备模块功耗低,工作电流小于150mA,一体化设计,体积小;支持TTL232 和USB(中文免驱)接口;支持所有通用一维条码及常用二维码,可直接识别手机屏幕中的二维码。将GM65 模块与ESP8266 模块通过串口通信方式连接,就可以把二维码信息传给ESP8266 模块。

(2)门禁端与服务器进行通信

门禁端识别二维码后还得把二维码信息上传到网站服务器端进行验证,根据服务器端回传的验证结果来决定闸机的开关状态,这就要使门禁端与网站服务器端之间能够进行通信。本设计使用HTTP 协议和ESP8266-12E 模块来实现它们之间的通信。ESP8266-12E 模块是ESP8266-12 的增强版,支持HSPI、UART、I2C、I2S,不仅带有Wi-Fi 模块可以实现联网还可以拓展外围电路,控制相关外设。每个门禁端都是与对应的实验室绑定的,当ESP8266-12E 模块接收到GM65二维码识别模块传过来的二维码信息时,会在这个信息前加上当前实验室的名称,然后才会把这个合并后的信息通过HTTP 协议上传到网站服务器端进行验证。使用HTTP 协议实现这一通信的部分代码如下所示:

add_data 为合并后的信息。ESP8266-12E 模块通过post[8]方法将add_data 变量发送到网站的“/from_esp”这一URL,在这个URL 中会先对这个信息进行编码格式的转换,因为使用HTTP 协议上传时原信息的编码

格式已经改变了。然后把add_data 变量中的信息拆分为合并前的样子,即分为绑定的实验室名称和二维码信息这两部分,然后就可以对二维码信息进行验证了。在数据库预约记录表中查找是否有这个二维码信息的部分代码如下所示:

(3)门禁端的响应

门禁端是根据服务器端返回的验证结果而做出相应的响应的。在门禁端与服务器端之间定义一个简单的通信协议:R 表示预约信息正确,E 表示非预约时间,I 没有这个预约,B 表示非预约实验室。网站服务器端返回的验证结果将存到flag 变量,即flag 变量的值为R、E、I、B 中的一个,ESP8266 模块根据flag 的值决定是否打开闸机以及驱动oled 显示屏显示什么信息。门禁端响应的部分代码如下所示:

3 结语

本文实现了基于二维码的开放实验室预约系统,能为实验室的开放提供强有力的支撑,为开放实验室的管理提供一种新的思路,该系统具有:①多样快捷的访问方式,支持手机浏览器、传统Web 页面两种访问方式;②在线预约与门禁授权联动,实现实验室预约使用者身份的智能认证;③实现了实验室智能化监管,门禁系统有效记录开放实验室使用信息。本系统利用二维码作为实验室授权使用的“钥匙”,再结合“互联网+”技术,实现开放实验室预约的在线管理,破解了进入开放实验室的身份认证难题。基于二维码的开放实验室预约系统的使用,能够使高校实验室在互联网、智能装备的引导下发生质的飞跃,实现实验室的现代化、智能化管理,为高校师生的工作和学习提供更大的方便。

猜你喜欢
服务器端管理员二维码
可疑的管理员
二维码
二维码让政务公开更直接
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
让管理员管不了的名字
二维码,别想一扫了之
一种基于Java的IM即时通讯软件的设计与实现
当小小图书管理员
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用