基于树莓派的指纹识别门禁系统的设计与实现

2017-06-20 17:21贺振宇廖真葛华森王鹏
现代经济信息 2017年7期
关键词:树莓派手机app指纹识别

贺振宇+廖真+葛华森+王鹏

摘要:本文综述了指纹识别技术,系统地分析了将树莓派、手机APP、门锁结合的设计与实现方法,最后就这种门禁系统的发展趋势进行了讨论。在不改变现有门锁结构的前提下,通过软件、硬件的高度结合,研究开发一套基于树莓派的指纹识别门禁系统,高效匹配指纹库控制开关门,实时检测门锁状态并通过手机APP向用户报告门锁信息和警报信息,从而实现实时的计算机警戒,大大增强门锁的安全性。

关键词:树莓派;指纹识别;门禁;手机APP

中图分类号:TP393.1 文献识别码:A 文章编号:1001-828X(2017)007-0-02

引言

在科技的不断进步浪潮下,把人体特征码和信息管理系统结合的安防受到不少企业的喜爱。树莓派是只有信用卡大小、大部分装载的是Linux操作系统、具备一般电脑的所有功能的卡片式电脑。据悉目前国内外已经出现利用单片机配合人脸识别模块实现的门禁装置,有的甚至能够采用邮件将门锁的实时状态发送到远程客户手中。指纹识别较人脸识别有着较低的成本和更广泛的应用,指纹作为人体特征,具有唯一性、稳定性和不易盗用等特点。 手机APP因为具有使用简便、反应迅速、通用性高等特点,在当今科技潮流下备受追捧,特别是针对于一些文化程度不高的人。以前使用电脑才能进行的功能诸如购物、转账、视频通讯等,现在利用手机APP都能够完成。

本系统考虑到人脸识别具有很大的不确定性,不能够保证识别的准确率,加之手机APP对于处于中老年人的管理人员来说可能比收发邮件更轻便简洁,同时还考虑到系统后期可能会有特殊的拓展。所以最终决定使用树莓派这种功能强大的微型电脑,配合指纹识别模塊,通过简单的外部电路设计,以及可以实时获取反馈信息的手机APP,组合成为一套安全高、稳定好、可深度扩展的指纹识别门禁系统。

一、系统硬件设计

本系统涉及到的硬件大致有FPM10A AS608光学指纹识别模块、树莓派2代B型、SY-P801 12V/3A门禁专用电源、LY-03 DC12V/24V电磁锁、SRD-05VDC-SL-C小型功率继电器,同时还配有一个8欧0.5w小扬声器,另外还用到杜邦线若干、网线若干。

1.指纹识别模块的原理与设计

(1)指纹识别模块的基本原理

指纹虽然只是人体皮肤中极小的一部分,但是它却包含了大量的信息。人体不同指纹的结构与纹路信息是独一无二的,这些信息被称为“指纹特征”。若将这些指纹特征与个人信息对应起来就形成了指纹库,这时候就可以通过比对指纹库里面的信息来进行用户的身份鉴定。一般的指纹识别系统都主要有以下几个过程:指纹获取、指纹图像预处理、指纹特征提取、指纹特征对比。指纹特征匹配是将两枚指纹进行比较,以确定它们是否来自于同一根手指头。指纹匹配是属于模糊识别的,需要将指纹细节特征点的数量、位置和所在区域的脊线方向这些等参数进行比较。

(2)指纹识别模块的介绍与使用

FPM 10A使用标准的串口与外界通信,默认的波特率为57600,可以与任何单片机,ARM,DSP等带串口的设备进行连接。模块系统提供了大量资源给用户系统使用。同时,模块也定义了一套通信协议,无论硬件上是采用UART还是USB接口,都共用相同的一套通信协议和指令集。

FPM10A模块共有23条指令,应用程序通过指令的不同组合,可以实现指纹识别功能。我们将这23条指令和衍生出来的操作封装成类,从而可以很方便地操控该模块,快速实现需要的功能。

2.树莓派的开发与设计

树莓派的操作系统选择上,我们采用较新的CentOS7 for ARM(Linux的一个分支系统)。该系统和树莓派的硬件十分契合,甚至于可以说是专为树莓派定制的,可以最大限度发挥树莓派的功用。

本系统使用了10800毫安容量的小米充电宝为树莓派供电,同时,使用了树莓派上的以太网口用于保障和服务器端的通信,指纹模块和树莓派的连接通过一根TTL转USB线接在树莓派的USB口上。

树莓派通过GPIO口输出控制信号,本系统只使用了21/22/23/24/25号针脚。发出的是3.3V的控制信号。

3.开锁机制的设计与实现

本系统还可以使用了LY-03 DC12V/24V电磁锁通过SY-P801 12V/3A门禁专用电源供电,因为树莓派输出的控制信号不足以驱动电源继电器的开关,故加装了一个SRD-05VDC-SL-C小型功率继电器。从而实现树莓派发出控制信号驱动电磁锁开锁这一流程。其中SRD-05VDC-SL-C小型功率继电器的VCC和GND均使用树莓派针脚提供的,另外继电器的高电平控制端接一个GPIO针脚(OUTPUT模式)。在程序的设计上,我们可以很方便地控制门锁开关。

对于门状态的监听,我们采用的方法是:从树莓派GPIO针脚引出一个1信号,门锁和门挡之间嵌一块铜片,之后再放回GPIO输入针脚。通过监听这个输入针脚,当门处于闭状态时,该信号为1,当门处于开状态时,该信号为0。

