谭虹
摘 要:传统门禁系统已经不能满足人民对门锁的要求,针对这一变化设计了一款基于STM32F103RCT6(32位微控制器)的具有语音播报和一键关锁等人性化功能的智能指纹密码锁,采用密码解锁和指纹解锁。硬件采用基于STM32F205(32位高性能微控制器)的指纹模块进行录入指纹、处理图像、保存指纹、识别指纹等,使用全视角的OLED12864(有机发光二极管)液晶屏进行显示,使用可以把文字转化成声音进行输出的语音模块进行语音播报。软件包含各模块初始化配置和各模块功能的实现。系统的整体功能测试结果表明设计的智能指纹密码锁各项功能正常,系统更加人性化,可以用于柜子锁和门锁等多种场所。
关键词:指纹识别;智能密码锁;STM32;OLED;语音播报
中图分类号:TP368.1 文献标识码:A
Abstract: Traditional door-access control system may face many new challenges from people's requirements. An intelligent fingerprint password lock with voice broadcast and one keypress lock is designed based on STM32F103RCT6 (32 bit microcontroller), which adopts both password unlocking and fingerprint unlocking. Fingerprint module based on STM32F205 (32-bit high performance microcontroller) is used to input fingerprint, process image, save fingerprint and identify fingerprint. The full view OLED 12864 (Organic Light-Emitting Diode) liquid crystal screen is used for display and the speech module that can convert text into voice is used to broadcast voice. Software includes the initialization configuration of each module and the realization of each module function. Test results of overall system functions show that the intelligent fingerprint password lock runs normally, and the humanized lock system can be used to lock cabinets and doors.
Keywords: fingerprint identification; intelligent password lock; STM32; OLED; voice announcements
1 引言(Introduction)
信息技術的高速发展深入推进了数字化、网络化、智能化的融合发展,改善了人民的生活水平。人民对于门禁系统的安全性、便捷性和高效性的要求也在不断地提高[1]。与传统的机械锁相比,电子密码锁具有免钥匙、功能多等优势[2],人民也逐渐接受了电子密码锁,传统的机械锁将被电子密码锁逐渐取代。市面上有各种款式的电子密码锁:智能IC卡式、固定键盘式、指纹式、语音式、无线遥控式等[3]。“智能电子密码锁是智能家居的一个重要组成部分”[4],本文设计了一种基于STM32F103RCT6的智能指纹密码锁,采用密码解锁和指纹解锁两种解锁方式。添加了语音播报和一键关锁等功能,使智能指纹密码锁更加人性化,管理员模式提升了门禁系统的安全性。
2 智能指纹密码锁系统整体设计(Design of intelligent fingerprint password lock system)
2.1 系统架构设计
智能指纹密码锁系统包括硬件和软件两个方面,由STM32小型系统板、指纹识别模块、矩阵键盘模块、OLED液晶显示模块、语音模块、电控锁模块和电源模块组成,如图1所示。STM32小型系统板中的MCU与指纹模块进行信息交互,实现指纹的读取、录入和清除[1];通过显示模块实时显示键盘录入状态、录入提示信息、指纹录入状态等;矩阵键盘模块用于输入和执行相应的功能;可以通过MCU的控制来打开与关闭电控锁;语音模块在不同的状态和结果下进行语音播报。
2.2 系统功能
本系统可以进行密码解锁和指纹解锁,操作时可以观看屏幕的提示信息进行正确的操作,语音播报提示信息和指纹锁当前的状态,掉电后记忆密码,如果密码输入错误三次,则锁死键盘10秒。管理员模式可以进行密码的修改、所有指纹的消除、指纹的录入等,管理员模式可以提高指纹锁的安全性,在忘记密码时也可以输入管理员密码启用管理员模式。有市电供电和充电宝供电两种供电方式。
3 智能指纹密码锁系统硬件设计(Hardware design of intelligent fingerprint password lock system)
3.1 STM32小型系统板
STM32小型系統板的主控芯片是STM32F103RCT6。STM32F103RCT6采用32位的ARM Cortex-M3,有64个引脚。该处理器内置256kB的Flash闪存和48kB的SRAM,读写速度较快[5]。对比51单片机,STM32性能更强,性价比更高。
STM32小型系统板还包含有一个SPI FLASH芯片W25X16、一个OLED屏模块接口、一个标准JTAG/SWD下载口,能够满足该系统的需求。
3.2 指纹识别模块
指纹识别模块采用基于STM32F205(高性能ARM Cortex-M3 MCU)的UART Fingerprint Reader智能型模块。该模块内置高精度光学传感器,采用较成熟的商用指纹算法,可以进行录入指纹、处理图像、提取特征值、生成模板、保存模板、比对指纹和搜索指纹等[4]。存储器采用片内存储(可扩展存储器),可保存1000枚指纹,认假率<0.001%(安全等级为5时),拒真率<0.1%(安全等级为5时)。供电电压3.3—7.5V,供电电流<50mA,匹配方式有比对方式(1:1)和搜索方式(1:N)。具有指纹识别速度快、感应效果好、稳定等特点。该模块通过串行通信接口与STM32F103RCT6进行通信,指纹识别模块的TXD(数据发送端)与STM32F103RCT6的PA3(RXD数据接收端)连接,指纹识别模块的RXD(数据接收端)与STM32F103RCT6的PA2(TXD数据发送端)连接。
3.3 矩阵键盘模块
采用4X4按键模块,是一款薄膜键盘。有10个数字键0-9、四个字母键A-D、一个*号键、一个#号键。该模块可配合各种开发板使用,只占用八个标准IO口,可实现16按键扫描,独立输入。具有安装方便、操作简单、材质好、耐用等特点。选用STM32F103RCT6的PC0、PC1、PC2、PC3、PC4、PC5、PC6、PC7作为键盘接口。
3.4 OLED液晶显示模块
显示模块采用OLED(有机发光二极管,又称为有机发光半导体、有机电激光显示)显示屏。相较于LED或LCD的晶体层,OLED的有机塑料层更轻薄、更富于柔韧性,OLED还具有省电、响应速度快、较宽的视角、能实现高分辨率显示、宽温度等特征。OLED是自发光的,没有背光,通电源时显示屏没有任何反应,必须在程序正确操作时才有显示,这点与LCD有很大不同。
系统选用的是OLED 12864液晶屏,有八个管脚,工作电压3.3V,接口类型为SPI接口,具有全视角、带中英文字库等特点。SPI时钟线(CLK)接STM32F103RCT6的PA5、SPI数据线(MOSI)接STM32F103RCT6的PA7,数据和命令选择脚(DC)接STM32F103RCT6的PB0,OLED显示屏片选信号(CS1)接STM32F103RCT6的PB1,字库数据输出管脚(FSO)接STM32F103RCT6的PA4。
3.5 语音模块
采用WEGASUN-M6语音识别模块,能识别词条达2000句,具备优胜的语音识别功能,可以把文字转化成声音进行输出。操作简易,能够独立运行,不需要运行在Windows或者Android等平台上,提供了廉价而简易的DIY方式,通过TTL串口(UATR)接收指令和返回结果,能直接跟各种MCU通讯,快速做出自己的个性化产品。选用STM32F103RCT6的PA9、PA10作为语音模块接口。
3.6 电控锁模块
采用电控锁模块,工作电压5V,内含小电机,正向电流电机正转则开锁,反向电流电机反转则关锁。具备10万次的机械寿命和20万次的电机寿命。
4 智能密码锁系统软件设计(Software design of intelligent password lock system)
在主程序中进行指纹串口初始化配置、键盘初始化、屏幕初始化、电控锁初始化等,并调用模块的功能子函数。
4.1 指纹模块软件设计和矩阵键盘模块软件设计
指纹识别主要包括采集与处理指纹图像、提取与保存特征数据、比对与匹配特征值等过程[6],指纹模块程序包含保存用户指纹、删除所有指纹等子函数。矩阵键盘中的10个数字键0—9用于输入密码,*号键用于进入输入密码状态和退出,#号键是确认键。在用户模式下,先按*号键,输入密码后按#号键确认进行开锁,按C键进行指纹开锁。按A键进行一键关锁。按*号键,再按#号键后输入管理员密码进入管理员模式,在管理员模式中进行修改密码并保存密码。进入管理员模式后,用D键清除所有指纹,按A键添加录入的指纹,C键可以在管理员模式下进行测试指纹是否录入成功。
4.2 OLED液晶显示模块软件设计和语音模块软件设计
语音内容和屏幕显示的文字内容是一致的。对于OLED液晶显示模块,先进行初始化和全屏清屏,然后调用函数display_GB2312_string( , , )在固定的位置显示中文提示信息和状态信息等。对语音模块,先对语音模块的芯片写入词条(需要转化成声音的文字),然后通过函数printf()和WEGASUN-M6语音识别模块的实时控制指令“@PlayFlashText#$”(#和$之间加词条的返回值,取值范围001-255)指令把设置好的词条通过喇叭播放出来,实现语音播报功能。如以下代码:
5 智能指纹密码锁系统调试与整体功能测试(Debugging and overall function testing of intelligent fingerprint password lock system)
系统调试使用软件Keil uVision5编程和进行程序的调试,程序调试成功后下载到智能指纹密码锁系统实物进行系统整体功能测试,测试结果各项功能正常,达到了预期的目标。系统工作稳定,屏幕正常显示提示信息和状态信息,语音播报功能正常,按键功能正常,密码正确输入和错误输入的判断准确,密码正确正常开锁,密码错误三次后操作键盘确实无效,屏幕显示倒计时10秒后可以再次操作键盘。能正常进入管理员模式进行修改密码,能正常进入管理员模式进行录入指纹、删除指纹。指纹识别功能正常,指纹识别成功后开锁。一键关锁功能正常。市电供电和充电宝供电两种供电方式工作正常。
6 结论(Conclusion)
本文设计的智能指纹密码锁系统,以STM32F103RCT6为主控制器,使用全视角的OLED 12864液晶屏和具有文字转声音输出功能的语音模块,经过多次实验和测试,最终实现密码解锁、指纹解锁、屏幕显示提示信息和状态信息、语音播报、管理员模式修改密码、录入指纹、删除指纹、一键
关锁等功能,屏幕提示信息、语音播报和一键关锁功能使密码锁更加人性化。系统易于安装、稳定性好,安全可靠,可应用于柜子锁和门锁等多种场所。但是系统存在一些不足之处,缺少电池模式,语音模块拥有优越的语音识别和语音合成功能,没有充分发挥语音模块的作用。今后,将增加电池模式,使系统拥有市电供电、充电宝供电、电池供电等三种供电方式,满足用户对供电方式的要求,解决现有的智能门锁在供电方面存在的使用不便的问题。增加语音密码识别功能,但是语音密码开门的同时泄露了密码,安全性差[3],因此还需要设置语音密码识别的开和關。为了提高密码锁的安全性,可以增加GSM模块,若三次密码输入错误,键盘锁死三分钟,同时通过GSM模块向用户手机号发送提醒短信。还可以增加远程访问功能,使用蓝牙技术建立智能手机和密码锁之间的通信[7]。
参考文献(References)
[1] 杨朋飞,聂亮,陈靖,等.基于STC89C52单片机的指纹密码锁系统设计与实现[J].传感器与微系统,2020,39(05):81-83;86.
[2] 徐庆伟,郭振铎,刘洲峰.基于STM32的电子密码锁设计[J].中原工学院学报,2018,29(06):61-65.
[3] 栾禄祥.基于GPRS和激光虚拟键盘的智能电子门锁系统[J].计算机应用,2016,36(S2):319-321.
[4] 刘永雷,赵曰峰.基于STM32的智能电子密码锁系统设计[J].山东师范大学学报(自然科学版),2018,33(03):322-327.
[5] 范冠鹏,李永军,王亚杰,等.基于超声波传感器和STM32的局部放电监控系统设计[J].仪表技术与传感器,2020(06):55-58.
[6] 张萍,马树军,史可福.基于51单片机的指纹电子密码锁的设计与实现[J].实验室研究与探索,2018,37(08):134-138;161.
[7] Chi-Huang Hung, Yong-Yi Fanjiang, Kun-Chih Chung, et al. A Door Lock System with Augmented Reality Technology[C]. 2017 IEEE 6th Global Conference on Consumer Electronics(GCCE 2017), Nagoya, Japan, 2017.
作者简介:
谭 虹(1971-),女,本科,信息系统项目管理师.研究领域:嵌入式技术.