基于室内定位的学生签到系统设计

2017-03-24 06:01蒋航蔡秋枫
电脑知识与技术 2017年1期
关键词:室内定位安卓

蒋航+蔡秋枫

摘要:目前大多数校园学生上课签到以人工点名方式为主,不仅浪费课堂时间,而且往往存在学生代替签到的问题,不利于管理。该系统利用室內定位技术实现了在线考勤、考勤汇总、缺勤提醒等功能,方便任课教师以及班主任等及时了解学生考勤状况。

关键词:安卓;javaEE;学生签到;自动办公;室内定位

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)01-0054-02

Abstract:At present,most of the campus attendance is still based on the roll call by manual work.It is not just a waste of lesson time,but also arise substituting for each other to take attendance.It will be difficult for teachers to grasp the situation.The system implements the absenteeism reminder,attendance check,attendance statistics,online attendance,etc.It is convenient for teachers to be in the know of situation of campus attendance concurrently.

key words: Android; javaEE; campus attendance; office automation; indoor location

目前,高校任课教师大多以点名签到的方式进行学生出勤统计,以手工方式进行统计汇总,是非耗费课堂时间。为了解决传统考勤方式的问题,减少任课教师的负担,提高课堂时间利用效率,简化考勤方式,本系统利用创新利用室内定位技术结合安卓与javaEE技术开发设计了一款基于室内定位技术的学生签到系统。本系统采用安卓与JavaEE技术,Mysql作为数据库,实现了C/S结构的考勤管理系统。本系统有三种用户角色:学生、教师、管理员。学生用户可以查看自己的考勤情况,如有异议即可向系统管理员或者相关任课教师提出反馈。教师主要是查看授课班级的出勤情况,可以按照时间节点进行查询。管理员任务是负责学生课表、教师表、学生表、授课表等数据的导入导出日常维护工作。其中,学生端、教师端在Android端登录,管理员功能在Web端登录。

1 软件总体结构

本系统的管理员功能在Web端实现,Web端使用JSP技术作为表现层,采用BootStrap、JQuery等富客户端,提高浏览器兼容性。后台采用SpringMVC、Spring、Mybatis开源框架集成开发而成,引入mail、短信接口进行信息及时推送,减少了消息的延时。采用Mysql作为开发数据库,使得在数据库端控制部分数据完整性成为可能[1]。采取jExcelAPI开源模块读写excel文件,实现了从excel文件中读取学生表、教师表、班级表等功能,以及从数据库中导出数据到excel文件中去。

本系统的学生和任课教师用户是在Android端登录使用。安卓是以Linux为基础的开源操作系统,主要使用于便携设备,在人群中使用占比较大,可以满足签到系统大众化的需求[2]。安卓端采用最新的Matrial Design设计语言,这让按钮的弹入弹出、卡片的滑入滑出以及不同界面之间变化的方式都具有了物理质感,增强了用户体验。本系统利用Android本身的wifi工具包获取周边wifi的相关信息并执行相关算法完成了室内定位功能。本系统使用开源的HttpClient框架实现APP与tomcat服务器的长连接,并且实时接收来自服务器端的信息推送。

2 系统实现

本系统分为以下功能模块:

· 公共模块

· 学生模块

· 获取周边wifi相关信息

· 室内定位模块

· 查看出勤信息

· 反馈异常信息

· 教师模块

· 查看班级当堂课出勤信息

· 按条件查询出勤信息

· 导出出勤记录

· 审核反馈信息

· 管理员模块

· 学生、教师数据的增加、删除、修改

· 授课数据的增加、删除、修改

2.1 公共模块

该模块主要用于验证用户是否存在以及权限合法性,并根据不同身份返回不同标示码。将该模块作为通用接口,Web页面通过ajax异步交互技术实现,Android端使用HttpClient异步提交方式。如果用户输入用户名不存在或者密码错误则系统会返回有关错误提示。如果信息正确则会显示正确的页面或者Activity,用户可以根据功能模块进行相关操作。

2.2 学生模块

2.2.1 获取周边AP相关信息

首先建立包含响应扫描结果的接收器receiver,并且重载onReceive()方法,通过registierReceiver()方法将receiver向Android系统进行注册。getSystemService()方法用于获得操作WIFI设备的句柄。最后用startScan()方法启动扫描。扫描结果将包含WIFI的SSID(Service Set Identifier,服务集标识)、MAC地址、RSSI(Received Signal Strength Indication,接收信号强度)等数据。

