《教学综合管理系统》

山西大学软件学院李东立

【摘要】目前市场上的大多数指纹考勤机都不具备实时性,在导入数据,查看数据,导出数据等方面需要耗费管理员很大的时间和精力,这不符合这个时代解决问题所要求的高效性。虽然购买企业级考勤管理系统可以在一定程度上解决这些问题,但是这不仅需要花费大量资金,更重要的是不符合学生与老师之间相互的特定需求。所以我决定要做一个具备实时性、高效性,一个集签到、缴费、学生管理、课程管理为一体的,针对市场特定人群受体的定制化产品。学生可以指纹打卡签到,查看课程信息,老师可以接收实时签到信息,查看缴费信息。

【关键词】指纹打卡,收发短信、实时

引言:通过对学校周边一些教育培训机构的实地调研,我发现这些机构的考勤系统虽然也是利用指纹机进行签到打卡的,但是无一例外,都会需要特定的管理员去查看并整理签到信息,才能得到各学员的出勤信息,这样做其实很不方便,浪费了大量的时间成本和人力成本,更重要的是不具备实时性。

一、框架设计

1、硬件与软件的权衡

首先我想解决的是一般指纹打卡机的效率问题,就是不需要把指纹打卡机拆下来通过数据线连接到电脑上,然后将数据进行传输导入,管理员再逐个审核查看等繁琐的步骤。所以我面临的第一个问题就是如何实时接收签到信息。经过一段时间的思考,我觉得接收到一条具备实时性的通知短信是个挺不错的方法,那么一些硬件模块就可以发挥它自身的长处了。当与手机联系起来的时候,那么传输数据就成了接下来我所要面临的问题了——用什么来将硬件模块与手机联系起来呢?我第一时间想到的便是用一根数据传输线将二者连接起来,但这样又回到了起初那个问题上面,数据线是一个极其麻烦的存在,那么无线传输技术就很好的解决了这个问题。

此时我已经初步将手机和硬件模块联系了起来,意思就是短信已经可以顺利的发送到手机上了。当然,采集用户指纹特征并将其转化为数据上传保存是必不可少的,那么这个指纹打卡设备能显示当前时间、指纹录入成功或失败、签到成功或失败就是一项非常重要的功能,由此来看,硬件系统的初步功能就诞生了。

为了将硬件设备的功能发挥的淋漓尽致,那么一款合适的软件势必在其中充当衔接段统治级别的作用,软件的研发也就自然而然的纳入了此次项目的未来规划之中。

2、项目架构

整个项目是基于硬件设备之上的,同时软件的加入又为此项目增添了不少色彩,所以软硬兼施为我的团队在此次科研训练项目中定下了基调。明确了这个问题之后,软件的自身定位对我而言就是一个比较犹豫的问题:到底是做一款PC端的软件与数据库连接起来呢,还是做一款手机上的软件体现“极简主义”呢?考虑到以下几个因素:一是项目体现实时性是通过短信发送的方式实现的,而短信发送到手机上是比较容易查看的;二是之前已经做过一个PC端的学生信息管理系统了,这次想尝试新东西。所以抱着“挑战自我,直面困难”的良好心态,我们选择了之前从未接触过的手机端应用程序作为本次项目的“软实力”。

二、硬件实施

1、实现短信发送功能

我选择了SIM900A硬件模块,它是实现短信收发甚至打接电话的一个不错的选择。在调试的过程中,我选择了基于STM32F10VBT6开发板上进行。我将阐述大致的调试过程:

  • 将模块的VCC、GND与开发板的VCC、GND相连,电压要看模块的使用手册(我这里的接通电压是5V);
  • 将模块的RXD、TXD分别与开发板的TXD、RXD相接,注意一般为反接(我这里的开发板设计的为正接);
  • 将带有话费的手机卡装入SIM卡槽;
  • 接通电源之后,模块在寻找到信号之前的指示灯闪烁频率是每秒2次,找到信号之后指示灯闪烁频率变为每秒一次;
  • 打开串口调试工具(选择端口、波特率)或三网通软件,用AT指令测试通信是否成功,成功之后进一步输入拨打电话、收发短信的调试功能;
  • 还可以将模块的功能程序烧到STM32单片机中进行单机调试。

