基于物联网与Android平台的考勤系统设计与实现

时间:2022-10-05 12:28:43

基于物联网与Android平台的考勤系统设计与实现

摘要:射频识别技术是基于物联网的无线射频通信的非接触式自动识别技术,已广泛应用于公共交通、医疗、教育等领域。学生考勤是日常教学管理工作的重要环节,但传统考勤方式耗费大量上课时间,且已有的考勤系统大多基于Web端的研究,已难以满足当前需求。随着物联网技术的发展,使用Web Service与射频识别技术设计并实现了基于Android平台的考勤系统。测试表明,该系统运行流畅,实用性强,更加贴近生活,为教师教学与学生学习带来了极大便利。

关键词:物联网;Android;RFID;考勤系统

DOIDOI:10.11907/rjdk.161443

中图分类号:TP319

文献标识码:A文章编号:16727800(2016)010006704

0引言

学生考勤管理是加强学生管理、维护学校教学秩序、保证各项教学任务顺利实施的一个关键环节[1],也是加强学生纪律管理、约束学生日常学习与行为的必要手段[2]。目前,传统的考勤管理方式主要是通过教师课堂点名,从而掌握学生到课学习的信息[3]。当教师面对到课学生人数较多的情况时,采用这种传统的考勤管理方法将耗费大量课堂教学时间。鉴于此,本文使用RFID射频识别技术,基于Android平台设计与实现了一款考勤系统,该系统能够满足学生考勤管理需求,为师生带来了极大便利。

1系统功能

1.1硬件功能

系统硬件功能如下:①读卡器对射频卡的读写、射频信号处理以及数据传输;②射频卡用于存储个人信息,作为识别标签;③Android手机、平板或者虚拟机提供Android平台以确保考勤系统运行。

1.2软件部分

系统软件功能如下:①服务器响应服务请求,并进行处理,承担服务并保障服务;②数据库进行数据存储与更新;③Web Service对Android访问数据库进行数据交换构建桥梁[4];④上位机控制读写射频卡,对读写的射频卡数据进行处理,并与数据库进行数据交换;⑤Android平台给予用户对考勤系统功能的触发并提供操作可视化界面。

2系统设计

系统是在Windows 7操作系统下进行的开发,最低兼容Windows XP的操作系统,实际测试中未发生异常,具体的开发与应用环境如表1所示。系统采用C/S三层架构模式进行设计与实现,如图1所示,其中Android客户端为表示层,进行操作的界面可视化;HTTP服务器与SOAP协议为业务逻辑层,对数据业务进行处理;XML与上位机为数据访问层,直接与数据库进行数据交换。

考勤记录表用于临时存储学生的已经考勤记录,其中包括学号、课程编号、考勤日期等信息,不需要提前录入,当教师通过考勤系统提交缺勤信息后,此表清空。

3.2Web Service

SQL Server安装之后较占空间,Android程序运行于手机,若直接访问SQL Server,显然以目前的手机内存是不够的。在大量的资料查阅中,未发现Android直接连接SQL Server的方法,本系统通过一个“桥梁”――Web Service间接访问SQL Server。

服务端可表示为Web Service或Website,前者只是提供一种服务,而后者可以提供用户界面等具体页面,后者也即平时所说的“网站”。两者的区别为:Web Service 只提供程序和接口,不提供用户界面[5];Website 提供程序和接口,也提供用户界面(网页)。由于只是需要一个中介来访问SQL Server,因而使用Web Service即可。具体方法为:编写一个Website访问SQL Server,将获取的数据进行处理转换成XML格式[6],进而传递给Android客户端。

3.2.1服务器端程序设计(Web Service)

具体步骤为:①在Visual Studio 2010中新建一个Web Service工程;②服务器资源管理器中添加Microsoft SQL Server连接,并选择当前数据库,测试是否连接成功;③新建一个DBOperation类;④修改Service.asmx.cs中的数据库连接、数据交换代码;⑤运行程序,测试是否正常访问数据库并进行数据交换。

3.2.2客户端(Android端)程序设计

