张团龙 付磊★ 王鹏
(1.内蒙古工业大学理学院,内蒙古 呼和浩特 010051;2.内蒙古工业大学招生就业处,内蒙古 呼和浩特 010051)
近几年,人们的生活质量日渐提高,安全意识也在逐步地提高[1],人们对门锁的要求越来越高,传统的门锁已经无法满足人们的需求,各种智能门锁如雨后春笋一般涌现出来,得益于指纹匹配算法性能的提高,指纹门锁在智能锁中的应用变得更加广泛。研究表明指纹在我们的一生中都是一样的,随着年龄的增长,即使手指变大或者变小,但指纹永远不会发生任何变化,因此指纹的唯一性满足了人们在安防性能方面的要求。
王瑞琦[2]等人采用ARM架构STM32芯片微处理器进行控制,利用密码识别与指纹识别双重保险进行指纹锁的设计。徐广宇[3]等人采用STC系列芯片作为指纹锁的主控,这种指纹锁相较于ARM为控制芯片的指纹锁系统成本更低,更适合大规模生产。目前市场上的指纹锁主要应用在高端的场所中,中低端的应用产品较少,然而中低端的市场是巨大的,因此非常有必要开发一款性价比高的指纹门锁。本文提出一种集成度较高,并且通过手机APP管理的指纹锁系统,兼顾密码与指纹双重识别,设置分级管理机制,提高指纹锁的安全性。黄慧灵[4]等人提出一款基于STC89C52单片机的指纹锁系统,硬件主要搭载识别电路、键盘矩阵电路、显示电路、报警电路。陈新芬[5]等人不仅仅设计了嵌入式的指纹密码锁,并且运用Proteus对系统进行了仿真,测试了系统的安全性和可靠性。陈钰闻[6]等人针对传统机械锁、卡片钥匙式电子密码锁等存在的问题,提出基于单片机的以指纹和密码锁共同控制的指纹锁,使系统更加安全、便捷和智能化。黄楚[7]等人将光伏发电与指纹锁相结合,然后制作了样品并且进行了仿真测试,结果表明:这类具有光伏发电功能与指纹识别功能的密码锁的稳定性良好,在移动设备或在可接受太阳光直射的场合使用,能够减少对供电设备的需求,使用更加便捷。王炼红等人为了解决指纹锁具有高性能却无法低功耗的矛盾,提出一种新的架构,基于双核的嵌入式系统,相对比现有设计方案来说, 具备更低的功耗以及更高的性能。
首先对指纹锁系统进行电路的设计,然后我们使用AltiumDesigner设计了电路原理图并绘制出PCB图纸,使用KeiluVision4进行程序的开发,然后使用Proteus7.0进行电路的仿真,并且设计手机APP,通过手机APP与蓝牙模块进行通信,控制整个系统的指纹录入与删除。当开门的人输入指纹时,嵌入式系统开始工作,STC8A单片机对预存的模块信息进行同步的处理。
系统共有两种工作模式:(1)用户访问模式;(2)管理员模式。在用户访问模式下,用户通过APP将自己的指纹进行采集和录入,录入指纹后可以通过APP进行指纹的重命名,同时还可以通过APP进行密码开锁,当指纹匹配或者密码成功,LED指示灯亮起,舵机转动,拉动门闩;相反,未经过授权的用户,输入指纹,无法匹配成功,蜂鸣器响起。在管理员的模式下,可以通过手机APP进行指纹的录入、删除,同时还可以修改管理员登陆密码,手机APP的使用让指纹锁的体积减小,提高了指纹锁的安全性,使指纹锁更加人性化。
系统框架设计如图1所示。
图1 系统框架设计
本指纹锁系统使STC8A8K64S4A12芯片作为主控芯片(图1),该系列单片机工作电压为2.0~5.5V,相比STC15系列增加了I2C接口,并且ADC增加3个引脚(AVcc、Agnd、AVref)提高采集精度,拥有四路串口,9个定时器,12路PWM,1路II2C串行总线,具有内部晶振。我们使用Altium Designer设计了电路原理图并绘制出PCB图纸,如图2所示。
图2 芯片原理图
传感器使用了乙木F1020SC电容半导体指纹模块,F1020SC模块通过串口与主控进行通信。
对于电容式指纹传感器,运用的原理是平板电容器的电容公式:
在传感器上有无数面积S相同的小的电容器极板,当手指贴上传感器,皮肤表面与传感器上的电容器极板一一匹配,每个平板电容器的电容值都不同,量级在几百pF。而这个电容值仅仅取决于传感器上的极板到指纹表面的距离d。贴在指纹嵴上的电容距离小而电容大,贴在沟上的电容器距离大而电容小。此时,传感器将给所有的电容充电,所有的电容都达到预先设计好的电压值,然后开始用标准放电电流进行放电。指纹脊和谷下电容放电的速度不同,脊对应电容放电速度快,谷对应电容放电速度慢,利用采样电路对放电率进行检测,然后输出一个8位信号,由于脊和谷具有较高的敏感性,原始指纹图像形成效果良好(图3)。
图3 指纹采集原理
JDY10M(图4红色区域)的工作频段为2.4GHz范围,调制方式为GFSK,最大发射功率为8dB,最大发射距离为50m,具有功耗低、尺寸小、信号强、数据传输稳定的特性,可以通过串口(SPI、IIC)和MCU控制设备进行数据传输。本系统采用了其中的串口作为MCU和用户手机APP之间的通信方式,较之于SPI、IIC通信,所依赖的引脚数量更少、消耗MCU的资源更少,进而有利于将MCU算力分配给系统控制上。
图4 蓝牙模块
舵机负责拉住门锁,收到由单片机接收到的信号,机臂拉伸打开门,舵机控制如图5所示。本文中所使用舵机型号为SG90,力矩为1.5kg/cm,工作电压为4.2~6V。舵机控制信号周期是20ms脉冲宽度调制信号(PWM),脉冲宽度范围是0.5~25ms,对应的舵盘位置是0~180度,表示线性变化。也就是说,当向舵机施加一定的脉冲宽度时,输出轴保持一定的角度。不管外部扭矩如何变化,在供给其他脉冲信号之前,输出角度不会变化到新的对应位置。舵机内有用于生成周期20ms、宽1.5ms的脉冲信号的基准电路和用于比较外部信号和基准信号来评估产生舵机旋转信号的大小和方向的比较器。单片机通过程序控制PWM信号的输出,降低了整个系统软件设计的复杂性,提高了程序的可维护性。不仅便于后续产品的重复更新,同时PWM输出相对稳定,舵机可以在各种复杂条件下控制门的开关。
图5 舵机模块
蜂鸣器报警模块主要部分:蜂鸣器、三极管、限流电阻三个部分。本文所采用的蜂鸣器为无源式蜂鸣器(图6),相比于有源蜂鸣器,无源蜂鸣器由于其是由电位控制从而避免了因PWM波不稳定导致的发声频率紊乱。当J7端有一个高电平进入时,PNP三极管TP1截止,蜂鸣器不通电;当J7端进入一个低电平时,PNP三极管TP1导通,蜂鸣器通电,并发出声音。图中通过电阻R2和PNP三极管TP1进行电流放大,从而驱动蜂鸣器。电阻R1是一个上拉电阻,阻止蜂鸣器误发声;当BEEP引脚输出低电平时,PNP三极管导通,蜂鸣器发声;反之当BEEP引脚输出高电平时,PNP三极管截止,蜂鸣器不发声。
图6 蜂鸣器原理图
图7为利用App Inventor开发平台进行APP制作的成果。Google App Inventor用户能够通过该工具软件使用谷歌Android系列软件自行研发适合手机使用的任意应用程序。本上位机程序主要是基于APP Inventor的第一版本的配置文件,其底层文件主要是适配于安卓6.0以上的安卓手机,而目前安卓用户的安卓版本大多数在6.0之上,因此依托该平台开发的APP具有良好的普适性。在开发结构上,本APP采用模块化设计:将整个APP拆解成蓝牙通信部分、人机交互界面、底层文件三个部分。通过我们设计的手机APP,与指纹锁的蓝牙模块进行连接,完成硬件部分与软件部分的通信,方便进行人机交互,可以进行新用户指纹注册、指纹锁名称修改、管理员密码修改以及直接开锁等操作。
图7 APP 功能
基于本系统设计的指纹锁实现了在APP上进行指纹的采集、录用、删除、密码开锁和非法用户使用报警等功能。相较于其他门锁有集成度高、体积小、操作简单和可拓展性强等优点。我们对本系统进行了综合性的测试,实验结果显示该指纹锁识别效率高且系统相对稳定。在研究指纹锁系统的过程中,发现市场上的指纹锁有很多的问题:指纹的识别精度低,核心技术无法独立,整体技术水平低下。因此在未来可以作为物联网产品,可以通过WIFI模块与手机APP进行连接,实现对指纹锁的远程管理,具有较强的实用性。