基于单片机的语音识别智能家居密码锁控制系统设计
2021-03-07田亚立梁波
田亚立 梁波
(宁夏工业职业学院 宁夏回族自治区银川市 750021)
1 引言
随着AI技术及语音识别技术的迅速发展,智能家居将是未来家居的发展趋势。智能家居的控制方式已经由触控变为声控,由触感变为对话,由低级别的感知智能到高级别的认知智能[1]。智能家居的发展越来越依赖于人机交互,从而使用语音识别操控家居产品的技术必定会成为研究的热点[2]。目前大部分家庭的门禁系统采用机械锁,机械锁的安全性及稳定性有待于进一步提高。指纹锁的可靠性相对较高,但价格较高,如果指纹被复制安全性不能得到保障[3]。语音锁方便快捷,但易受环境影响。鉴于此,本设计采用STC89C52单片机本设计了一款语音识别与密码相结合的密码锁,主要用于家居生活中的入户门、书柜、衣柜等,此设计既降低了成本,解决了密码锁的安全问题又为家居生活带来了方便、快捷的舒适体验。
2 系统的整体设计方案
本设计采用晶宏公司生产的STC89C52RC型单片机(具有快速、低功耗、抗干扰能力强、价格超低等优点)负责计算及控制系统的整体运行,系统包括键盘输入模块、语音识别模块、液晶显示模块、报警模块、开锁模块。各个模块之间既相互独立又相互配合。系统供电后,液晶显示器显示要输入密码,当语音输入密码后,语音模块识别语音密码是否正确,将结果送入单片机;当矩阵输入密码时,单片机通过键盘扫描程序识别输入的密码并对比。当语音与矩阵键盘输入密码都正确时,液晶显示器显示密码正确,绿色发光二极管亮。同时单片机给电磁锁送信号,电磁锁打开。当语音密码或者矩阵键盘密码其中一个有误时,红色发光二极管亮,液晶显示器显示密码错误,密码最多可输入三次。系统也可根据实际需要采用语音或者矩阵键盘其中的一种方式来实现门禁系统的开锁功能。其系统设计图见图1。
图1:系统整体设计方案
3 系统的硬件设计
3.1 电源模块
智能锁在运行的过程中,需要给控制器、语音模块、报警模块显示模块及电磁锁等设备提供可靠的供电电源,通常智能锁的电源采用干电池供电,但也存在因为电池电量耗尽无法进门的尴尬情况,本系统采用可充电的锂电池(XL-5V 1200mAh、约每一年更换一次电池),当电池没电时,可通过充电宝给锂电池充电,以提高系统供电的可靠性。
3.2 键盘输入模块
系统采用4*4矩阵式按键作为系统按键密码输入设备,其中0—9为密码输入的具体数字,OK键为确认键,C键为清除键。键盘由行线和列线组成,行线与列线的交叉处是放置按键。按键按下时该按键点所在的行线和列线被接通,此时单片机采集到的电平会发生变化,单片机根据电平的变化便可确定是那个键按下了。按键电路图见图2。
图2:密码锁的按键输入电路
3.3 报警模块
系统采用两个发光二极管实现报警。与STC89C52单片机的P2.6和P2.7口相接。当密码八位密码输入正确时,绿色指示灯亮;当密码输入错误时,红色发光二极管点亮;当密码输入错误累计三次时,红的发光二极管闪烁。报警电路如图3所示。
图3:报警电路
3.4 语音识别模块
LD3320语音识别芯片,内部已经固化了优化算法,通过口令触发模式和垃圾词语吸收模式可以提高语音识别的准确度。设计中语音通讯采用的是串口通讯,直接与STC89C52的RXD信号相连接。工作中将采集的语音信号送入到LD3320,进行解析并提取语音信息,将提取的语音信息与列表中的关键词进行对比与匹配,找出最匹配的关键词,送入到STC89C52单片机中。语音信号处理过程如图4所示。
图4:语音信号处理过程图
3.5 液晶显示模块
系统采用LCD1602液晶显示器进行密码锁相关信息的显示。数据信号D0-D7与STC89C52单片机的P0口相接,控制信号RS、RW和EP分别接在P2口的第0、1和2位上。VSS、VDD、VEE与1K滑动变阻器构成液晶显示器的电源电路。上电后首先在第一行显示“the code is:”。当输入密码后,在第二行显示输入的密码。若密码正确则在第一行显示“welcome”,密码错误显示“try again”。密码累计三次输入错误,显示“Wrong!!”。液晶显示电路如图5所示。
图5:液晶显示电路
3.6 电磁继电器模块
密码锁采用继电器控制代替开锁机构,电路由三极管放大电路、继电器、指示灯和直流电源组成。放大电路的基极接于STC89C52单片机的P2.5口。当密码输入正确时,单片机送给P2.5一个低电平信号,放大电路导通,继电器吸合,密码锁打开,开锁指示灯亮。电磁继电器控制电路如图6所示。
图6:电磁继电器开锁电路
4 系统的软件设计
软件的设计包括:主程序控制的设计、语音控制设计、液晶显示设计、键盘输入设计、显示报警设计等。
4.1 主程序控制的设计
密码锁控制系统的主程序包括初始化子程序、设置初始密码、设置密码的显示位置、设置密码输入的次数、读取键值、显示子函数、语音子函数和按键值函数等。系统设置了三种程序选择模式。在模式选择时,系统默认为语音按键组合模式,当开启选择模式时,若选择0,则为语音模式;选择1,则为按键模式。确定了密码锁的工作模式,便根据选择的模式不同,执行不同的子程序。主程序流程如图7所示。
图7:主程序流程图
4.2 语音控制设计
语音控制程序主要包括初始化、语音对比识别。为了确保语音识别的效率,首先设置一级触发指令“你好”,当采集到一级指令后,进入二级指令采集过程,采集到的信号与存储到单片机中的常用的特征信号进行对比,并将对比结果相匹配的数据读出,经过处理后送LCD进行显示,同时接通电磁继电器。语音程序流程如图8所示。
图8:语音程序流程图
4.3 键盘输入设计
为了减少单片机I/O接口的占用,本设计采用矩阵键盘,键盘接至单片机的P1口。进入键盘子程序,先设置行码和列码。程序执行时,首先判断是否有键按下,如果有键按下,逐行扫描,进一步判断是哪一行的按键按下了。当确定了某一行有键按下后,再确定是那一列中的键按下了,通过行和列的信号,最终可判断出哪一个按键按下了。确定按键后返回键值。其流程图如图9所示。
图9:键盘扫描程序流程图
4.4 液晶显示设计
LCD显示主要包括LCD初始化、测试LCD忙碌状态、设定显示位置、写数据到LCD、设置显示格式及LCD显示等。初始化阶段主要设置显示格式、显示光标及清除LCD显示内容的等。读信号时,当密码正确时显示“right”,当错误时,有三次机会,每次都判断密码的准确性,三次都错就显示“wrong”,并将信号送单片机。LCD显示子程序如图10所示。
图10:液晶显示程序流程图
5 结束语
目前,密码锁、指纹锁及语音识别技术等在安全锁领域具有广阔的市场前景,随着密码破解和造假指纹技术的发展,人们对安全锁的要求越来越高,单一加密方式的安全锁已经不能满足人们的要求,具有多重加密方式的安全锁将是今后密码锁的一种发展趋势。本设计将语音识别技术与密码锁相结合,设计了语音与密码输入的双重加密方式,安全性得到较大的提高。系统的设计灵活可靠,加密模式可选择,不仅适用于入户门还适用于智能家居中的卧室门、衣柜门等,为安全锁提供了一个解决方案,为家居生活提供了便利。