基于Android的指纹考勤机系统集成研究及实战
2020-06-10刘中原刘伟韬
刘中原 刘伟韬
摘要:指纹考勤机本是工作生活场景中很常见的一个产品,技术已非常成熟,产品功能也较稳定。但目前市面上的大多数产品还是上一代的技术,内嵌的系统多以非常老旧Wince或者是Symbian为主,同时配合传统物理按键,使得体验性远不如现在的Android系统。为了在教学工作中给同学们演示产品开发的一般流程并鼓励他们的创新创业意识,特进行了本产品的技术攻关及项目实战,本论述主要从硬件选型、软件设计以及系统集成三个方面探讨基于Android的指纹考勤机的生命周期过程。
关键词:Andavid,指纹考勤,系统集成
中图分类号:TP273+.5 文献标志码:A
1研究背景
基于教学工作中给学生演示产品开发流程,结合目前市面上亟待进行技术升级的指纹考勤机,本论述主要研究了如何在目前比较流行的Android平台上进行指纹考勤机开发的流程和方法。首先硬件部分主要通过外部采购获取,毕竟在目前分工越来越精细的社会体系中,我们不需要开发一切东西,每个人都有明确的方向,只需要专注于自己擅长的领域即可;其次系统软件仍然采用开源的Android系统,并在此基础上开发应用软件实现与指纹仪模块的通讯,完成指纹采集及认证的功能需求,实现利用软件驱动的模式实现硬件间的系统集成进而形成产品。通过该研究,可以帮助同学们建立起一套基于现有软硬件平台资源,快速进行产品原型开发的思路和指南,引领同学们积极响应国家的双创实践,为后疫情时代的大学生就业开辟新的道路。
2硬件选型原则及实施
硬件选型主要考虑的因素是稳定性和软件算法的迁移便利性,硬件中的两个主要模块分别是指纹模块和Android开发板,考虑目标机型时,除了品牌因素外,最重要的还有接口因素,比如指纹模块目前主要有USB接口和串口两种,其中USB接口又比串口的开发便利性更高,基于厂家相应的SDK进行开发,进行简单方法的调用即可轻松驱动指纹的采集及验证,而串口则是基于比较原始的协议进行,开发板通过串口和指纹模块交互命令完成二次开发。显然,相对于基于SDK的开发,基于协议的开发的难度和复杂度都要高得多,但二次开发是不是便利性越高就越好呢,其实不然,这个要根据面向的对象来说,对应于开发人员来讲当然是越简单越好,因为这减轻了他们的压力和困难,但是对于产品本身,比如Android系统版本升级了,相应的SDK也要升级,而如果厂家的SDK如果跟不上系统升级速度的话,我们产品的升级就要被搁置。这时,如果采用原始的协议开发,不管所使用的系统平台如何变化,软件始終只是收发串口数据即完成功能的实现,而这一基本功能无论在任何系统里面都是可以轻易满足的。所以,此时对于产品本身而言,二次开发所依赖的协议越原始,后续的升级及迁移越简单,即便是迁移到不同的操作系统平台,所需要的改变的也仅仅是界面部分,功能逻辑部分仍可保持复用,这大大便利了后续的升级及平台迁移。基于该原则,指纹模块拟选用串口作为接口形式,同时串口以其稳定和广泛著称,无形中增加了产品的兼容性和应用范围。既然指纹模块选用了串口形式,这就要求Android开发板也必须具备串口连接,串口在90%的开发板中都是标配,因其定位即是工控和消费电子领域,作为从单片机中传承而来的接口形式一直广泛分布于各个层次的嵌入式终端,所以此时Android开发板的选型相对比较简单,找品牌稳定性较高的产品即可。同时门禁机要和未来客户的门禁系统对接,所以开发板应具备GPIO的输出功能,将门禁信号通过输出传递给继电器,通过搜索对比发现,GPIO和串口基本上是比较稳定的组合,所以,找到满足这些需求的开发板根本不是难事。
综上所述,基于产品稳定性和后续升级及迁移便利性的原则,得出如图1所示的硬件连接架构,根据该架构从市场上寻找满足条件的Android开发板和指纹模块即完成了硬件选型。
3考勤机软件设计
软件主要运行于Android开发板上,以APP的形式体现,围绕指纹仪的指纹采集和认证并辅助以相应的外围功能完成考勤的实施。软件系统从大的模块划分主要包括人员管理和考勤管理,其中人员管理主要是人员信息的维护特别是指纹信息的维护,在人员增删改查的基础上,可以对某个人的指纹进行登记、删除,常规情况下,一个人最多可支持10枚指纹的录入,一个人员多指纹的管理也是重要的功能设计;考勤管理主要包括指纹的认证考勤,考勤记录的存储、查询以及分析。除了这些业务功能,还包括系统级别的用户管理和配置信息管理,用户管理主要是对系统管理员的分级管理,配置信息管理用于设置并维护系统的参数,比如指纹模块连接开发板的串口编号、波特率等的设置。系统功能框架图如图2所示。
需要特别说明的是软件功能中的人员管理和用户管理,很多人对于这两项功能容易混淆,或者说认为这两项功能是重复的。首先人员管理中的人员是指该指纹考勤系统所管理的人员,是指公司的员工,使用该指纹考勤机完成考勤操作,而用户管理中的用户则是指对这套考勤软件实施管理维护工作的管理员,纯粹在系统功能上对软件进行配置维护,虽然这个系统的管理员也可能是公司的员工,也会像普通员工那样进行打卡考勤,但是他的岗位则是管理维护该考勤系统,指导员工在考勤机录入信息以及进行指纹打卡,他们的本质区别体现在人员是考勤机管理的对象,而用户则是管理考勤机的人。
4系统集成及实施
首先是硬件的底层连接,根据指纹仪模块的具体串口类型(RS232/RS485/TTL),找到开发板与之匹配的串口进行物理层的连接。连接完成后为了确保指纹仪和开发板通讯有效性,在开发板上运行串口调试助手等工具软件与指纹仪进行数据交互,参考协议数据看是否一致。如果不一致,首先检查波特率设置是否符合指纹仪的要求,收发线缆是否需要跳线,直至排除所有故障确保指纹仪与开发板正常通信。之后进行考勤软件的安装部署,安装完成后首先进行系统参数的设置保存以及管理员的设置,再测试用户管理及考勤管理,特别是用户的多指纹管理,指纹认证和考勤记录的正确性。最后,整体考勤机软硬件在功能的可用性和基本的稳定性都有保证的前提下,可以组织公司员工进行指纹采集并进入试运行阶段并时时监控软件运行异常和员工对于系统的改进建议。对于切实可采纳的建议应尽快修正进入下一版本,测试稳定后及时更新,保持系统持续稳定良性运行。
5实际效果及对教学的启发
本次考勤机的开发主要是在高职高专的项目式教学中向学生展示产品如何从无到有的开发,覆盖从市场调研、硬件选型、软件设计及开发和最终系统集成上线运行的全过程,让学生以实物实感的形式全程参与整个开发过程,掌握开发关键节点和技术细节。通过此项目的开发,学生能较好地理解产品开发过程并能较好地进行触类旁通和举一反三的实践,完成了诸如IC刷卡考勤机、宿舍IC门禁机等一系列小作品的全新开发,在给他们建立了一套标准开发流程的基础上,更培养了学生对产品开发的热情和自信,同时也更加坚定了我们以实际项目进行职业教育的基本理念,希望未来能将这种理念积极贯彻和推广下去,探索更多职业教育的心得和收获。