2、实现传输数据功能

我选择了蓝牙ATK-HC05-V11模块实现手机端与硬件端的数据传输,此模块的调试十分简单,将引脚的VCC、GND接到STM32的VCC和GND上,接通STM32的电源,打开电脑端的串口调试工具,输入AT指令进行调试(此过程可更改模块默认名称,设置密码,设置连接设备),回复OK时证明完成通信。手机端在安卓应用市场下载“蓝牙串口调试助手”后打开蓝牙,当检测到重命名的蓝牙信号时,证明调试成功;这里也可以使用我研发的手机APP来实现互连。

3、实现指纹录取功能

我选择了带内存的指纹识别模块,可将录好的指纹信息上传到自身的内存芯片中。这里我将阐述实现指纹识别功能的大致过程:首先将此模块按正确的接法接入到STM32板中,之后打开测试工具;选择通讯口及波特率修改后就可以添加指纹了,然后通“指纹1:1比对”,“指纹1:N比对”对添加的指纹进行验证;之后进行“采集指纹图像”、“取特定用户特征值”、“采集指纹特征值”,将数据信息上传到内置存储芯片中;接着对两组指纹进行比对,验证是否为同一用户;考虑到模块一次性可以录取多少组指纹,用户分别是谁以及安全性等问题,我分别通过“取用户信息”、“取模块总容量及用户总数”、“设置模块安全等级”等测试步骤对其做出多样化调试,完成此结构块的功能化实现。

4、实现菜单显示功能

我选择了JLX12864G-086型液晶显示模块,它既可以当成普通的图像型液晶显示模块使用(即显示普通图像型的单色图片功能),又含有JLX-GB2312字库IC,可以从字库IC中读出内置字库的点阵数据写入到LCD驱动IC中,以达到显示汉字的目的。具体的想法是能够在整个硬件模块上面显示简单的功能提示,为硬件提供一个透明化窗口,让用户根据屏幕上的提示完成基本操作,实现指纹录入、发送短信到、接收电话号码的设置以及一个当前时间的显示。在调试过程中,JLX12864G-086型液晶显示模块有12个引脚,根据STM32开发板的接线方式分别将ROM_IN(接PA7/SPI1_MOSI)、ROM_OUT(接PA6/SPI1_MISO)、ROM_SCK(接PA5/SPI1_SCK)、ROM_CS(接PA4/SPI1_NSS)、LEDA(接LED6)、VSS(接GND)、VDD(接VCC)、SCK(PB6/I2C1_SCL)、SDA(PB7/I2C1_SDA)、RS、RST、CS(这三个可接IO端任意三个接线柱,但要在硬件程序中特别声明)。

三、软件实施

1、Android开发

软以Android Studio为开发平台,Java为开发语言,构建手机APP项目工程,用H5语言进行界面结构布局。完成了以“Fingerprint”命名的手机APP应用程序开发。

2、软件界面

软件的初步定位设想是不通过应用市场的“蓝牙调试工具”显示蓝牙连接成功,通俗点讲就是不仅可以通过内嵌接口打开手机端的蓝牙功能,而且能够被硬件的蓝牙模块识别到本机,从而进行互联;其次内嵌按钮与硬件实现通信,通过定制专属按键实现短信一键发送至手机端的功能。在祖逖框架定位完成后,本APP名称暂定设置为我自己的名字,添加了“联系客服”、“检查更新”、“五星好评”、“帮助说明”等功能模块,完善一个软件的边缘化功能,增加用户体验性。

3、“串口调试”应用程序

