门禁考勤软件设计与实现Word文件下载.docx

上传人:b****3 文档编号:18503258 上传时间:2022-12-18 格式:DOCX 页数:29 大小:552.26KB
下载 相关 举报
门禁考勤软件设计与实现Word文件下载.docx_第1页
第1页 / 共29页
门禁考勤软件设计与实现Word文件下载.docx_第2页
第2页 / 共29页
门禁考勤软件设计与实现Word文件下载.docx_第3页
第3页 / 共29页
门禁考勤软件设计与实现Word文件下载.docx_第4页
第4页 / 共29页
门禁考勤软件设计与实现Word文件下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

门禁考勤软件设计与实现Word文件下载.docx

《门禁考勤软件设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《门禁考勤软件设计与实现Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。

门禁考勤软件设计与实现Word文件下载.docx

根据13.56MHZ门禁考勤软件的原理,可以将该考勤管理软件分为以下几个部分:

刷卡识别、信息管理。

刷卡识别:

该功能可以利用13.56MHZ电子标签卡实现考勤识别,该识别功能主要分为两步:

接收读卡器串口数据(如图1.1所示)、解析卡的数据(如图1.2所示)。

图1.1接收读卡器串口数据框图

图1.2解析卡的数据框图

信息管理:

由数据库包含的用户表和考勤日志表功能可以实现添加、删除或修改门禁卡信息。

门禁考勤软件系统功能结构框图如图1.3所示:

图1.3门禁考勤软件系统功能结构框图

1.3设计环境

1.软件环境

(1)QT是一个多平台的C++图形应用程序应用框架,QT是完全面向对象的,很容易扩展,并且允许真正的组件编程。

QTCreator可以实现代码的查看、编辑、界面的查看、以图形化的方式编辑、修改、编译等工作;

甚至在PC环境下还可以对应用程序进行调试。

调试QTCreator还是一个跨平台的工具,它支持包括Linux、MacOSX以及Windows在内的多种操作系统平台,使得不同的开发工作者可以在不同的开发平台下共享代码或协同工作。

(2)超级终端:

Windows自带的超级终端可以在PC端使用串口通信来对实验箱进行控制,将编译生成的文件下载到实验箱上并运行。

2.硬件环境

物联网多网技术综合教学开发平台B版(以下简称实验箱),重在研究不同网络在物联网中的各种应用,包含RFID技术、Zigbee、BlueTooth、Wifi、GPRS等各种数据通信方式,可应用于物联网专业教学、项目开发等方向。

该系统聚集了传感器网络、RFID射频、WIFI无线网、GPRS通讯、蓝牙技术、二维码扫描等物联网相关技术平台,涉及技术比较广泛。

实验箱结构如图1.4所示。

功能特点:

实验箱提供了全面的开发工具和配套资料,最大程度的激发学生兴趣,巩固学习效果,方便了学习和应用。

该平台的特色是:

实验箱将模拟电子、数字电子、电路设计、信号处理、传感器原理与检测、单片机技术、RFID技术、BlueTooth技术、Wifi技术、Zigbee通信、GPRS通信、嵌入式技术等相关知识融会贯通,涵盖了当前物联网行业最热门最尖端的技术,实现了多网融合,让学生可以灵活应用各科知识,发挥创新能力。

实验箱为高校老师和学生们提供当前最受欢迎的嵌入式技术。

学生通过实践能够熟悉嵌入式开发的流程,掌握相关软件和调试工具的使用方法。

采用源码开放的Linux操作系统采用源代码开放的Linux操作系统。

图1.4实验箱实物图

老师和学生不仅可以阅读Linux系统的源码,而且可以自己配置和修改部分代码,定制个性操作系统。

由于Linux相关的网络资料、书本资料很丰富,因此在学习或开发过程中如果遇到问题,就可以在相关论坛得到帮助,缩短技术攻关的时间,提高学习或工作效率。

实验箱具有一键还原功能,通过该功能在做完实验后,可将实验箱恢复到初始状态,方便管理节约检查配置时间。

第2章详细设计方案

2.1顶层方案图的设计与实现

顶层方案图实现13.56MHZ门禁考勤软件的逻辑功能。

在Linux系统下的Qt软件中将该代码编译,再将编译好的文件从Linux中复制到Windows系统下。

在Windows系统下需要使用串口通信软件来对实验箱进行控制。

通常情况下,使用Windows系统自带的“超级终端”工具即可。

在超级终端中,执行命令“ipconfigeth0-i192.168.87.130-m255.255.255.0-g192.168.87.1”,即可为实验箱手动配置IP地址,如图2.1所示。