具体步骤为:①新建Android工程;②MainActivity.java中进行相关界面、控件的设计;③HttpConnSoap.java中进行soap协议的通信程序设计,其中根据返回值的不同,将其分为简单soap访问与复杂soap访问,从而应对不同类型的数据解析;④DBUtil.java访问数据库相关操作的程序设计。

说明:①这里DBUtil.java关于数据库函数的调用实际上是调用Web Service中已有的函数,即通过解析XML从而与数据库进行数据交换;②在Android4.0以后的版本中,只要涉及网络操作,必须使用多线程处理,否则无法正常运行;③当使用模拟器调试时,需更改数据库连接语句及url、ip地址,真机调试则不需要修改;④使用Android访问Web Service是在IIS服务器及网站搭建成功的基础上进行,如图2所示。

3.3Mifare S50

Mifare S50是采用NXP MF1 IC S50制作的非接触智能卡[6],通常简称S50卡或Mifare 1K,符合ISO14443A标准,主要性能参数如表7所示。

3.4读卡器与上位机

3.4.1读卡器

本系统设计使用RFID多功能读卡器LS6822B USB-CDC作为硬件支持。此读卡器为高频(13.56MHz),支持ISO14443A协议,目前已广泛应用于消费、机房、网吧、图书馆、会员管理、门禁、一卡通系统中。

读卡器上电后,LED呈现为红色常亮。内部初始化完成后,蜂鸣器鸣叫一次,LED呈现为绿色闪烁,此时读卡器处于自动寻卡状态。当适合的射频卡接近读卡范围时,蜂鸣器鸣叫一次,同时读卡信息返回到上位机软件。

发送“关闭自动寻卡”命令时停止读卡器对卡片的自动扫描,此时LED呈现绿色常亮。如果发送“启动自动寻卡”命令,读卡器将启动下一轮寻卡,此时 LED呈现为绿色闪烁。

使用串口指令操作卡片(如询卡、防冲突、选卡、读块、写块、COS指令)之前,必须关闭自动寻卡。对于不同接口的读卡器,需打开相应上位机通信软件才能正确接收或发送数据。此款USB-CDC读卡器支持WindowsXp、WindowsVista、Windows7、Windows8等系统。

3.4.2上位机

上位机是连接硬件与软件的中间件,提供射频卡与读卡器的数据交换及读卡器与用户的交互功能,其中包括获取射频卡的数据,将数据存入到数据库,并查询符合条件的数据进行显示。本上位机使用Visual C++ 6.0调用对应读卡器的API进行开发,具体功能如表8所示。

(2)自动寻卡。“自动寻卡”是读卡器出厂的默认设置:上电后自动寻卡,十六进制数据输出。当读卡器搜寻到合适的卡片后立即将包含 UID在内的数据返回到上位机,不需要人工干预[7]。①数据输出格式:卡类型代码+卡序列号(UID),均为十六进制;②卡类型代码:一个字节。此代码是自定义标识,不属于卡片内部编码;③卡序列号:4~8个字节,与卡类型相关,序列号均是卡片内部编码。

(3)使用方法。①用USB数据线连接读卡器到PC机,并安装串口驱动程序;②打开串口调试软件或者上位机,串口配置为:波特率任意,数据位8,停止位1,无校验位,十六进制接收和发送。若打开的是上位机则不需配置;③将射频卡靠近读卡器,等待其自动识读,或通过上位机软件发送命令。命令执行完毕,蜂鸣器鸣叫,同时将数据返回到数据库中。

4系统测试

考勤系统按如图3所示的步骤进行配置,其中前3步在服务器端操作,第4~7步在客户端操作。通过多台设备的测试,运行流畅,未发现异常,具有较好的健壮性与较强的稳定性。此系统基于物联网的RFID技术,使用C/S的三层架构模式进行设计与实现,简化了重复性的考勤工作,提高了工作效率,为教师工作提供了极大便利。

参考文献参考文献:

[1]陈东.基于Web的考勤系统的设计与实现[D].西安:西安电子科技大学,2010.

[2]章通,陈金玉.网络指纹考勤系统的设计与实现[J].计算机应用与软件,2011(2):7375.

上一篇:UML图到可执行代码的映射探究 下一篇:基于语义Web的物流管理系统研究