资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
沈阳航空航天大学课 程 设 计 报 告 课程设计名称:物联网综合课程设计 课程设计题目:13.56MHZ门禁考勤软件设计与实现 院(系):计算机学院专 业:班 级:学 号:姓 名: 指导教师: 完成日期: 沈阳航空航天大学课程设计报告 目 录第1章 总体设计方案21.1 设计原理21.2 设计思路31.3 设计环境5第2章 详细设计方案72.1 顶层方案图的设计与实现72.2 功能模块的设计与实现72.2.1 信息管理的实现82.2.2 刷卡功能的实现13第3章 编程下载与硬件测试173.1 编程下载173.2 硬件测试及结果分析17附 录(课设程序源代码)22-30-沈阳航空航天大学课程设计报告 第1章 总体设计方案1.1 设计原理 本课设题目名称为13.56MHZ门禁考勤软件设计与实现,在数字技术网络技术飞速发展的今天门禁技术得到了迅猛的发展。门禁系统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。需要刷卡进行考勤管理的门禁系统,门禁卡在发放最终用户使用前,经由系统管理员设置,确定可使用区域及用户权限,用户使用门禁卡刷卡进入管理区域,无门禁卡或权限未开通用户,不能进入管理区域。正是在这一应用背景下,本课设设计了一套基于13.56MHZ 的RFID 技术的智能门禁考勤管理系统。RFID 技术是一种非接触的自动识别技术。该技术的原理主要是利用射频信号和空间耦合的传输属性,从而能够对物体进行自动识别。RFID 技术在门禁考勤上发挥了很大的作用。卡读卡器以固定频率向外发出电磁波,在此设计中频率是 13.56MHZ,当感应卡进入读卡器电磁波辐射范围内时,会触发感应卡上的线圈,产生电流并触发感应卡上的天线向读卡器发射一个信号,该信号带有卡片信息,读卡器将电平信号转换成数字序号,以韦根协议传送给就地控制器,就地控制器将信息上传给上层控制器,最终上传给门禁服务器,门禁服务器将卡号与数据库内的信息进行比对,从而得到全部的卡片信息。RFID 系统主要由电子标签、RFID 读写器和天线三部分构成。每张门禁卡的RFID 标签都是唯一的电子标签,其内部信息需要用EEPROM 进行存储卡的各项信息;而RFID 读写器由RFID 控制器和RFID 天线构成,读写器主要用来读取和写入RFID 标签信息;而天线的作用就是用来传递RFID 读写器和RFID 标签之间的信息信号。1.2 设计思路根据13.56MHZ门禁考勤软件的原理,可以将该考勤管理软件分为以下几个部分:刷卡识别、信息管理。刷卡识别:该功能可以利用13.56MHZ电子标签卡实现考勤识别,该识别功能主要分为两步:接收读卡器串口数据(如图1.1所示)、解析卡的数据(如图1.2所示)。打开串口start(“COM1”) 检测串口数据 获取串口有效数据包onPortDataReady() 发射接收数据信号recvPackage() 数据包解析onRecvedPackage() 发射对应信号 图1.1 接收读卡器串口数据框图寻卡process_searchCard()数据打包IEEE14443Package()发送sendData() 等待信号获取卡号成功onFoundCard()读卡成功onReadCard() 图1.2 解析卡的数据框图信息管理:由数据库包含的用户表和考勤日志表功能可以实现添加、删除或修改门禁卡信息。门禁考勤软件系统功能结构框图如图1.3所示:门禁考勤软件刷 卡 识 别信息管理入 图1.3 门禁考勤软件系统功能结构框图1.3 设计环境1.软件环境(1)QT是一个多平台的C+图形应用程序应用框架,QT是完全面向对象的,很容易扩展,并且允许真正的组件编程。QT Creator可以实现代码的查看、编辑、界面的查看、以图形化的方式编辑、修改、编译等工作;甚至在PC环境下还可以对应用程序进行调试。调试QT Creator还是一个跨平台的工具,它支持包括Linux、Mac OS X 以及 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 系统自带的“超级终端”工具即可。在超级终端中,执行命令“ipconfig eth0 -i 192.168.87.130 -m 255.255.255.0 -g 192.168.87.1”,即可为实验箱手动配置IP 地址,如图 2.1 所示。图 2.1 手动配置实验箱的IP 地址其中,-i 后面的参数是实验箱的IP 地址;-m 后面的参数是子网掩码;-g 后面的参数是网关地址。如果不需要网关,可以将 -g 和其后面的参数省略。 设置完成之后,需要执行“service network restart”命令重启网络服务,使设置生效。需要注意的是,实验箱的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(const QString &cardid)、updateUserTable()、updateLogTable()、on_addBtn_clicked()、on_delBtn_clicked()、on_modifyBtn_clicked()、on_refreshBtn_clicked()。分别实现了信息的添加、修改、删除、更新等功能。具体的实现过程如下所示:ManageWidget:ManageWidget(QWidget *parent) : QWidget(parent), ui(new Ui:ManageWidget), usrEditDlg(new UserEditDialog) ui-setupUi(this); updateUserTable();ManageWidget:ManageWidget() delete ui;void ManageWidget:onCardReaded(const QString &cardid) usrEditDlg-setCardId(cardid);void ManageWidget:updateUserTable() /用户的更新 ui-userTable-clear(); DBCard c; if(c.first() QTreeWidgetItem *item; do item = new QTreeWidgetItem(ui-userTable); item-setText(0, QString:number(c.id(); item-setText(1, c.cardid(); item-setText(2, c.name(); while(c.next(); void ManageWidget:updateLogTable() ui-logTable-clear(); DBLog l; if(l.first() QTreeWidgetItem *item; do
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号