图2.1手动配置实验箱的IP地址

其中,-i后面的参数是实验箱的IP地址;

-m后面的参数是子网掩码;

-g后面的参数是网关地址。

如果不需要网关,可以将-g和其后面的参数省略。

设置完成之后,需要执行“servicenetworkrestart”命令重启网络服务,使设置生效。

需要注意的是,实验箱的IP地址需要设置为与电脑同一个网段,例如,在本例中,电脑的IP地址为“192.168.87.1/255.255.255.0”,而实验箱的IP地址为“192.168.87.130/255.255.255.0”。

打开“我的电脑”,在地址栏中输入ftp:

//开发板的IP地址,在超级终端中执行命令“chmod+x”,为文件增加可执行权限。

最后执行“./”命令,即可运行13.56MHZ门禁考勤软件程序。

2.2功能模块的设计与实现

该13.56MHZ门禁考勤软件由刷卡识别和信息管理两个部分组成。

信息管理模块将信息录入后才可以进行刷卡识别。

信息管理模块还可以进行考勤信息的添加、修改和删除。

刷卡识别模块可以通过13.56MHZ电子标签实现考勤管理,具体通过电子标签的id号进行对门禁卡的识别。

2.2.1信息管理功能的实现

该门禁考勤管理的实现主要是在Qt中搭建了一个考勤系统管理的界面,再通过ManageWidget这个类来实现具体的信息管理功能

(1)门禁考勤管理的界面如下图2.2所示

图2.2门禁考勤管理的界面

(2)具体的实现过程

在ManageWidget中定义了7个类,分别为:

onCardReaded(constQString&

cardid)、updateUserTable()、updateLogTable()、on_addBtn_clicked()、on_delBtn_clicked()、on_modifyBtn_clicked()、on_refreshBtn_clicked()。

分别实现了信息的添加、修改、删除、更新等功能。

具体的实现过程如下所示:

ManageWidget:

:

ManageWidget(QWidget*parent):

QWidget(parent),

ui(newUi:

ManageWidget),

usrEditDlg(newUserEditDialog)

{

ui->

setupUi(this);

updateUserTable();

}

~ManageWidget()

deleteui;

voidManageWidget:

cardid)

usrEditDlg->

setCardId(cardid);

updateUserTable()//用户的更新

userTable->

clear();

DBCardc;

if(c.first())

{

QTreeWidgetItem*item;

do{

item=newQTreeWidgetItem(ui->

userTable);

item->

setText(0,QString:

number(c.id()));

setText(1,c.cardid());

setText(2,c.name());

}while(c.next());

}

updateLogTable()

logTable->

DBLogl;

if(l.first())

logTable);

number(l.id()));

setText(1,l.date().toString("

yyyy-MM-ddhh:

mm:

ss"

));

setText(2,l.cardid());

}while(l.next());

on_addBtn_clicked()//添加信息

if(!

usrEditDlg->

isHidden())

return;

intcurrentRow=ui->

currentIndex().row();

qDebug()<

<

"

logtableselectedindex:

currentRow;