2.2.2 室内定位模块

RSSI测距在15m的近距离精度在2m以内,可以满足基本的室内定位需求,大多数无限传感网络节点远距离定位误差较大[3]。本系统利用高校教学楼wifi充分覆盖这一前提,在此基础上采集了每个教室的可接收到AP的数据指纹,并且形成了一个指纹数据库。在指纹匹配阶段,对每个扫描到的AP(Wireless Access Point,无线访问接入点)的RSSI值,设定一个选择区间[RSSI-q,RSSI+q],q为多次试验得到的经验值并且可调整,在指纹库中查找满足此区间的位置点,若有n个位置点落在此区间范围,则这些位置点分别取权值1/n,在其他的位置点责取权值为0。对所有接收到的AP做如上处理后,选出权值最大的位置点为估计位置。本系统并非得到准确的室内位置,而是精准判断学生用户所在教室即可。

每次上课时,学生只需要打开APP,用自己学号与密码登陆即可,无需其他操作,即可自动完成签到,此时任课老师可及时查看班级学生的上课情况。

2.2.3 查看出勤信息

学生看查看当堂课的签到情况,也可以查看过去学生本人出勤情况。查询出的出勤信息分为缺勤、请假、正常三种情况。

2.2.4 反馈异常数据

由于RSSI的多径效应,可能存在定位失败而导致签到失败的情况。本系统通过引入短信与邮箱接口,学生可及时向任课教师或者管理员反馈异常数据,管理员及时更新升级定位指纹数据库并将修改后的签到情况手动更新正确。

2.3 教师模块

2.3.1 查看班级当堂课出勤信息

教师可及时查看当堂课学生的签到情况。安卓程序设计里,使用AChartEngine绘图引擎,在安卓界面里可直观显示哪些学生缺勤。

2.3.2 按条件查询出勤信息

任课教师可按照日期、学生姓名、上课地点等多种查询条件查询学生出勤情况,并以统计图表的形式将数据可视化。

2.3.3 导出签到表

任课教师可将查询到的签到情况导出xls、txt等常见数据格式,以便课后做更精确的统计等等。

2.3.4 反馈异常数据

任课教师若发现本系统出现异常,即可立即向管理员反馈,以便减少损失。

2.4 管理员模块

2.4.1 学生、教师数据的增加、删除、修改

学生、教师登陆的账号、所在班级等数据,学生具有只读权限,只能由管理员维护这些数据,不允许个人修改,密码除外,个人信息的录入工作主要由管理员负责,管理员可依照人员变动,对人员信息增加、删除和修改。为了避免手工录入工作量巨大,本系统在Web端设计了上传xls文件,服务器端从xls文件中读取数据并插入数据库中,所有的学生信息按照设定的表单字段存储在服务器的Mysql数据库中[4],节省了大量时间。

2.4.2 授課数据的增加、删除、修改

授课数据包括授课教室、授课教师、授课班级以及授课时间。授课班级与班级中学生是一对多关系。授课时间由管理员录入,如遇到节假日、考试放假等情况,并将其排除在授课时间之外,APP端接收到来自服务器端的推送,则在该时间段内不会执行签到功能。

3 结束语

本系统将互联网应用于签到系统,更加充分发挥了网络在高校教学资源中的重大作用,解决了点名签到浪费课堂时间等等问题。利用C/S架构实现了移动办公。以权限为驱动有利于模块化设计开发,不同角色拥有不用功能,达到了考勤目的,具有应用价值。

参考文献:

[1] 李燕, 胡雯. Mysql数据库存储引擎探析[J]. 软件导刊, 2012, 11(12): 129-131.

[2] 李宁. Android开发权威指南[M]. 北京: 人民邮电出版社, 2011: 2-10.

[3] 方震, 郭鹏. 基于RSSi测距分析[J]. 传感技术学报, 2007, 11(20): 2527-2529.

[4] 宋晓宇. 基于签到数据的短时间体验式路线搜索[J]. 计算机学报, 2013, 6(8): 1693-1703.

猜你喜欢
室内定位安卓
MIPS安卓平台上ARM二进制翻译系统
文物表情包
安卓系统或成智能汽车标配
一种基于安卓系统的手机侧抓包分析方法
安卓L未至安卓M来了!安卓首泄漏M系统