在调试这些相关硬件模块的过程中,我发现每一个模块都需要配套专门的串口调试工具来调试,虽说模块少可以采用这样的方式,但是考虑到后续功能的延展以及最终模块结合起来的相互配合调试,这些工具都很难发挥到想要达到的效果,于是我以Qt为开发平台,C++为开发语言,写了一个集“串口通信”、“串口调试”为一体的应用程序,实现对整个硬件的组合调试功能。同时还增加了“流水灯”、“蜂鸣器”、“短信收发”、“LCD12864”、“红外热释电”等外设控制以及时间显示、矩阵键盘等功能。

四、综合管理

所有硬件模块调试通过之后基于STM32开发板组装到一块,连通综合“串口调试”工具,进行整体通信与连接。之后我以Keil V4为开发平台,C为开发语言,写好了硬件测试程序,通过J-Link烧录到STM32中,完成单机测试。在手机端安装.apk安装包,安装好后打开蓝牙与蓝牙模块相连接。用户对设备进行多组指纹录取(录取编号自增1,以此为默认设置),然后进入初步预设的功能测试阶段:用户在设备上录取指纹;液晶显示屏上通过菜单提示,通过矩阵键盘设置用户接收短信的手机号码及接收时间;用户再次进行指纹打卡,设备与内存芯片中上传好的指纹库进行比对;用户可以通过手机短信端回复特定指令(默认设置为1),手机APP端特定虚拟按键,设备指定按键端这三种方式对用户签到打卡的实时状况进行接收。

五、设备及其系统升级

在此项目完成初步功能实现的基础上,项目后续我准备在硬件端将指纹识别模块更替为人脸识别模块,所用的的技术会涉及到openCV等。软件方面我会新增PC客户端的应用程序,将界面与数据库连接到一起,真正做到学生信息、教师信息、缴费信息、课程信息的一体化管理,涉及到Java、SQL、C++等语言。Web端我将使用Python、H5、PHP这些语言进行开发,把学生对于课程的实时观看、实时下载,综合浏览等功能结合起来,实现真正的教务管理里。

六、项目总结

在此次科研训练项目中,通过对硬件的调试让我学会了很多关于硬件方面的知识,从而有了一定的知识储备,除此之外,我对STM32开发板产生了浓厚的学习兴趣,如果有机会我将重新对整个开发板的电路构造做进一步的深究,尝试自己对PCB画线。同时,Android开发是我以前从未接触过的知识领域,但是通过做手机端APP让我对此部分知识有了系统化的学习。QT平台上的开发让我多了一些项目实战经验,也再一次的对C++语言进行了全面的复习。Keil V4平台上的编好的程序可以通过J-Link烧录到单片机中,由此对嵌入式有了一定的掌握。对我来说,此次科研训练项目不仅给了我对知识框架进行重新整理归纳的机会,更多的是一次挑战,一次尝试。在项目开始之前,我和我的团队抱着一颗惶恐的心;在项目过程中,我们时而步履蹒跚,时而通宵达旦,心里充满压力;在项目收尾阶段,我怀揣着一颗感恩的心,感谢自己一年的坚持与努力,也感谢所有团队成员的帮助和鼓励。最后,我给这个设备起了一个叫做“菜鸟一号”的名字,以此来激励我们不断努力,不断学习,不断进步。

【参考文献】

《STM32F103VBT6中文参考手册》

《STM32F103VBT6英文数据手册》

《JLX12864G-086带字库》

《ATK-HC05-V11用户手册_V1.03》

《指纹识别模块用户手册》

《Android APP开发》