if(currentRow>

0){

QTreeWidgetItem*item=ui->

currentItem();

setCardId(item->

text

(2));

setName("

);

else{

setCardId("

if(usrEditDlg->

exec()==QDialog:

Rejected)

cardId().isEmpty())

QMessageBox:

warning(this,tr("

Warning"

),tr("

CardIDcan'

tbeempty!

name().isEmpty())

UserNamecan'

DBCard:

addCard(usrEditDlg->

cardId(),usrEditDlg->

name());

on_delBtn_clicked()//删除信息

QList<

QTreeWidgetItem*>

selItems=ui->

selectedItems();

while(selItems.count())

QTreeWidgetItem*item=selItems.first();

delCard(item->

text

(1));

deleteitem;

selItems.removeFirst();

on_modifyBtn_clicked()//修改信息

if(selItems.count())

setName(item->

updateName(usrEditDlg->

on_refreshBtn_clicked()//刷新

updateLogTable();

on_pushButton_clicked()

//删除login卡的记录

logItems=ui->

while(logItems.count())

QTreeWidgetItem*item=logItems.first();

delLogCard(item->

//删除当前cardid

logItems.removeFirst();

2.2.2刷卡识别功能的实现

刷卡功能的实现主要是在Qt中搭建了一个刷卡显示信息的界面,刷卡时显示卡号和与之关联的姓名,再通过ClockInWidget这个类来实现具体的刷卡识别功能

(1)刷卡显示界面如下图2.3所示

图2.3刷卡显示界面图

(2)具体实现过程

在ClockInWidget类中定义了6个函数:

ClockInWidget(QWidget*parent)、~ClockInWidget()、updateTime()、updateDateTime()、onCardReaded(constQString&

cardid)、on_pushButton_clicked()。

分别实现了类的构造、日期的更新、卡的读取、刷卡事件的响应等功能。

具体的实现过程如下:

ClockInWidget:

ClockInWidget(QWidget*parent):

//ClockInWidget类的构造

QWidget(parent),

widget)

updateDateTime();

timer=newQTimer(this);

timer->

setInterval(1000);

setSingleShot(false);

connect(timer,SIGNAL(timeout()),this,SLOT(updateTime()));

start();

~ClockInWidget()

deletetimer;

voidClockInWidget:

updateTime()

QDateTimed=QDateTime:

currentDateTime();

secondNumber->

display(d.time().second());

if(d.time().second()==0)

minuteLabel->

motionToNumber(d.time().minute());

if(d.time().minute()==0)

hourLabel->

motionToNumber(d.time().hour());

if(d.time().hour()==0)

dayNumber->

display(d.date().day());

if(d.date().day()==1)

monthNumber->

display(d.date().month());

if(d.date().month()==1)

yearNumber->

display(d.date().year());

updateDateTime()//更新日期

QStringname=DBCard:

findName(cardid);

cardIdEdit->

setText(cardid);

nameEdit->

setText(name.isEmpty()?

tr("

Nosuchperson!

):

name);

//清理读卡状态字符显示

labelScan->

setText("

Scanningcard:

+cardid);

DBLog:

addLog(cardid);

//启动扫描卡的过程

ui->

Scanningcard..."

MainWidget:

rfidIEEE14443->

getCardId();

第3章编程下载与硬件测试

3.1编程下载

在Linux系统下的Qt软件中将本软件代码编译,再将编译好的文件从Linux中复制到Windows系统下。

在超级终端中设定好开发板的IP地址,如图3.1所示。

将编译好的程序下载到该IP地址对应的文件夹中,即完成了下载过程。

图3.1手动配置试验箱的IP地址

其中,-i后是试验箱的IP地址,-m后面的参数是子网掩码,-g后面的参数是网关地址。

并且,实验箱的IP地址设置要与电脑的在同一网段。

设置完成后,执行“servicenetworkrestart”命令重启网络服务,使设置生效。

3.2硬件测试及结果分析

1.利用物联网多网技术综合开发平台实现门禁卡的识别和信息管理功能。

在超级终端中为Attendance文件增加可执行权限,并运行它如图3.2所示:

图3.2运行Attendance程序

2.程序运行之后,可以在LCD上看到图3.3所示的界面:

图3.3Attendance主界面

3.“Clockin”界面为刷卡界面,在此界面下,刷卡时会显示卡号和与之关联的姓名,如果该卡没有记录,则Name栏将显示“Noshchperson”,如图3.4所示:

图3.4刷卡无效时的界面

4.在“Manage”页面中,可以对用户信息进行管理,并可以查看考勤记录,如图3.5所示:

图3.5Manage界面

5.点击“Add”可以打开添加用户界面,如图3.6所示:

图3.6添加用户界面

6.添加用户之后,再次回到“Clockin”界面,此时刷卡将会显示用户名,如图3.7所示:

图3.7刷卡有效时的效果

参考文献

[1]单承赣.射频识别(RFID)原理与应用[M].北京:

电子工业出版社,2012

[2]物联网多网技术综合开发平台实验指导书[M].北京:

凌阳科技有限公司,2013

[3]熊茂华等.嵌入式Linux实时操作系统及应用编程[M].北京:

清华大学出版社,2011

[4]厦华.无线通信模块设计与物联网应用开发[M].北京:

电子工业出版社,2011

[5]多网综合开发平台B版使用说明书[M].北京:

[6]周华.射频识别RFID技术原理与应用实例[M].北京:

人民邮政出版社,2008(12)

附录(关键部分程序清单)

#include"

UserEditDialog.h"

ui_UserEditDialog.h"

ClockInWidget.h"

ui_ClockInWidget.h"

MainWidget.h"

ui_MainWidget.h"

rotatenumberlabel.h"

#include<

QFile>

QDebug>

UserEditDialog:

UserEditDialog(QWidget*parent):

QDialog(parent),

UserEditDialog)

sftKeypad->

changeRecver(ui->

nameEdit

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1