一种智能家居指纹识别门禁系统设计方案
扫描二维码
随时随地手机看文章
指纹的唯一性和稳定性使其成为目前被广泛应用的生物识别技术之一,我爱方案网小编为大家介绍的智能家居指纹识别门禁系统设计方案采用FPI指纹识别模块,结合Linux设计,能够实现准确、快速地完成身份验证实现开关门功能和定时快速的报警功能。
在介绍设计方案之前,我们先来复习一下指纹识别技术的原理。
一、指纹识别的技术原理
指纹识别的技术原理是从指纹数据库中查找与采集指纹是否匹配的指纹数据,达到通过辨别身份实现开关门锁的目的。其基本原理如图1所示,指纹识别系统由指纹图像采集、指纹图像预处理、指纹特征提取、指纹特征匹配、特征数据库等几部分组成。指纹图像预处理采用了Gabor滤波的方法进行灰度图滤波去噪,通过将图像滤波后,对其进行二值化处理使各种噪声得到滤除或者修正。指纹特征提取是建立在对该点8邻点统计分析基础之上,特征点通过计算CN(Croosing Number)得到。指纹特征匹配的过程是计算两幅指纹相似程度的过程,在做指纹匹配前必须把不同的指纹图像校准,找到输入特征点集和模板特征点集之间的最佳变换。
指纹识别系统大体上可分为两个内容:指纹注册和指纹比对。指纹注册主要包括指纹采集、指纹图像预处理、特征点提取和特征值存储。指纹比对的前3步操作与指纹注册完全相同,在特征点提取后,生成的指纹特征值将与存储在指纹特征数据库的特征值作特征匹配,最后输出匹配结果。
图1指纹识别技术的基本原理
二、指纹识别门禁硬件原理
本文设计的指纹识别门禁系统主要由FPI指纹识别模块、Raspberry Pi主控模块、AVR模块3部分组成,该硬件结构如图2所示。
三方通讯实现用户的指纹录入和匹配,以及门锁的开关,并且以发送邮件的方式来监控门锁的状态。
。FPI指纹识别模块强大的图像处理功能对指纹识别非常灵敏,及时处理接收到的指纹信息,并与Raspberry Pi通讯;。Raspberry Pi模块,一方面控制AVR去检测门的开关状态以及开关门锁,另一方面控制FPI指纹录入和匹配,并在Raspberry Pi上建立数据库记录用户信息;。控制器AVR反馈给Raspberry Pi门的开关状态,并且控制电机来开关门锁,加强了在硬件方面的拓展,可通过硬件在更多方面对门进行监测。
此外,使用了无线通讯模块,避免了过多布线可能对原本门锁结构的破坏,使该系统的硬件组成方便快速。
图2指纹识别系统的硬件结构
指纹识别模块
指纹模块基于TI公司的TMS320VC5509高级数字DSP处理器为主核,芯片结构框图如图3所示。高精光学采集头(TFS-D0307),高速、稳定;标准UART接口通讯,标准8字节通讯协议,FPI完成处理接收到的指纹信息,并与Raspberry Pi主控模块通讯的工作。
图3指纹识别芯片FPI
图像采集芯片
FPI芯片上集成了图像采集芯片FPC1011F,FPC1011F指纹传感器是电容式半导体传感器件,该电容式指纹传感器利用了反射式探测技术,属于平面式采集指纹传感。相比传统的电容式传感器,它采集的是指头的真皮层,且对干湿手指有良好的适用性。FPC1011F的指纹采集原理:FPC1011F指纹传感器是由152×200个传感器阵列组成的,每一个阵列是一个金属电极,充当电容器的一极,安在传感面上的手指头的对应点则作为另外一极,其工作原理是基于变极板间距的电容式传感器,其电容量由式(1)确定:
(式中:C为电容量;d为极板间距;ε0为真空介电常数;εr为极板间介质的相对介电常数;s为极板的有效面积)
当手指接触传感器导电框以后,由式(1)可知,谷和脊因为离传感器阵列的距离不同,产生了不同的电容值C,经过运算放大电路,形成不同的电压值,通过内部的A/D转换,获得高质量的数字指纹图像。
处理器
该系统采用的主处理器是TMS320VC5509的32位定点高速数字DSP处理器,开发板的硬件包括:USB2.0 FullSpeed接口用以传输图像、视频等高速数据;片外外扩1M BytesFLASH;RTL8019AS网络接口芯片,实现以太网通讯太网电路;开发接口:UART(RS232)与上位机实现通讯;2路10位A/D输入接口。
主控模块
该系统采用的主控模块Raspberry Pi,代替了体积庞大的电脑实现控制功能。Raspberry Pi是一款基于ARM,操作系统采用开源的Linux系统的个人电脑,配备一枚700MHz的处理器,支持SD卡和Ethernet,拥有两个USB接口,以及HDMI和RCA输出支持。Raspberry Pi一方面控制AVR去检测门的开关状态以及开关门锁,另一方面控制FPI的指纹录入以及匹配并在Raspberry Pi上建立数据库记录用户信息。
利用这些硬件便可以进行嵌入式开发,快速的建立起指纹识别系统的硬件系统。
三、指纹识别门禁系统软件开发
该系统基于Linux操作系统,将自动指纹识别系统移植到嵌入式Linux,在Linux上进行指纹识别系统的软件设计,指纹识别系统的软件设计包括四个方面:上位机与AVR串口通讯、上位机与指纹模块串口通讯、维护MYSQL以及脚本发送报警。
1、指纹识别的处理过程
如图4所示:首先对串口进行初始化,打开串口设备0、1,设置串口参数,恢复串口未阻塞状态,串口初始化成功后执行用户选择功能:注册开门账号或注册关门账号或运行门禁服务[N/C/R].选择系统功能N后注册新开门用户,对同一指纹共获取3次图像,与传统采集一次图像相比,杜绝了随意采集造成的注册指纹不精和验证时不易识别的问题。采集指纹成功后输入用户个人信息,注册来自上位机数据库的新ID号并把该用户指纹信息存入数据库,然后选择是否继续添加用户。同理用户选择系统功能C后完成注册关门用户的操作。
用户选择系统功能R后运行门禁服务,一方面AVR查询当前门锁状态,例如把开门的命令赋给门的匹配状态,如果指纹匹配操作FPI和门的匹配状态相同,则由继电器接收来自AVR的开门命令,带动电机执行开门动作,并且记录当时时间,向本地数据库添加一条新的用户使用记录并写进日志里。同理执行关门命令。另一方面AVR查询当前电机电流等级,将门锁的实时开关状态,由谁执行开关门动作和当前门锁电机电流状态通过邮件的方式发送给用户,实现对门的实时监控,大大增强了门禁系统的安全性。
2、报警邮件的发送
图4系统工作方式流程图
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通过串口传送给邮件发送模块,将报警内容发送到指定的用户邮箱中来定时监控门锁的状态。
四、指纹识别门禁系统测试
为检验该指纹识别门禁系统的性能,打开Linux程序,注册登记4个不同的指纹,然后用不同的手指作指纹识别测试。分别观察指纹识别成功和失败时执行机构的动作,一共测试50次,部分系统测试结果的邮件正文内容如表1所示。
表1系统测试结果表
由表1可以看出,邮件的内容包括ID、Name、Action、Date四项。其中前七行是已注册过的用户通过指纹识别成功实现开关门锁,所以邮件中会有他们的ID号和姓名信息,而最后一行的用户指纹识别失败但是打开了门锁,所以邮件中将他们的ID和姓名设置为NULL,提醒管理员特别注意当时门锁状态以实现管理员对门状态的定时监控。
五、总结
文中基于指纹识别技术采用FPI指纹识别模块,结合Linux设计了指纹识别门禁系统,设计的一个特点是基于Linux操作系统,建立并发执行环境,提高CPU的利用率,并且用Raspberry Pi主控模块和无线通讯模块使得整个结构更加简单,对系统性能有一个明显的提高。另外一个特点是定时检测门锁状态并采用无线通讯方式向用户发送报警邮件,大大增强了门锁的安全性。实用测试结果表明,系统运行良好,能够进行可靠安全的指纹识别,准确、快速地完成个人身份的验证实现开关门功能和定时快速的邮件报警操作。在后续的工作中,系统可以实现现有程序的稳定性提升,以提高系统的性能使指纹门锁功能更加完善。