广东名门锁业有限公司 广东中山 528400
摘要:随着社会经济、科学技术和信息技术的发展,人们生活水平和生活质量的提高,人们对安全和防盗提出了越来越高的要求。普通的机械锁已不能满足人们的要求。远程控制电子锁的出现,不仅满足了人们日常生活的需求,而且在普通电子锁的基础上增加了远程控制功能,密钥的设置和修改更加方便,操作简单,而且电子锁的历史开锁记录、防破坏报警、故障报警等重要的信息也都可以实时上传到手机、电脑等远程终端,安全性大大提高。鉴于此,文章结合笔者多年工作经验,对远程控制电子锁系统的关键技术研究提出了一些建议,仅供参考。
关键词:远程电子锁;电子锁控制系统;WIFI电子锁;关键技术分析
引言
远程电子锁可实现键盘解锁、指纹解锁、远程解锁、实时发送开门记录和报警信息等功能,甚至可以将门锁管理系统和小区物业管理系统对接,传送报警信息,实现立体防盗。
1、远程控制电子锁系统的特点
(1)核心硬件包括WIFI模块、电容式触摸按键控制芯片、半导体指纹识别模块、主控MCU、电机驱动芯片、直流有刷电机--日本万宝至的FFN20WA、语音输出芯片、微型喇叭。(2)锁体结构采用高强度锌合金外壳,精铸不锈钢锁舌,普通手段极难破坏,即使强行破坏,还会触发到防撬报警传感器,主控MCU探测到后会通过语音芯片发出急促的报警音效进行警示,同时通过WIFI模块发送防撬报警信息给管理员。(3)乐鑫科技的ESP8266 WIFI模块遵循WIFI协议标准802.11 b/g/n,AP/STA/AP+STA三种工作模式,内置TCP/IP协议栈、UDP协议栈、DNS域名解析功能,丰富的AT串口指令,简单配置即可联网,且DEEP SLEEP模式下功耗可低至18uA,是采用电池供电的电子锁的理想选择。(4)采用4节5号干电池串联供电,锁不工作时就自动进入超低功耗休眠状态,按每天开门10次测算,理论上可达到180天左右的使用时间。(5)WIFI模块只需在初次使用时配网一次,锁从休眠状态被唤醒后,WIFI模块会自动连接路由器进入联网状态,2秒左右即可联网成功。(6)在锁唤醒状态下,用户可通过操作键盘来设置指纹和密码,密码支持6-8位,如果是首次使用则必须先添加一个管理员密码,联网后也可在手机APP上对电子锁进行设置,指纹和密码都只保存在锁内,确保安全。(7)用设置过的密码或指纹验证成功后,主控MCU会发出开锁信号通过电机驱动芯片驱动电机正转,带动齿轮式离合器开锁,同时通过WIFI模块发送一条开锁记录,历史开锁记录会一直保存,可随时用手机APP查询,开锁6秒后主控MCU会自动驱动电机反转,带动离合器上锁。(8)当电池电量过低时,每次开锁时,主控MCU会通过WIFI模块发送低电量报警信息通知管理员更换电池,如果没来得及换电池就没电了,还有应急供电的Micro USB接口,可用充电宝或者其他能通过USB口输出电源的设备给门锁供电,或者还可以用备用的机械钥匙开门。(9)为保障WIFI传输的内容的安全性,服务器程序部署在阿里云的MQTT服务器上,主控MCU与服务器之间用MQTT协议通讯,MQTT是目前应用最广泛的物联网协议,该协议提供了多个层次的安全特性:
网络层:有条件可以通过拉专线或者使用VPN来连接设备与MQTT代理,以提高网络传输的安全性。
传输层:传输层使用TLS加密是确保安全的一个好手段,可以防止中间人攻击(Man-In-The-Middle Attack)。客户端证书不但可以作为设备的身份凭证,还可以用来验证设备。
应用层:MQTT还提供客户标识(Client Identifier)以及用户名密码,在应用层验证设备
2、远程控制电子锁系统的关键技术分析
2.1主控MCU模块
MCU是Micro Control Unit的简称,中文译作微型控制单元,又称单片微型计算机(Single Chip Microcomputer)或者单片机,是指将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机。
MCU有简便、控制、可靠性、体积小、成本低等特点,经过多年的发展,在工业控制、家电、电动设备等智能产品上应用广泛,随着物联网时代的到来,MCU的发展必将更加蓬勃。在本设计中,我们采用意法半导体的STM8L152R8T6作为主控MCU,调用各功能模块来实现远程电子锁控制系统的全部功能。STM8L152R8T6的供电电压可在1.65~3.6V之间,本设计的供电电压是电池经过LDO后输出的VCC(+3.3V),最低400nA的休眠电流,支持最高16MHZ主频,最大54个I/O端口,高达64KB FLASH,2KB EEPROM,4KB RAM,内置RTC、TIMER、ADC、DAC、DMA功能,通讯接口有UART、SPI、IIC。
图2-1 主控MCU模块原理框图
2.2键盘模块和语音输出模块
键盘模块包括韩国ADS的电容式触摸按键芯片TSM12、12个连到芯片的PCB感应PAD、芯片外围的电阻电容、12个提示用的背光LED,TSM12通过IIC总线与主控MCU通讯,12个LED的阳极分别经过12个限流电阻后连接VCC,阴极分别接入主控MCU的12个I/O端口。语音输出模块包括已烧录特定语音的语音芯片NVD340和8欧0.5W的喇叭,语音芯片连接MCU的一个I/O口,采用一线通讯协议通讯。当用户在键盘上进行操作,有按键触发时,触摸芯片会发送中断信号通知MCU,MCU收到中断信号后就会从触摸芯片的寄存器中获取按键值,再根据获取到的按键值执行相应的输出动作,如按键响应时驱动LED的亮灭、添加指纹和密码时驱动语音芯片播报菜单导航,因此键盘模块主要是两个作用,一个是用于设置电子锁,一个是用于输入密码解锁。
图2-2 键盘模块原理框图
图2-3 语音输出模块原理框图
2.3指纹模块
指纹模块YYH-3A0是杭州晟元设计的一体化半导体指纹模块,该模块封装了瑞典FPC的半导体指纹传感器FPC1021、晟元自主研发的最新一代指纹算法芯片AS578。自从IPHONE5S首次在手机上搭载半导体指纹模块以来,经过短短6年多的发展,半导体指纹识别技术已经成为世界上应用最广泛、最稳定的生物识别技术,其工作原理,就不在此赘述。本设计中FPC1021负责图像采集与AS578之间通过SPI通讯,AS578负责图像处理和响应主机指令。AS578与主控MCU之间采用UART通讯方式,AS578的所有操作指令都由MCU发起,以录入新指纹为例,先由MCU发送获取图像指令,AS578通过FPC1021获取到图像,然后MCU再发送提取特征点指令,AS578在刚才获取的图像中提取出特征点,反复执行几次采集图像和提取特征点指令后,最后MCU再发送生成模板指令,AS578就将刚才收集到的特征点合并成一个指纹模板存储起来,至此就完成了新指纹的录入,而AS578比起前一代的指纹算法芯片最大的特点就是指纹模块数据都存储在AS578的加密存储区内,如果不是正确的解密读取的话,数据会立刻销毁,可靠地保障了用户指纹信息的安全。指纹添加成功后,用户即可通过验证指纹解锁。
图2-4 指纹模块原理框图
2.4电机驱动模块
电机驱动模块包括电机驱动芯片BA6287F和日本万宝至的直流有刷电机FFN20WA,BA6287F由电池经过肖特基二极管SS34后直接供电。日本ROHM公司设计的BA6287F供电电压范围为4.5V到15V,输出电流1.0A,BA6287F内置有PWM,制动器,具有正逆转模式的可逆转电机驱动器,通过H桥驱动有刷电机,非常适合智能门锁的电机驱动。BA6287F的两个输入端口与主控MCU的两个I/O端口连接,初始状态两个I/O端口都输出低电平,当MCU需要驱动电机运转时,MCU就将一个I/O端口输出高电平,另一个I/O端口输出低电平,BA6287F检测到输入信号后,就驱动电机旋转,如果要驱动电机反向旋转,则将I/O端口输出的高低电平方向互换即可。
图2-5 电机驱动模块原理框图
2.5 WIFI通讯模块
远程通讯模块采用上海乐鑫的WIFI模块——ESP8266,ESP82666模块的工作电压为3.3~5.0V,遵循WIFI协议标准——IEEE 802.11b/g/n,工作频率范围2.412GHz-2.484Hz,发射功率11~18dbm,板载PCB天线,无线传输速率最高可达54Mbps,三种WIFI工作模式——STA、AP、STA+AP,三种WIFI安全机制——WEP、WPA-PSK、WPA2-PSK,四种加密方式——WEP64、WEP128、TKIP、AES,与主控MCU采用UART通讯方式,波特率默认115200,自带功能丰富的AT指令集,内部还集成了TCP/IP协议栈、UDP协议栈、DNS域名解析功能,MCU只需发送相应的AT指令给ESP8266即可实现ESP8266的网络配置和数据传输,而用在本设计中最看重的一项关键指标就是该模块的超低功耗——持续发送下,平均功耗70mA左右,峰值200mA;正常模式下,平均功耗12mA左右,峰值200mA;深度休眠模式下,功耗低至18uA。
首次使用时,需要先将ESP8266配网,用户通过操作键盘启动配网,MCU先发送‘AT+CWMODE=2’将ESP8266设为AP模式,再发送‘AT+CWSAP=<SSID>,<password>,<ch>,<ecn>’设置WIFI基础配置,本设计中广播名称<SSID>为<ESP8266WIFI>,密码<password>为<12345678>,通道号<ch>为<4>,加密方式<ecn>为<4>——WPA_WPA2_PSK,然后发送‘AT+RST’重启ESP8266,待ESP8266重启OK后,MCU发送‘AT+CIPMUX=1’启动ESP8266的多连接功能,再发送‘AT+CIPSERVER=1,5050’开启ESP8266的server模式,5050为端口号,以上都设置成功后,用户即可通过手机APP搜索到ESP8266的WIFI并输入password连接ESP8266,AP模式下ESP8266的默认IP地址是192.168.4.1,手机APP在连上WIFI后会自动通过此IP地址和端口号5050连接ESP8266的TCP SERVER服务,TCP连接建立后手机APP就可以与MCU之间通过ESP8266传送数据了,在APP里输入需要让锁连接的路由器WIFI的SSID和password,手机上点击发送后将通过ESP8266转发给MCU,MCU收到后将其保存起来,然后发送‘AT+CWMODE=1’将ESP8266设为STA模式,再发送‘AT+RST’重启ESP8266,待ESP8266重启OK后,MCU发送‘ AT+CWJAP=“SSID”,“password” ’通知ESP8266配网,其中SSID和password为刚才保存在MCU里的WIFI名称和WIFI密码,待收到ESP8266回复的‘WIFI CONNECTED和WIFI GOT IP’后即表示配网成功,MCU驱动语音模块播放‘配网成功’语音提示用户。
在大部分时间里,锁都处于休眠状态,主控MCU休眠前需先将ESP8266设置为DEEP-SLEEP模式,以延长电池的使用寿命。MCU发送‘AT+GLSP=<time>’即可让ESP8266进入DEEP-SLEEP模式,<time>为休眠后自动唤醒的时间,单位为毫秒,自动唤醒功能需要硬件上将ESP8266的EXT_RSTB端口与XPD_DCDC端口通过0欧电阻连接,但本设计中不需要自动唤醒,故硬件上不做连接,<time>可任意设定。
后续在用锁过程中,如需通过ESP8266进行远程终端与锁之间的控制和通讯,按以下流程执行,以管理员用手机远程为其他用户添加密码为例:当其他用户站在锁前需要添加一个密码,方便后续开门使用,而管理员不在锁旁,此时管理员就可以通过手机与ESP8266进行远程通讯来实现此功能。首先需要用户通过按键将锁唤醒进入工作状态,锁进入工作状态后会立刻发送‘AT+RST’指令重启ESP8266,ESP8266重启成功后会自动连接WIFI,连接成功后会回复‘WIFI CONNECT指令和WIFI GOT IP指令’给MCU,MCU收到该指令后再发送‘AT+CIPSTART=“TCP”,“192.168.0.102”,61613’连接到MQTT服务器,192.168.0.102为服务器地址,61613为端口号,再发送‘AT+CIPMODE=1’和‘AT+CIPSEND’进入透传模式,此时MCU发送一条消息‘smartlock connected WIFI’,经过ESP8266和服务器的转发后到达手机APP上,管理员在APP上看到此消息后,点击APP上的添加密码功能,手机APP会发送‘add password’消息给到MCU,MCU驱动语音模块播放语音‘请输入要添加的密码,长度6至8位’,用户输入密码并按确认键后,MCU将密码保存在锁内,只将密码的ID号发送给服务器保存,APP可通过用户管理功能访问服务器获取已添加的指纹或密码的ID信息,方便对锁内的指纹和密码进行修改和删除等管理操作,至此就完成了添加密码的全部流程。如果10秒后用户没有再对锁进行其他操作,锁会自动进入休眠状态,等待下一次唤醒。
图2-6 WIFI模块原理框图
结束语
综上所述,根据实验结果,验证本设计成功的实现了远程控制电子锁系统的各项功能,利用本设计,整体电路简单、可靠、实用。
参考文献:
[1]洪庆刚,周聪俊,徐明,孙乐明.零售药店的远程电子处方及审方服务系统的设计与应用[J].世界最新医学信息文摘,2019,19(A0):182+184.
[2]刘欣.基于虚拟化技术的远程电子数据保全系统设计与实现[J].电脑知识与技术,2019,15(21):11-14.
[3]张彦峰.基于3DES算法的电子锁安全性研究[D].华中科技大学,2019.