基于Linux系统指纹识别门禁系统设计

  2.2 主控模块

  该系统采用的主控模块Raspberry Pi,代替了体积庞大的电脑实现控制功能。Raspberry Pi 是一款基于ARM,操作系统采用开源的Linux 系统的个人电脑, 配备一枚700MHz 的处理器, 支持SD 卡和Ethernet, 拥有两个USB 接口, 以及HDMI 和RCA 输出支持。Raspberry Pi 一方面控制AVR 去检测门的开关状态以及开关门锁,另一方面控制FPI 的指纹录入以及匹配并在Raspberry Pi 上建立数据库记录用户信息。

  利用这些硬件便可以进行嵌入式开发,快速的建立起指纹识别系统的硬件系统。

  3 指纹识别系统软件开发

  该系统基于Linux 操作系统, 将自动指纹识别系统移植到嵌入式Linux,在Linux 上进行指纹识别系统的软件设计,指纹识别系统的软件设计包括四个方面: 上位机与AVR 串口通讯、上位机与指纹模块串口通讯、维护MYSQL 以及脚本发送报警。

  3.1 指纹识别的处理过程

  首先对串口进行初始化,打开串口设备0、1,设置串口参数,恢复串口未阻塞状态,串口初始化成功后执行用户选择功能: 注册开门账号或注册关门账号或运行门禁服务[N/C/R]。选择系统功能N 后注册新开门用户,对同一指纹共获取3 次图像,与传统采集一次图像相比,杜绝了随意采集造成的注册指纹不精和验证时不易识别的问题。采集指纹成功后输入用户个人信息,注册来自上位机数据库的新ID 号并把该用户指纹信息存入数据库,然后选择是否继续添加用户。同理用户选择系统功能C 后完成注册关门用户的操作。

  用户选择系统功能R 后运行门禁服务, 一方面AVR 查询当前门锁状态, 例如把开门的命令赋给门的匹配状态,如果指纹匹配操作FPI 和门的匹配状态相同,则由继电器接收来自AVR 的开门命令,带动电机执行开门动作,并且记录当时时间,向本地数据库添加一条新的用户使用记录并写进日志里。同理执行关门命令。另一方面AVR 查询当前电机电流等级,将门锁的实时开关状态,由谁执行开关门动作和当前门锁电机电流状态通过邮件的方式发送给用户,实现对门的实时监控,大大增强了门禁系统的安全性。

  3.2 邮件的发送

  Raspberry Pi 上的ARM 通过RS 232 串口接收来自AVR定时地对门禁状态和电流状态的查询信息,并编写Shell 脚本程序,利用wifi 通过串口传送给邮件发送模块,将报警内容发送到指定的用户邮箱中来定时监控门锁的状态。

  这一部分完成信息的打包并将报警内容发到指定邮箱中的功能。AVR 定时检测门的状态和当前电流的状态,当没有人执行开关门操作时,door.log 的内容为“0”,当有人执行开关门操作或者电流超过一定数值时,door.log 内容为“1”,其中开关门锁包含两种情况:一是已注册的用户通过指纹识别成功实现开关门锁;二是没有注册过的用户指纹识别失败但是打开了门锁。文件夹从数据库调用这一数据并将数据发送到指定用户的邮箱里,然后door.log 重新变为“0”,如此循环检测门的状态。

  Raspberry Pi 上的ARM 通过RS232 串口接收来自AVR定时地对门禁状态和电流状态的查询信息, 并编写Shell 脚本程序,利用wifi 通过串口传送给邮件发送模块,将报警内容发送到指定的用户邮箱中来定时监控门锁的状态。

  4 系统测试

  为检验该指纹识别门禁系统的性能,打开Linux 程序,注册登记4 个不同的指纹, 然后用不同的手指作指纹识别测试。分别观察指纹识别成功和失败时执行机构的动作,一共测试50 次.

  邮件的内容包括ID、Name、Action、Date四项。其中前七行是已注册过的用户通过指纹识别成功实现开关门锁,所以邮件中会有他们的ID 号和姓名信息,而最后一行的用户指纹识别失败但是打开了门锁,所以邮件中将他们的ID 和姓名设置为NULL,提醒管理员特别注意当时门锁状态以实现管理员对门状态的定时监控。

  5 结论

  文中基于指纹识别技术采用FPI 指纹识别模块, 结合Linux 设计了指纹识别门禁系统, 设计的一个特点是基于Linux 操作系统,建立并发执行环境,提高CPU 的利用率,并且用Raspberry Pi 主控模块和无线通讯模块使得整个结构更加简单,对系统性能有一个明显的提高。另外一个特点是定时检测门锁状态并采用无线通讯方式向用户发送报警邮件,大大增强了门锁的安全性。实用测试结果表明,系统运行良好,能够进行可靠安全的指纹识别,准确、快速地完成个人身份的验证实现开关门功能和定时快速的邮件报警操作。在后续的工作中,系统可以实现现有程序的稳定性提升,以提高系统的性能使指纹门锁功能更加完善。