Int国际信号处理、通信、电力与嵌入式系统会议(SCOPES)‐2016
基于Arduino和Raspberry Pi的考勤记录与汇总系统
迪拉杰·苏内赫拉,IEEE高级会员,电子与通信工程系,JNTUH工程学院,印度特伦甘纳邦贾吉蒂亚尔卡里姆纳加尔‐505501,dhirajsunehra@yahoo.co.in
V. 苏伦德·古德 电子与通信工程系 JNTUH工程学院,印度特伦甘纳邦贾吉蒂亚尔卡里姆纳加尔‐505501 veeragonisurender@gmail.com
摘要
在许多学校和学院中,教师手动在考勤登记册中记录学生的出勤率。随后这些数据被输入计算机,并计算学生出勤的汇总百分比。这种方法导致工作重复,并增加人力需求。本文实现了一种基于Arduino和树莓派微控制器板的考勤记录与汇总系统(ARCS)。使用Arduino实现考勤记录设备(ARD),而树莓派则作为Web服务器。采用ZigBee技术将出勤数据从考勤记录设备传输至服务器。利用PHP语言创建网页,以显示该机构各班级每位学生出勤的汇总百分比。该方法的优点是用户友好、安全且经济实惠。
关键词 —考勤记录设备;Arduino ATmega328P微控制器;ZigBee;树莓派网页服务器;Python语言;PHP
一、引言
在记录学生出勤时,许多机构仍在采用传统方法,即教师人员逐一念出学生姓名/学号,并在考勤登记册中标记其出勤或缺勤情况。整个学期/年度的出勤情况均记录在考勤登记册中,在整个会话结束时生成出勤率报告。这种人工记录出勤并将数据输入计算机系统以计算出勤率的方法十分费力,增加了人力需求。同时,由于需要在较短时间内输入大量数据,容易在数据录入过程中产生错误。
为了克服现有系统的缺点,实现了一种考勤记录与汇总系统(ARCS)。该系统包含两个硬件部分,即发射器和接收器。考勤记录设备(ARD)构成发射器部分。图1显示了ARD的框图。它由Arduino微控制器板、键盘、液晶显示屏和ZigBee发射器组成。教师人员通过键盘在考勤记录设备(ARD)上输入考勤信息。输入的数据将在液晶显示屏上显示,并通过ZigBee发射器发送至树莓派网页服务器(图2)。
接收部分由基于ARM 11树莓派的Web服务器、ZigBee接收器以及用于连接网页的Wi‐Fi路由器组成(图2)。树莓派从ZigBee接收器接收考勤数据,将其存储在文件中,然后计算所需的出勤率。随后,信息将被上传到网页上。
II. 文献综述
林等人采用了一种基于身份证中射频识别标签的技术来识别每个人。这种方法简单、快速且安全[1]。阿梅娜·卡通等人实现了一种基于生物特征的考勤系统,该系统通过识别学生的虹膜自动记录学生出勤[2]。库里亚科斯和维尔马克使用射频识别硬件结合Java编程来收集和自动化考勤信息[3]。普里扬卡·瓦格等人比较了各种人脸识别算法,并提出了一种基于人脸识别的考勤系统架构。该技术有助于减少虚假考勤和代签的可能性[4]。莫哈末努尔等人实现了一个基于安卓的考勤管理系统,其中包括一个用于扫描学生身份证并验证其在场情况的应用程序[5]。
III. 硬件描述
A. 考勤记录设备(发射器部分)
1) Arduino Uno开发板的主要特性:
考勤记录设备(ARD)的组件应体积小巧,采用电池供电且功耗低,并能够高速传输所记录的考勤数据。为此,选用了基于AVR ATMega328P的Arduino Uno微控制器板,该板为8位精简指令集计算机(RISC)。Arduino Uno开发板如图3所示,具有14个数字I/O引脚和6个模拟输入引脚。该Arduino开发板可通过USB线连接至PC,配备2KB的静态随机存取存储器(SRAM)[6]。
2) 键盘的工作原理:4 × 4键盘:
图4显示了4 × 4键盘[7]的接线图。初始状态下,所有开关均处于释放状态,列被写入逻辑1,行被写入逻辑0。当按下任意一个开关时(例如连接C2和R2的开关),如图5所示,相应的行和列将被接通(短路)。这会使该列C2(初始为高电平)变为低电平,从而识别出被按下开关所对应的列。
接下来,软件将进行行扫描,以识别与被按下开关对应的行。这是通过依次向每一行发送逻辑1来实现的。当向第二行写入逻辑1时,第2列将变为高电平。利用此逻辑,可以检测到被按下的按钮。
3) 液晶显示屏操作模式:LM016L 16×2字母数字液晶显示屏用于显示班级中出席学生的出勤数据。该液晶显示屏有16个引脚,如图6所示[8]。它工作在4位LED模式下。进行通信时,使用四个高序位(D4‐D7),而四个低序位(D0‐D3)不连接。数据分两步发送到液晶显示屏:首先发送四个高序位,然后发送四个低序位。
4) ZigBee收发器:
图7显示了TarangF4 ZigBee收发器。ZigBee模块的电力消耗低于蓝牙和Wi‐Fi。这些模块在2.4 GHz频率下运行。ZigBee收发器对之间的通信距离约为100米。
B. 树莓派网页服务器(接收部分)
1) 树莓派开发板概述:
考勤记录设备包含ARM11 700 MHz处理器、Video Core IV 多媒体协处理器(GPU)以及512 MB的SDRAM(图8)。它是一款小型计算机,运行Linux操作系统。它配备四个USB端口、HDMI端口、一个以太网端口和音频输出。
2) Wi-Fi路由器:
路由器可用于为各种有线和无线设备提供互联网连接。使用工作在2.4 GHz频率范围、数据速率为150Mbps的D‐Link路由器将树莓派连接到互联网。
IV. 软件工具
为开发所提出的考勤记录与汇总系统(ARCS),使用了包括Arduino IDE、Python、ExtraPuTTY和PHP在内的多种软件工具。
A. Arduino IDE
Arduino集成开发环境(IDE)工具包含文本编辑器、控制台以及用于常见功能的各种按钮和菜单。该工具用于编写嵌入式代码,以实现键盘、液晶显示屏和ZigBee发射器等各类设备的接口连接。通过连接Arduino硬件,它可以上传程序,并实现Arduino与各种互连模块之间的通信。
B. Python语言
Python是一种用于许多树莓派应用程序的高级编程语言。其语法允许用户用比C++和Java更少的代码行编写程序。它支持面向对象、命令式和函数式编程风格。学生出勤率汇总的程序是用Python语言编写的。
C. ExtraPuTTY
ExtraPuTTY是一种通过输入开发板的IP地址来初始化树莓派开发板的软件工具。在开始会话之前,将使用控制面板配置PuTTY。它是一个免费的开源终端模拟器、串行控制台和网络文件传输应用程序。它可以支持多种网络协议,例如SCP、Telnet、rlogin和原始套接字连接。
D. PHP语言
为了获得理想的结果,有时需要将PHP代码与HTML代码结合使用。PHP代码的执行是按步骤进行的。PHP代码执行后,客户端会从其服务器接收输出结果。
五、实验设置与原理图
图9显示了与Arduino AT mega 328P微控制器板连接的多个模块的考勤记录设备实验装置。通过键盘输入考勤信息并在液晶显示屏上显示的程序已使用Arduino IDE软件进行测试,并烧录至微控制器中。ZigBee发射器用于将学生出勤信息传输至服务器端的ZigBee接收器。
图10显示了树莓派网页服务器的实验设置。它包括Wi‐Fi路由器、树莓派和ZigBee接收器。ZigBee接收器用于接收来自Arduino开发板上ZigBee发射器的学生考勤数据。Wi‐Fi路由器用于将存储在树莓派中的汇总考勤数据上传到网页。
ARD的模块框图如图11所示。小键盘的行引脚(R1‐R4)连接到ATMega328P微控制器(Arduino)的PD2、PD3、PD4和PD5引脚(数字引脚2、3、4、5)。小键盘的列引脚(C1‐C4)连接到ATMega328P(Arduino)的PD6、PD7、PB0和PB1引脚(数字引脚6、7、8、9)。液晶显示屏的数据引脚D4、D5、D6和D7连接到ATMega328P(Arduino)的PC0、PC1、PC2和PC3引脚(模拟引脚A0、A1、A2、A3)。液晶显示屏的Vss和接地引脚连接到Arduino的5V和GND引脚(ATMega328P的第20和19引脚)。液晶显示屏的RW和使能(E)引脚分别连接到ATMega328P(Arduino)的PB2和PB3引脚(数字引脚10和11)。ZigBee发射器的接地、Vcc和Rx引脚分别连接到ATMega328P(Arduino)的GND、5V和TXD引脚(第19、20和1引脚)。
树莓派Web服务器的模块框图如图12所示。其中,ZigBee接收器通过USB转串口线连接到树莓派开发板。使用ExtraPuTTY对树莓派开发板进行初始化时需要Wi‐Fi路由器,同时该路由器也将系统连接到互联网。
VI. 流程图
考勤记录设备上发生的各种事件的流程图如图13所示。
图14显示了接收部分(树莓派侧)发生的各种事件的流程图。
VII. 结果与讨论
当系统通电后,液晶显示屏上会显示“smart attendant system”消息。系统提示用户按年(yyyy)、月(mm)、日(dd)的顺序输入日期,各部分之间用逗号分隔。然后,用户/教师通过键盘输入班级,接着输入出席学生的学号,如图15所示。
为保存输入的出勤率,用户需按下回车(E)键。考勤数据随后通过ZigBee发射器传输至树莓派Web服务器。类似地,其他班级的教师人员使用考勤记录设备输入考勤数据,数据会显示在相应考勤记录设备的液晶显示屏上,并传输至Web服务器。本研究为简化起见,考虑了四个班级,每个班级十名学生。图16–18分别显示了2班、3班和4班的考勤记录。
小键盘上各个按键的描述见表I。图19显示了树莓派接收到的学生考勤数据。该数据存储在文件“suriweb1.html”中。
表I. 4 × 4键盘中各个按键的功能
| Keys | 功能 |
|---|---|
| 0 | 数字‘0’ |
| 1 | 数字‘1’ |
| 2 | 数字‘2’ |
| 3 | 数字‘3’ |
| 4 | 数字‘4’ |
| 5 | 数字‘5’ |
| 6 | 数字‘6’ |
| 7 | 数字‘7’ |
| 8 | 数字‘8’ |
| 9 | 数字‘9’ |
| B | 数字‘B’代表退格 |
| E | 数字‘E’代表回车 |
| S | 数字‘S’代表选择 |
| * |
,数字‘,’用于分隔数字
‘*’用于编辑出勤率 |
| # | ‘#’用于保存输入的出勤率 |
当用户/家长通过输入树莓派的IP地址打开网页时,可以选择班级。选择班级后,用户可选择查看当前日期/月份/全年出勤率。选定特定选项后,将显示该班级每位学生的出勤情况以及出勤率的汇总百分比。若学生当天出勤,则对应日期显示“1”,若缺勤则显示“0”。用于选择班级和选项(即当前日期/月份/全年出勤率)的程序代码使用HTML语言编写,网页的创建采用PHP语言。
图20–22 显示了在网页上展示的各个班级的学生考勤信息。每个学生在某一天的出勤情况以一行的形式显示。还显示了每个学生在指定期间内的出勤率百分比。在本研究中,我们假设每个班级有10名学生,并且排除节假日,获得了一周的结果。
VIII. 结论
所提出的考勤记录与汇总系统原型可用于管理学校、学院及其他机构的日常和定期考勤数据。该系统使家长能够通过互联网连接设备随时随地了解其子女的考勤信息,非常实用。同时,该系统有助于学校管理部门减少录入考勤所需的人力,并降低通过短信发送考勤详情的成本。
基于Arduino与树莓派的智能考勤系统
223

被折叠的 条评论
为什么被折叠?



