开云(体育官方网站)-国家认证服务平台

欢迎访问开云服务平台——上海嘉定区智能门锁整体解决方案专家!

预约上门| 联系我们
开云服务平台24小时热线

全国24小时服务热线

021-59928708
行业新闻 公司新闻
基于STM32单片机的智能锁设计
时间:2026-04-10 20:59:52        点击量:【】次

  随着智能锁的兴起,社会上的人们对锁的选择也是多了,一部分人还是保持传统,习惯于机械锁,而另一部分的人则选择了智能门锁。我们都知道传统的防盗机械锁内部是凹凸配合,只要符合其内部结构,组合一致,即可打开门锁进入。所以我们平时钥匙掉了,去配一把组合一致的钥匙即可重新使用,但同时也带来了一些隐患。设计一种以STM32单片机为主的一款智能锁,以指纹、卡、密码、遥控器等都可以用来开关门锁。

  任何组合数多了都存在一定的重复性,比如钥匙和门锁,有时邻居的钥匙竟可以打开自家的大门。所以说智能锁的出现,给了人们更好的选择,而智能锁的特性在于其“智能”二字,可以放弃钥匙对于门锁的束缚,用指纹、密码、射频卡、遥控器或者发展其他智能性物品用来开锁,他的优势在于安全性高,比传统机械锁方便。

  锁,是家庭的第一道安全防线。锁上门,外出会放心,睡觉会舒心,回家看见锁是好的会安心。但传统的机械锁有时会有一些麻烦,比如,回家时翻着大包小包找钥匙不方便,出门时钥匙忘家里,外出时钥匙弄丢了,甚至一些不法分子研究透彻了传统机械锁会很容易走进家门,实施犯罪。于是人们就把目光看向了另一种既安全有方便的锁。

  现如今,智能锁的普及是越来越快了,所以人们选择智能门锁来替换机械门锁来保证家庭第一道防线让自己更安心一点。更不用再为把钥匙忘在家或者是把钥匙弄丢了的烦恼了,智能锁主要体现在“智能”两字。如何体现出“智能”两字,你可以用多种方法开门,比如,指纹,密码,房卡,甚至是用脸来开门。你可以根据你的需求来定制智能锁,需要什么功能就使用什么功能。

  智能锁是集机械装配技术,电子电路,计算机技术为一体的现代化科技门锁。我们知道,人的指纹就像树叶的纹路一样,是独一无二的。智能锁采集指纹是配合光学传感器记录你的指纹,而后再使用指纹识别技术进行指纹对比开锁。而使用卡来作为验证密码时时通过读写器对卡片权限进行识别,可以让你隔着手提包就开门。密码你可以随意设置自己喜欢的,输入密码开门。

  智能门锁系统的组成主要分为内部和外设,内部有控制器和存储器,外设有显示器模块和外设开锁模块。最主要的核心选择的是STM32控制器,一般情况下,外设使用不同的通信协议控制。系统组成如图2-1所示:

  系统启动后,初始化系统时钟、串行端口、内部存储器等相关模块,初始化完成后,主控制器则处于轮询状态,此时可用指纹、密码、射频卡、遥控器等模块触发,各个模块之间的中断引脚的电平变化是不一样的,主控制器就是根据引脚电平变化判断那些模块产生的,将指令通过通信接口发送给模块,当模块接收到主控制器发送的指令后,行驶指令命令,并将执行的结果返回,根据接收到的返回结果判断后,在发送执行动作的下一条指令。开锁指令如果正确,则驱动电机,进行开锁,当中断处理完成之后,主控制器继续轮询。

  单片机内存有两种类型:程序内存和数据内存。程序内存数据运行时不能改写。数据内存中的数据在断电后可能会丢失。所以电子密码无法使用单片机自带的存储设备进行存储,一般我们都会在单片机外部外接存储设备,专门来保存电子密码。单片机常用的外接存储器有两种,分别是:EEPROM存储器和Flash存储器。而本设计采用的是EEPROM存储器。

  AT24C04是Atmel公司生产的存储芯片,采用I2C总线方式进行数据读写,他可以在标准模式、快速模式和高速模式下运行。低功耗的CMOS型EEPROM芯片主要特点是可读可写,掉电数据不丢失。

  射频识别,RFID技术,别称无线网络射频识别,是一种通信技术。他的优点在于识别距离远,不局限于眼睛看到的距离和不易于伪造等。常用的有低频、高频、超高频,微波等技术。RFID系统其组成部分基本都是有电子标签、阅读器和上位机3部分组成,工作原理是,电子标记在天线发出的射频信号范围内,可以访问读卡器来获取能量,用以驱动应答器电路将内部的数据送出,一旦reader信号处理完成,主机标识符就会识别标签,并根据应用程序的不同设置相应处理它们

  “智能锁开发平台”使用的是BS8116电容触摸传感器控制芯片来管理数字密码键盘的操作。具有12个按键输入通道以及1个触摸感应中断输出,一旦有按键被按下,则中断脚IRQ则输出低电平。BS8116电容触摸传感器控制芯片采用I2C总线方式进行数据读写,可工作于标准模式、快速模式。操作流程如图2-4所示。

  智能门锁的核心是STM32F103单片机,其中开锁外设模块包括指纹模块,射频卡模块,3*4键盘模块,存储模块采用AT24C04芯片存储数据,显示模块采用OLED显示屏。

  智能门锁的主控制器选用了芯片STM32F103C8T6,芯片不仅具有强大的配置,而且拥有丰富的资源,运行速度还很快,工作频率最高达到72MHz。其SRAM容量为20Kb,Flash容量为128Kb,使系统能运行复杂的运算和装载较大的程序。主芯片拥有丰富的外设资源,通信接口有三个串口,两个IIC和两个SPI等接口,并且支持串口调试。

  显示模块是人们第一眼看见的模块,是人机交互的重要模块,所以为了给用户良好的视觉体验,采用了高亮度颜色纯正的OLED显示屏,因LED显示屏需要背光源,OLED显示屏不需背光源,而且还具备自发光、对比度高等优点,使用反应速度快和温度范围广等优异特征。芯片内部有升压电路,只需要3.3V供电即可工作。OLED外观图如图3-1所示。

  本系统选用的8080并口协议进行通信,进行数据通信,相应地,在低电平有效设置、读写和编写信号,允许在低电平有效时转移信号,数据/控制指令。还有8位的双向数据引脚。原理图如图3-2所示。

  系统采用的是AT24CO4芯片,用来存储用户密码、指纹、开锁记录等信息。并且在掉电情况下存储的数据不会丢失,可以对里面的数据进行擦除和修改。系统中EEPROM和主芯片通过IIC通信协议进行数据传递。数据原理图如图3-3所示。

  键盘模块采用了BS8116芯片,BS8116芯片具有触摸按键,可用来检测外部人员对键盘模块操作的触摸按键实值传回主机。该系列的芯片能应用广泛,还具有非常高的灵活性。BS81116提供了串行及并行输出功能,通过增加电极的数量,增强触摸检测的性能,可方便与外部主控制器之间的通讯。BS8116存储芯片的IIC通信的管脚分别连接在内核的PB5和PB4上,芯片地址管脚做接地处理,并且由于按键的编号和芯片的管脚号码并不是一一对应的,所以还需要添加序号判断。键盘模块连接图如图3-4所示。

  本系统的指纹模块采用 MG200 电容式指纹采集器。MG200 的电容指纹使用电容指纹传感器,可以实现防止假手指和假指纹等功能效果,并且可以完成指纹的采集、比较、存储以和其他相关的扩展功能。该模块由核心算法和管理程序两部分组成。MG200 电容指纹识别模块的管理程序,通过 TTL 电平的 RS232 串行总线接口与主控单元 MCU(或上位机)连接,指纹模块中使用高速DSP芯片。他能与不同类型的进行混合,可以录入指纹,指纹对比和进行图像处理等功能。在模块中使用了高性能指纹比对算法,在寻找指纹的过程中,只需要很短的时间,1秒以内就可以检索出来。经过串行接口和主控制器的相连,在模块里面安置了手指探测电路。采集器接收来自主控单元 MCU(或上位机)的指令,实施对应指令的操作,执行结果将通过RS232接口返回到操作完成后的MCU主控制单元(或上位机)。,从而实现指纹处理模块的管理平台。使用智能组合接口指令,就可以适用于各种场景,而功能逻辑则完全由主控单元 MCU(或上位机)决定。图3-5所示为指纹模块连接图。

  本系统采用的是 RC522 的RFID射频读写卡模块,RC522是起到一个发射指令和接收数据的作用。卡内内置了几组线圈,当接收到的电磁波频率与卡内LC谐振电路频率相同时,引起射频卡振动,就可以生成同频共振,并使电容内产生电荷,这时就可以接收读写器数据或者将数据发送出去。读写模块采用SPI协议进行通讯,数据传输方式是先传高位再传低位。最大的传输速度为 10Mbit/s,数据与时钟相位关系满足“空闲态时钟为低电平,在时钟上升沿同步接收和发送数据,在下降沿数据转换”减少与数据转换相关的有限关系。SPI管脚功能如表3-2所示。

  由于本系统采用的是STM32单片机,32单片机不仅功能强大,而其系统编程语言采用的是C语言,用C语言来程序设计为现在单片机软件开发主导地位,因其语法简练、丰富的运算符、结构化等特点。终端软件程序设计采用模块化编程思想,每个小功能封装在一个函数中,使其分开又有联系,可以相互调用,方便优化代码。

  智能门锁系统软件主要包含了OLED显示模块,使用EEPROM的存储模块,BS8116的键盘模块,MG200的指纹模块,RC522的读卡器模块。

  智能锁门锁使用 0.96 英寸双色 OLED 液晶屏(蓝色、黄色),OLED 液晶屏显示控制器型号为:SSD1306。液晶屏分辨率为 128×64。SSD1306 显示控制器支持 SPI 模式 3 的数据传输方式(时钟空闲状态为高电平,数据在时钟的偶数边缘被采集)。数据传输顺序为先发高位,再发低位,数据位宽为 8 位,如图 4-1 所示。

  本系统选用的OLED显示屏自身不带汉字库,所以需要通过软件对显示汉字进行取模。设置好需要的汉字的字体,字宽和高生成字模保存到程序文件数组中,方便进行调用。在先显示时对显示的内容,字体大小和位置传给函数并进行封装。程序如下

  本程序采用IIC通信将开锁记录写入EEPROM中。IIC 总线两线制包括:数据线SDA 和时钟线 SCL,可以发送数据和接收数据。总线必须由主机控制,数据线SDA从高电平向低电平跳变表示开始传输数据,数据线SDA电平从低向高跳变停止传输数据。IIC 通信总线上分为主机和从机,在上面可以用有多个主机,也可以有多个从机。并且从机永远不会主动给主机发送数据。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。

  EEPROM程序设计:先分别创建 IIC 和 AT24C04 的驱动代码,以便驱动底层时好调用,在 AT24C04 驱动程序代码包括从指定地址读取数据功能,并将数据功能写入指定地址,例如向芯片 AT24CO4 中写入数据。代码如下:

  客户经过键盘操纵菜单以及开锁功能,在操作时我们可以用按键2和8进行上下翻页,找到我们需要的功能,并且在输入密码时,用按键 # 来确认开锁。因为实现这些功能都需要得到确切的按键值,所以我们就得先初始化模块,然后在IIC中写入相应的值,完成后,可以使用函数获得相应的值。如果同时按下多个按键则视为无效输入。按键程序代码如下:

  主控制器和指纹模块经过串口从事连接.主控制器将指令发送到指纹模块,模块得到指令后并产生一个回复信号发给主控单元。指纹模块的每次接收和应答后,接收块都要检查接收到的数据的正确性,如各项都符合要求,就判断接收到的为正确回复。也就是,起始位,收发的地址是不是无误,命令码是不是与发送的命令码相同,校验和是不是准确等。指纹模块的串口无法同一时间开展收发动作,所以在指纹模块发送的期间主控制器不能发送数据. 主控制器和指纹模块之间的通信以数据包为单位进行。 通信数据包分为发送数据包和接收数据包。通信指令集分为指令目录(主控制器发送至指纹模块)和应答目录(指纹模块发送至主控制器)。格式如下图所示。

  读写器必须使用主接口控制器来连接主控制器,所以在读写卡片上的信息时,首先要启动SPI时钟。通过SPI函数对数据和参数进行设置,传输数据时还需要对数据进行判断是否传输完成,判断完成标志位,发送缓冲区为空,在SPI通信过程中,传输数据和接收数据是同时进行的,即读写操作同步完成,数据的发送和接收结束,SPI 读写代码如下:

  为了实现卡片开锁,得先把卡片的信息存储到系统里,后面才能进行开锁。当把卡的信息存储完成后,用户就可以使用射频卡打开智能门锁,射频卡与读卡机之间的相互通信会经过多个步骤完成,经过复位应答:主机提供应答信号,防冲突检测:不同卡片的信号不同,选择卡片:多张卡中选择正确的卡进行响应,以及其他步骤,完成以上操作后是读写射频卡内的数据操作。当射频卡在读卡器的射频界限内时,控制器向读卡器发送逻辑寄存器、预寄存器和卡片读卡器的记录值,读卡器通过电磁信号产生的感应与卡片进行通信,这样就可以判断射频卡是不是为S50卡。当检测到射频界限内存在不止一张卡片时,这时候就要进行防冲突检测了,就是与已经存储的卡片ID与检测的卡进行对比,如果不匹配则换下一个ID进行检测。如果检测到正确卡片ID,下一步就可以进行选卡操作,选择正确地址号传输给射频片,当射频卡接收到信号之后,马上反映读出器的申请,如果匹配完成,将信标跳跃回馈给读卡器。经过以上一系列操作过后就可以对密码进行校验,经过三次验证成功之后,就可以对卡片的ID进行读取并保存在存储器中。卡片读写操作如下图4-3,4-4所示。

  这次的基于单片机的智能锁设计不但让我更深层次的知道了单片机等基于书面上的学问,并且运用实际动手操作,更深层次地了解到所学专业的知识和掌握动手的能力。在我查阅文献、资料的时候,通过对一部分的取舍,概念的大纲推敲,一些小细节的反复思量,使我的能力得到了提升,运用知识的能力也更强大。在对于硬件的设计和选型是通过多方面来进行对比以及经济方面来选择,主要是为了增强用户的体验。软件方面则是熟悉STM32库函数,以及外设模块的软件开发,并对通信接口有了一定的了解,根据模块特性结合了系统的实际需求。通过这段时间的努力,我从以前只有单片机的理论知识,但现在的理论知识和实际相结合提升了我综合运用所学基础知识能力。

  [2] 张兆建,刘政.嵌入式Linux驱动程序开发实例教程[J].北京:清华大学出版社,2011(9):10-12。

  [4] 张世玲,李娜,实用型指纹锁设计[J].中国新技术新产品,2009(16):14-14。

  [7] 任葛荣可编程智能电子锁控制器的设计与实现[D].华南理工大学,2011.

  [8] 高福友.低功耗指纹锁无钥匙门禁系统设计及协议制定[J]计算机工程与设计,2011,32(3):887—891.

Copyright © 2026 开云服务平台 版权所有    沪ICP备2024090651号

x
立即预约,专业上门服务!

提交信息后,我们将在1小时内与您取得联系