基于智能手机的无线电子密码锁的设计
2018-01-18闫昊阳杨森
闫昊阳++杨森
摘 要针对目前电子密码锁安全性低和易用性差的问题,本文基于智能手机设计了一款无线电子密码锁。系统采用STC89C51单片机作为主控芯片,通过C语言编写程序来验证用户输入的密码是否与存储芯片中的密码一致,并做出继电器通电及蜂鸣器报警等反馈。用户可通过智能手机等无线蓝牙遥控方式进行解锁加密等功能,为生活中的安全加密需求提供了良好的解决方案。
【关键词】密码锁 智能手机 STC89C51 蓝牙遥控
引言作为论文的开端,应以简短的篇幅介绍论文的写作背景和目的,以及相关领域内前人所做的工作和研究的概况,说明本研究与前人工作的关系,目前研究的热点、存在的问题及作者工作的意义。引言不应与摘要雷同也不应是摘要的注释。引言一般应与结论相呼应,在引言中提出的问题,要在结论中应有解答,但要绝对避免与结论雷同。不应过多叙述同行熟知的及教科书中的常识性内容,确有必要提及他人的研究成果和基本原理时,只需以参考引文的形式标出即可。目前,电子密码锁的种类繁多、应用广泛,但其并不能完全取代传统的机械锁,究其原因主要是各类电子密码锁本身技术所限,不能完全满足人们的需求。笔者对目前市场上的电子密码锁进行了分析,发现:以单片机为主控模块,采用蓝牙或者红外信号传输的方式进行无线操控的电子密码锁,控制器多为无线遥控器,不同的密码锁需要匹配不同的遥控器,使用和携带很不方便;应用数字键盘,通过手动输入密码控制的电子密码锁,由于密码键盘暴露在外,存在潜在的安全隐患,即不法之徒可以通过多此尝试破解密码;通过指纹识别的电子密码锁,由于指纹识别技术要求较高,因此成本过高,不容易普及;且不具便捷性。综上所述,笔者对电子密码锁进行好了改进设计,使用智能手机作为无线遥控设备通过红外线发射装置输入密码遥控解锁,这样既能免去钥匙、卡片需要携带的烦恼,又能省去外置的密码输入键盘,很好的解决了上述的问题,设计在低成本的基础上保证了使用的安全性、便捷性。
1 无线电子密码锁的总体设计
基于智能手机的无线电子密码锁的硬件电路分为两个主要功能模块:主控模块和无线通信模块。
1.1 主控模块设计
由于其功能强、体积小、可靠性高、造价低和开发周期短等优点,基于单片机的设计在实时检测和自动控制领域中得到了广泛的应用。本设计根据功耗及成本的考虑,主控模块选择了STC89C51单片机,其基本功能如表1所示。
STC89C51是一种低功耗、高性能CMOS 8位微控制器,使用Atmel 公司高密度、非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容,因而STC89C51在嵌入式控制应用系统中得到广泛应用。
1.2 无线通信模块
近几年,随着智能家居技术的发展,各种短距离无线通信技术成为了热门的研究对象, 其中WiFi(Wireless Fidelity),ZigBee和Bluetooth是当前连接智能家居产品的主要手段。
ZigBee是IEEE 802.15.4协议的简称,主要适合用于自动控制和远程控制领域,可以嵌入各种设备,但是由于传输速率低,且目前绝大部分智能手机中不配置该模块,因此不适用于本设计。
WiFi是一种允许电子设备连接到一个无线局域网的技术,是IEEE 802.11协议的简称,俗称无线宽带。WiFi支持数据、图像、语音和多媒体的短程无线传输,传输速率可达54Mb/s,覆盖范围可达百米。但由于功耗和体积太大,而且节点数量太多,不符合密码锁的设计。
Bluetooth(蓝牙协议),是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换。蓝牙使用跳频技术,將传输的数据分割成数据包,通过79个指定的蓝牙频道分别传输数据包。每个频道的频宽为1 MHz。蓝牙是基于数据包、有着主从架构的协议。采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。
因此经过比较,由于蓝牙无线通信更容易实现,更容易操作,体积小、便于集成,而且具有抗干扰性强、单一连接性的特点,符合密码锁的设计要求,因此本设计选择HC-06蓝牙模块实现手机远程控制。HC-06是专为智能无线数据传输而开发的一款蓝牙模块, 遵循蓝牙V2.0 + EDR蓝牙规范,传输距离>20米,最高传输速率达2.1M,支持SPP蓝牙串口协议,并支持UART接口,具有低成本、小体积、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。
1.3 系统功能设计
本设计利用AT89C51芯片来实现51单片机模块功能,完成数码管、发光二极管的实现,同时利用HC06蓝牙模块来实现手机远程控制功能。其设计总框图如图1所示。
其工作原理为:通过在51单片机开发板对AT89C52芯片写入程序,建立单片机与蓝牙模块之间的串口通信,并通过手机输入指令输入到蓝牙模块之中,通过程序利用单片机串口将蓝牙与51单片机进行通信,并控制单片机的引脚,从而控制外围电路的LED灯的亮灭和数码管的功能实现。
主要实现如下功能:
(1)设计开锁密码为六位密码的电子密码锁;
(2)实现输入密码错误次数超过限定的三次即将电子密码锁锁定的功能;
(3)用户可以自定义系统解锁密码,并且可以多次进行修改;
(4)设计蓝牙接收模块,接收智能手机发送的蓝牙信号并由单片机来处理;
(5)设计外接电磁继电器模块,控制锁芯。
2 系统主要电路设计实现
2.1 复位及振荡电路
单片机中的复位及振荡电路如图2所示。
复位电路由上电复位和按键复位两部分组成。上电复位:在复位引脚 RST 上连接一个电容到 VCC,连接一个电阻到 GND, 进而形成RC 充放电回路,保证在上电时 RST 脚上有足够时间的高电平进而使单片机复位。按键复位:在复位电容上并联一个开关,当开关按下时电容被放电、RST被拉到高电平,由于电容的充电,会保持一段时间的高电平从而使单片机复位。endprint
MCS51的振荡源使用11.0592MHz的晶体振荡器。由于单片机内部带有振荡电路,因此外部只要连接一个晶振和两个容量在15pF至50pF之间的电容即可。
2.2 密码存储模块
由于需要保证系统正确密码的可靠而且掉电不丢失,所以需要一块外部存储器来保存它,经过分析后选用了AT24C02这一芯片来作为外部存储装置。通电后,它可以工作在电压为2.5~5.5 V的环境下,每次最多只能写入8位数据来保证效率提高速度,并且它有很强的抗干扰能力,以防由于电压不稳定造成的数据丢失。AT24C02具有256×8位存储空间,完全满足存储一组6位的数字密码的需求。同时,它大于一万次的可擦写能力为用户进行修改密码提供了完善的功能保证。当进行一个字节数据的读出或者写入时,芯片片内的地址寄存器会进行加1计数操作,以此来保证下一个存储单元数据的读写,标识准确的顺序。芯片内采用了二线制总线系统,采用主/从机双向通信方式,通过串行数据线及串行时钟线在连到总线上的器件之间进行可靠的传输数据,并完成每个元器件的识别工作。主从机都可以工作于接收器和发送器状态,主机通过产生串行时钟信号并发出控制字,控制总线的传送方向,产生开始和停止的条件。它的控制字由8位的二进制数构成,当开始信号发出,随后主机就会发出控制字选择从机,并控制总线传送的方向。其接线如图3所示。
2.3 报警模块
报警模块在整个设计中的作用是当输入时做出提示以及输入错误时进行警告。当密码锁通电后,报警模块会进行初始化,这时如果用户进行密码输入,每进行一次按键就会发声一次提醒输入有效;另一种情况则是输入密码的错误次数大于三次时发出连续的声音进行报警,从另一方面提升密码锁的安全性。电路中的三极管收到引脚电平信号导通后就发出声音。
2.4 继电器控制模块
该模块主要是为了实现外接机械锁达到真实解锁这一功能,所以需要用到一款微型的电磁继电器。继电器主要由衔铁、线圈、铁芯、弹簧片组成,弹簧片可以外接各式各样的机械锁。它利用了电磁效应的原理,当电路中产生的电流流经继电器内部的线圈时,产生的电磁力会随电流大小而动态的变化,当达到一定的值会抵消掉弹簧对衔铁的拉力让它吸向铁芯,控制触点的开闭,从而决定了电路的导通来驱动锁芯。电磁吸力的产生是主要是由电路中电压电流确定的,所以在通电的情况下继电器才会起作用,如果发声断电,弹起的锁芯就会在弹簧的拉力下返回原位置,锁就会变回上锁状态。
3 系统编程设计
系统总流程图如图4所示。
首先系统初始化,系统开始运行,当手机输入数字密码时,数码管会以加密的方式显示输入状态,若是6位密码输入正确,则LED亮起(代表锁打开),否则熄灭。在LED灯亮起的前提下,可以输入命令“c”进入更改密码模式,然后重新输入新密码,此时数码管显示的是不加密的明文。输入新密码完成之后输入命令“d ”对新密码进行确认,所有的操作均在手机端的APP中完成。在手机按键操作之下点击“close”可以直接关闭密码锁,点击“retryc”能够重新开始输入密码。本密码锁能实现掉电密码保存功能,即使断电重启也不会重新恢复初始密码,大大提高了电子密码锁的实用性和安全性。而更改密码这一功能是在高级模式下更改的,一般人即使知道了密码但是不知道更改密码的命令是无法更改密码的,安全保障更上一层。
注:更改密码为此密码锁的高级模式,普通权限下使用的是“键盘模式”。
本系统采用C语言作为编程语言,Keil 4作為软件开发平台,并对单片机系统进行调试修改。
其中软件部分主要需要完成的是主程序的编程、初始化程序的编程、EPROM读写程序的编程、密码设置程序的编程、LCD显示程序的编程、键盘扫描程序的编程,以及启动程序、关闭程序和报警程序的编程。
4 系统仿真与调试
4.1 程序调试与仿真
经过以上的设计和分析,在进行硬件系统组装、软件编程后,对系统进行调试。
首先对软件编译,编译链接成功之后,生成二进制HEX文件。
程序检测无误后,在Proteus软件中将各个模块连接,进行仿真测试
仿真测试成功之后,将编写的软件烧录到单片机的内存中,这样系统上电时软、硬件配合才能完美运行。
4.2 硬件测试
(1)用手机连上HC06模块的蓝牙之后,在手机APP中的键盘模式里面输入初始密码“012345”并观察单片机的变化,测试结果:数码管上显示输入密码的状态,6位密码均被用“—”进行加密,从手机APP的图上面可以看出输入的密码为“012345”,密码输入正确,数码管下方的一排LED灯亮起。
(2)在手机APP的命令模式中输入“c”(在开锁的状态下),设置新密码为“201778”,此时新密码设置的过程为明文在数码管上显示。然后输入“d”对新密码进行确认。
(3)进入APP键盘模式,点击“close”按钮,关闭密码锁,然后重新掉电启动密码锁,输入“012345”旧密码,数码管右下方的LED灯没有亮起,说明输入密码错误。
(4)点击APP键盘模式里面的“retry”重新输入密码。输入密码为“201778”结果显示输入正确的新密码之后可以成功开启密码锁,而原始的密码则不能。说明密码更改成功。
5 结论
由于智能手机的使用已很普及,几乎人手一部,而且每天都会随身携带。因此笔者通过设计应用智能手机来解锁,可以实现一机多用,既能免去钥匙、IC卡需要携带的烦恼,又能省去外置的密码输入键盘,而且成本较低,易于实现,很好的克服了上述各类密码锁存在的问题。
综上所述,本设计具有无线操控、自由修改密码、错误报警以及外接多类型实体锁等多种功能,兼具造价低、安全性、便捷性等优点,具有一定的使用、推广价值。endprint
参考文献
[1]崔岩, 吴国兴, 顾媛媛等.基于FPGA的红外遥控密码锁的设计[J].电子技术应用,2013,39(11):44-46.
[2]魏雅,杜云.基于单片机的电子密码锁设计[J].电子设计工程,2016,24(15).
[3]Cai Meiqin.MSC-51 series single-chip microcomputer system and its application[M].高等教育出版社,2011.
[4]余飞.多智能小车一致性分析及其控制系统硬件平台研究[D].西安电子科技大学,2011.
[5]秦莉,岳文秀,杨伟东.基于DS18B20的多点温度测量体系的设计与仿真[J].实验室科学,2012,15(01):104-107.
[6]赵磊,李雨珊,桂桐等.近距离无线通信技术现状研究[J].科技视界,2015(29):100-100.
[7]解春玉,陈玉鹏.几种无线通信技术在地震仪器中的应用[J].物探装备,2016,26(04).
[8]汪国强,李尚甫,王飞等.基于FPGA的四位电子密码锁设计与实现[J].无线电通信技术,2016,42(04).
[9]杨斐,黄军,康浩.多功能电子密码锁的VHDL设计[J].现代电子技术,2013(22):143-146.
[10]董庆贺.基于GSM的防盜密码锁系统设计与实现[J].电子技术应用,2011,37(09):64-66.
[11]任葛荣.可编程智能电子锁控制器的设计与实现[D].华南理工大学,2011.
[12]陈进超.新型无线遥控电子密码锁系统的研究[D].硕博学位论文,2012.
[13]曹文俊,王少杰.基于STC12C5A60S2单片机的电子密码锁设计[J].电子世界,2017(09):42.
[14]魏雅,杜云.基于单片机的电子密码锁设计[J].电子设计工程,2016,24(15):165-167.
[15]林欢,许建明,陈炯明.基于单片机的电子密码锁设计[J].电子世界,2016(10):176.
[16]孙琪皓.基于图像识别的智能电子锁系统设计[D].湖南科技大学,2016.
作者单位
山西大学商务学院信息学院 山西省太原市 030031endprint