二、系统软件设计与实现

本系统涉及到软件(程序)编写的地方有:树莓派、服务端、客户端。树莓派上主要写入的是偏向于门锁的控制、监听程序;服务端是服务器上运行的服务于客户端的程序,同时也作为树莓派的上位机;客户端是直面用户的,主要为用户提供信息查询服务的程序。

1.树莓派上的程序设计

树莓派主控程序由C语言编写,主要作用如下:

(1)监听门的开闭状态

在前文开锁机制的实现中提到,对于门状态的监听是通过门锁和门挡之间嵌入铜片实现的,树莓派上设计了一个线程,专门用于监听这个信号。同时,如果门的状态由闭变成开,程序会发送验证请求到服务器,由服务器判断此次开门动作的合法性(即是否由用户输入指纹而发生)。如果服务器反馈正常,打开扬声器播报欢迎语音(可设置取消),监听程序等待门重新闭合,重新开始新的监听工作;如果服务器反馈异常,则打开扬声器播报警告。

(2)硬件控制

这一部分主要用于对指纹识别模块和门锁开关驱动的控制,综合运用了指纹识别模块的23条指令来实现系统的核心需求——指纹开锁。同时,该部分还与通信程序结合,实现远程开锁、开锁日志等功能。

以远程开锁流程为例,当用户在远程手机端点击开锁按钮后,手机APP发送请求至服务器,服务器解析出手机APP发送的数据包,先把操作记录到数据库中,然后按照树莓派与服务器的约定,等待树莓派读取服务器上的开锁指令。树莓派读取到指令后,开启一个让GPIO第21号针脚变高电平并持续1.5秒的线程。此时,电磁锁通电,锁舌缩进,即开锁。

2.服务器端的设计与实现

本系统中,服务器与树莓派之间的业务联系都是通过Socket连接,使用Java语言和MySQL数据库系统,与手机APP之间的业务联系都是通过HTTP协议,采用JSON数据格式,使用PHP语言和MySQL数据库系统。服务器端主要起到以下两个作用:

(1)接收并存储树莓派发来的安全信息:

树莓派每1.5秒携带树莓派的相关信息(如:树莓派的工作状態、指纹识别模块的工作状态、门的开闭状态等)访问一次服务器,服务器端接收这些信息后,根据分类,把这些信息存储到数据库里面。同时还读取数据库里面存储的发送到树莓派的指令队列(这些指令主要由用户从APP端发送过来),并返回给树莓派。此时,如果手机APP端没有特殊的指令要求,一般返回让树莓派正常工作的指令。这一部分从Java语言,通过Socket实现,使用了JDBC连接MySQL数据库。

(2)读取信息并反馈给手机客户端:

这一部分可以看作微型的信息服务系统,整个流程大致如下:由手机APP发送查询请求,接口程序从数据库系统里面找到相应的条目,然后加工处理成JSON数据返回给手机APP。手机APP读取到这些数据后,加载到界面上显示给用户看。其中,手机APP采用Java语言,基于安卓系统编写,接口程序使用PHP语言编写。

3.手机APP的设计与实现

手机APP的开发基于当前最流行的安卓平台的,软件分成前台页面、数据处理、业务逻辑、独立工具四层结构。限于篇幅,涉及到的软件工程中开发实施过程中的技术细节,本文不详加介绍。功能上,该APP具有查询门锁开关信息(如:门编号、开门人、开门所使用的指纹编号、详细时间等)、查询门锁异常状态(如:发生时间、持续时间、门编号等)、查询树莓派端硬件状态(如:系统时间、指纹模块工作状态、监听模块工作状态)等功能。

出乎意料的是,我们还很容易地就额外做出远程开锁这一功能,这也进一步说明了这种系统架构具有很强的可拓展性。

三、发展趋势

指纹技术这些年不断成熟与进步,同时也一步步扩大了民用市场。因为民用指纹识别技术是“可知主体”的,“比对”速度较快,准确率高,较之刑侦应用更易普及,所以具备了大规模推广和市场的基础。本文设计的基于树莓派的指纹识别门禁系统,可以定时检测门锁状态并采用无线通讯方式向用户的手机APP里发送信息以及警报信息,还大大增强了门锁的安全性。随着社会的发展,普通的单机门禁系统已经越来越跟不上小区以及景点的智能化发展,依赖树莓派这部功能强大的电脑进行改进不失为一个好的解决方案。

四、结语

本文设计并实现了基于树莓派的指纹识别门禁系统。与树莓派巧妙结合,并应用与智能手机等移动终端,增强了与用户之间的互动性,用户体验效果好,加强了门禁系统的安全性,具有更好地应用前景。

参考文献:

[1]王莹.基于指纹识别技术的智能门禁系统的设计[J].指纹识别技术,2014.

[2]陈伟利,韩成浩.基于指纹识别技术的网络式门禁系统设计[J].指纹识别技术.安防科技,2008,29(6):78-80.

[3]指纹识别技术的发展前景及四大类型.http://project.21csp.com.cn/c172/201408/73604.html.

基金项目:2016年江苏省高等学校大学生实践创新训练计划(scx1601)

猜你喜欢
树莓派手机app指纹识别
基于单片机指纹识别电子寄存柜设计
指纹识别技术综述
智能安全防盗探测小车
智能手机APP支持下的大学英语听力教学
基于手机蓝牙的无线智能控制系统的设计
基于大容量指纹识别的实时身份认证系统
基于嵌入式技术的农村医疗系统设计
基于线阵CCD的指纹识别实验