带语音识别的智能门锁设计
扫描二维码
随时随地手机看文章
引 言
防盗锁是大部分家庭都需要购买的锁具,与人们的生活密切相关。锁作为家中第一道安全防线,不仅可以保卫家中安全,更是提升我们生活品质的标志。在智能家居时代,智能锁是智能化时代的体现,机械锁的安全性和便利性已经无法满足人们的需求。“互联网+”、智慧生活、物联网技术的触角已伸向每家每户都离不开的门锁 [1]。此前,智能门锁、安防门锁、电子门锁等主要在办公楼、酒店宾馆等地使用,如今随着家庭安防需求的增加及智能产品的普及,家用门锁已成为智能化抢占的市场。近期,智能门锁产品层出不穷,在智能化和安全性等方面精益求精,目前已研发出人脸识别锁、指纹密码锁、刷卡锁和数字密码锁等。智能门锁作为新一代识别技术优势明显,将逐渐取代纯机械锁,成为锁具行业的新主角,并且这一趋势不可逆转。本文所设计的智能门锁使用声纹识别技术, 不仅使家用门锁在安全性和便利性等方面得到了大幅提升,还可使用 APP 远程控制进行门锁的开关动作,远程监视门锁的开关状态。
1 系统设计
1.1 系统设计要求
SPCE061A 单片机可对特定人员进行语音识别,识别成功率高达 80% 以上,还可控制高低电平动作进行开锁操作; 另一方面通过手机 APP 或网页端与服务器连接后,服务器与WiFi 模块可进行通信并传输数据,由 WiFi 模块向单片机输入信号,单片机动作以实现对门锁的远程控制。
1.2 总体设计方案
本系统设计的基于 SPCE061A 单片机的语音识别智能门锁的主要组成包括 61 单片机、WiFi 模块ESP8266、传感器、网络服务器、门锁控制终端、LED 灯控制终端、继电器、电子锁。
61 单片机可进行语音录入,通过对语音信号进行压缩编码,运用压缩算法放音,再通过编写的程序进行训练,将训练后的语音自动存储在片内存储器中,训练成功后即可进行语音识别。方案设计如图 1 所示,其客户终端可选手机 APP 或网页,网络服务器采用贝壳物联云端服务器,WiFi 模块与家中WiFi 互联后再与单片机系统相连,就可通过 WiFi 模块将来自互联网的控制命令转发至串口,此时WiFi 模块的串口与单片机串口相连,单片机解读串口数据命令,由继电器通过单片机 I/O口输入的电平变化选择发生阶跃响应,触发电子锁, 实现手机 APP 或者网页对其的控制。
图1 总体方案设计
2 硬件电路设计
2.1 单片机最小系统
系统采用SPCE061A 单片机进行语音识别 [2]。SPCE061A 单片机具有功耗低、功能强、效率高、可靠性好且易于扩展等优点。SPCE061A 配备了凌阳科技开发的最新 16 位微处理器,其内部含有 8 个寄存器,4 个通用寄存器 R1 ~ R4,1 个程序计数器 PC,1 个堆栈指针 SP,1 个基址指针 BP,1 个寄存器 SR,通用寄存器 R3 和 R4 结合组成一个 32 位寄存器MR,MR 可以作为乘法运算和内积运算的目标寄存器[3]。此外, SPCE061A 还有 3 个FIQ 中断和 14 个IRQ 中断,及1 个由指令控制的软中断。客户终端采用 Arduino 单片机系统实现 [4], 其核心是 ATMEGA328P-AU 单片机,配上周边器件,安装在一快印刷电路板上能够独立完成设定功能,同时还能通过各类传感器感知环境,通过控制灯光、马达和其他装置来反馈、影响环境。Arduino 单片机系统一端通过传感器与门锁相连, 一端通过 ESP8266 WiFi 模块与家庭 WiFi 相连,由此实现通过手机 APP 控制门锁开关。
2.2 语音识别模块
将 SPCE061A 单片机用于语音识别模块 [5],SPCE061A的内部结构如图 2 所示。
模块含有 84 个引脚,可进行多输入输出操作,且 32 k的 FLASH 存储器可进行语音存储,7 通道 10 位模 / 数转换器与单通道声音模 / 数转换器可方便对语音进行模数转换 [6]。
语音识别模块分为训练阶段和识别阶段 :在训练阶段,先初始化 RAM,再调用语音训练函数 BSR_Train(int WordID,int TrainMode)执行训练,之后获得训练结果,将训练结果中的语音模型导出存储到 FLASH 中。SPCE061A 语音存储和回访系统如图 3 所示 [7]。
在识别阶段, 运用凌阳编码算法库中的函数进行识别, 先调用初始化识 别器函数 BSR_InitRecognizer(int AudioSource), 将存储的训练语言的特征模型调出与需要识别的语音比对, 再调用获得识别结果可信度函数 BSR_ GetRecognizerScore()获取输入语音与特征模型的匹配度 [8]。
2.3 继电器模块
继电器模块选用中间继电器,当传感器收集语音信息读入单片机系统后,单片机系统会发出一个高电平使继电器线圈通电,之后继电器主触点闭合,同时使电子锁 [9] 与电路之间的开关闭合,进而控制电子锁的开关。硬件电路框架如图 4所示。
3 软件设计
ESP8266 为安信可公司开发的 ESP8266 模块编译平台,具有免安装、纯绿色、无需虚拟机、Windows 系统直接运行、IDE 界面、编辑和编译一体化、Eclipse 编译后直接生成固件等优点 [10]。
该智能门锁下位机通过公共云端将用户的控制动作传送至 ESP8266 芯片,再通过 Andruin UNO 面板实现该动作,流程如图 5 所示。
贝壳物联云平台采用以 TCP 协议为主,UDP 协议为辅的形式进行通信,两种协议间信息互通。在 TCP 协议基础上, 可直接使用 TCP 或WebSocket 建立长连接,定时发送心跳数据,保持用户、设备在线,在线期间与服务器可进行 JSON 字符串格式的数据通信,也可采用 http(s)通信协议获取用户资源、上传图片,并实时更新。以 UDP 协议为基础的通信,设备不必保持在线状态,可随时向服务器发送指令进行相关操作。
传感器采集门锁的开关状态,反馈至 8266 模块,8266 模块将即时状态通过云端传递给贝壳物联服务器,服务器可通过两种方式提示用户门锁的状态 :一是手机客户端,即APP ;二是网页。用户可根据实际情况控制门锁。
本设计的目的在于方便用户通过手机打开门锁,因此需判断上电显示是否与预定相同,可采用 ESPlorer进行仿真验证。程序开始后,初始化函数,将 ESP8266刷入NodeMCU固件, 默认执行Init.lua中的程序,在 Init.lua中再调用并执行 switch. lua程序(远程开关程序),之后在 ESPlorer环境下编写程序。
4 性能测试与分析
本软件完成了各模块的设计并对各模块进行了测试,测试工具包括 Android 手机和笔记本电脑。利用“贝壳物联”作为云端,在 Android 手机上运行客户端软件,用户登录后可以进行相关操作,登录界面如图 6 所示。
在贝壳物联软件中添加设备,实现对其的控制。WiFi 模块选用 ESP8266,该模块与家中 WiFi 互联后再与单片机系统相连,之后可通过 ESP8266 芯片转发来自互联网的控制命令至串口。图 7 所示为已实现添加的门锁设备,连接完成后通过手机控制门锁的开关。
5 结 语
本系统基于 SPCE061A 单片机语音识别系统设计而成,通过语音训练后,将传感器采集的用户声音与之前的样本进行比较,触发电子锁,实现语音开锁,识别率高。以MEGA328P-AU 单片机作为控制核心,通过 WiFi 与电子锁相连,实现智能开锁,降低成本。以手机 APP 作为控制终端,随时随地实现对系统的控制和监控。该智能门锁具有开锁简便、安全性能良好、能耗小、成本低等优点,能够较好地满足市场需求。