《教学综合管理系统》学术论文相关推荐

  1. 《教学综合管理系统》研究日志

    此研究日志主要记录2017年至2018年山西大学第十六期本科生科研训练项目的全部进展,每篇日志都标有详细的日期,地点,参与人员,对每个阶段的项目进展有一定的认知和总结,对未来的项目进展作出规划,并及时 ...

  2. 创业教学信息管理系统

    摘  要 计算机网络如果结合使用信息管理系统,能够提高管理员管理的效率,改善服务质量.优秀的创业教学信息管理系统能够更有效管理用户学习创业业务规范,帮助管理者更加有效管理用户学习创业,可以帮助提高克服 ...

  3. 计算机学校综合管理系统论文,学校综合管理系统的设计与实现毕业设计论文.doc...

    学校综合管理系统的设计与实现毕业设计论文 中央广播电视大学 毕业论文 学校综合管理系统的设计与实现 学生姓名: 郭 婷 婷 专业名称: 计算机信息管理 分 校: 陕西通信技术学院 学 号: 07724 ...

  4. levy 计算机辅助教学,计算机辅助教学在高校英语专业学术论文写作课程中应用.doc...

    计算机辅助教学在高校英语专业学术论文写作课程中应用 计算机辅助教学在高校英语专业学术论文写作课程中应用 [摘要]长期以来,全国各高校都为英语专业高年级学生设立学术论文写作课程,然而,传统的课堂教学模式 ...

  5. java-php-python-ssm幼儿园综合管理系统计算机毕业设计

    java-php-python-ssm幼儿园综合管理系统计算机毕业设计 java-php-python-ssm幼儿园综合管理系统计算机毕业设计 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  6. 华中科技大学期刊分类办法_紧跟国际前沿,拓展研究思路,立足国内实践,提升科研能力 —— 记国际期刊学术论文写作与发表研修班...

    为进一步增进国内高校外语教师对国际学术研究前沿和发展趋势的了解,提升其选题挖掘.研究设计.国际期刊学术论文写作与发表能力,外语教学与研究出版社联合武汉理工大学于2020年12月5-6日在武汉及线上同步 ...

  7. java毕业设计的健身俱乐部综合管理系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计的健身俱乐部综合管理系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计的健身俱乐部综合管理系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: ...

  8. java计算机毕业设计幼儿园综合管理系统源码+数据库+系统+lw文档+部署

    java计算机毕业设计幼儿园综合管理系统源码+数据库+系统+lw文档+部署 java计算机毕业设计幼儿园综合管理系统源码+数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  9. 基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

最新文章

  1. asp oracle9i 链接oracle,解决使用ASP无法连接ORACLE 9i数据库的问题
  2. NYOJ 23 取石子(一)
  3. python getopt argparse_python OptParse模块和argparse命令行解析的用法详解
  4. restful java客户端_如何在Java客户端调用RESTful服务
  5. Scala的集合类中的map方法和count 方法
  6. mysql数据库断电_MySQL 数据库忽然断电会丢数据吗转载
  7. python定义函数名typo错误_17个新手常见Python运行时错误
  8. sap系统搭建教程_SAP基础教程
  9. Flask 项目打包 线上部署
  10. Linux unison 效率,linux inotify+unison双向同步环境部署
  11. linux的目录以及作用
  12. python切片原理_彻底理解Python list切片原理
  13. 51单片机使用12M晶振串口乱码问题
  14. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 4 - 第一部分
  15. java.sql.time 格式_java.sql.Date,java.sql.Time和java.sql.Timestamp什么区别
  16. Simulink建模:一阶滤波模型
  17. python基础知识点集锦一
  18. IDEA背景颜色设置问题
  19. 免ROOT的计算机隐藏应用软件,华为免root一键删除系统内置自带软件
  20. Codesys的文件读取功能---G代码文件读取及运行

热门文章

  1. 锐龙r5-4600u性能怎么样
  2. c# opencv车牌识别_毕设有着落了!一套开源的,基于SpringBoot的车牌识别系统
  3. 花生壳动态动态域名解析路由器解析语法
  4. Docker 安装配置Crowd
  5. GitHub+Hexo 搭建个人博客(一)
  6. 民安汇智量表科普!满意度调查量表怎么选?
  7. SWIFT单一平台解决方案助力国家电投集团财务有限公司实现本外币一体、全球账户可视
  8. 使用YonBuilder移动开发平台开发视频会议App
  9. 怎么联系vue客服_Vue在线客服系统【开源项目】
  10. 云管平台如何纳管多云资源?