毕业设计(论文)-基于单片机的智能门禁装置设计_第1页
毕业设计(论文)-基于单片机的智能门禁装置设计_第2页
毕业设计(论文)-基于单片机的智能门禁装置设计_第3页
毕业设计(论文)-基于单片机的智能门禁装置设计_第4页
毕业设计(论文)-基于单片机的智能门禁装置设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的智能门禁装置设计全套图纸加V信153893706或扣3346389411)其中,x——表示调控之前的数值;Y——表示调控之后的数值;MaxG——表示原本的图像的灰度数值中的最大值;MinG——表示最小值。图片在上述公式的处理下进行了基本的初步调整,接下来将图片进行进一步处理。由于计算机大多情况下无法直接识别出照片,故需要对照片进行一些精密性处理。首先排除外部干扰图片的因素,将图片中的某个选取的部分分为若干小块,将每个小块的像素的值进行排序处理,挑选出中心值像素将其看作为这个选取的部分的均值。再将图片进一步加工,目的是去除光线等外部因素对即将提取的图像特征的影响。对于人脸检测与识别,适用矩形特征来进行特征性人脸的提取与检测,该种算法由adaptiveboosting算法衍化而来[21]。当人脸特征图片录入处理完成后,数据被传输到中心处理器中,单片机内部进行数据录入与比对,再控制开门与否(图2-5)。图2-5人脸识别模块组成部分

门禁系统硬件电路设计自动门禁装置的研究目的是将门锁系统的智能性、便捷性以及安防系数不断提高,而本课题采取的是将键盘密码、IC卡读取模块、指纹识别模块、人脸生物特征识别模块机整合控制门禁装置的机械锁的开与关。系统总体电路设计方案本课题选取STM32F103C8T6作为主要的控制芯片,IC卡模块选择的处理芯片是MFRC522,指纹识别模块选取的处理芯片为AS608这一指纹识别读取模块,人脸生物特征识别采用RaspberryPi作为主要处理主芯片。各部分的结构联结如下图3-1所示。图3-1总电路各部分连接示意图STM32F103C8T6引脚功能STM32F103C8T6有I/O口共计37个,ADC控制器(12位)共计两个,它的外围设备中有一个DMA控制器、一个PWM作用是控制电机、16位的定时器共计三个,12c接口共计两个,USART接口共计三个,SPI接口共计两个,一个CAN接口,一个USB接口;具体引脚的功能如表3-1-1所示表3-1-1STM32F103C8T6引脚功能序号引脚名称类型I/O电平主功能复位功能重定义功能1VBATSVBAT2VSSASVSSA3VDDASVDDA续表3-1-14VSS_1SVSS_15VDD_1SVDD_16VSS_2SVSS_27VDD_2SVDD_28VSS_3SVSS_3TIM4_ETR9VDD_3SVDD_310PC13-TANPER-RTC(4)I/OPC13(5)TAMPER-RTC11PC14-OSC32_IN(4)I/OPC14(5)OSC32_IN12PC15-OSC32_OUT(4)I/OPC15(5)OSC32_OUT13NRSTI/ONRST14PA0-WKUPI/OPA0WKUP/USART2_CTS(7)/ADC12_IN0/TIM2_CH1_ETR(7)15PA1I/OPA1USART2_RTS(7)/ADC12_IN1/TIM2_CH2(7)16PA2I/OPA2USART2_TX(7)/ADC12_IN2/TIM2_CH3(7)17PA3I/OPA3USART2_RX(7)/ADC12_IN3/TIM2_CH4(7)18PA4I/OPA4SPI1_NSS(7)/USART2_CK(7)/ADC12_IN419PA5I/OPA5SPI1_SCK(7)/ADC12_IN520PA6I/OPA6SPI1_MISO(7)/ADC12_IN6/TIM3_CH1(7)TIM1_BKIN续表3-1-121PA7I/OPA7SPI1_MOSI(7)/ADC12_IN7/TIM3_CH2(7)TIM1_CK1N22PA8I/OFTPA8USART1_CKTIM1_CH1(7)/MCO23PA9I/OFTPA9USART1_TX(7)/TIM1_CH2(7)24PA10I/OFTPA10USART1_RX(7)/TIM1_CH3(7)25PA11I/OFTPA11USART1_CTS/USBDM/CAN_RX(7)/TIM1_CH4(7)26PA12I/OFTPA12USART1_RTS/USBDP/CAN_TX(7)/TIM1_ETR(7)27PA13I/OFTJIMS/SWDIOPA1328PA14I/OFTJTCK/SWCLKPA1429PA15I/OFTJTDITIM2_CH1_ETRPA15/SPI1_NSS30PB0I/OPB0ADC12_IN8/TIM3_CH3(7)TIM1_CK2N31PB1I/OPB1ADC12_IN9/TIM3_CH4(7)TIM1_CK3N32PB2I/OFTPB2/BOOT133PB3I/OFTJTDOPB3/TRACESWOTIM2_CH2/SPI1_SCK续表3-1-134PB4I/OFTNJTRSTPB4/TIM3_CH1/SPI1_MISO35PB5I/OFTPB5I2C1_SMBAITIM3_CH2/SPI1_MOSI36PB6I/OFTPB6I2C1_SCL(7)/TIM4_CH1(7)USART1_TX37PB7I/OFTPB7I2C1_SDA(7)/TIM4_CH2(7)USART1_RX38PB8I/OFTPB8TIM4_CH3(7)I2C1_SCL/CAN_RX39PB9I/OFTPB9TIM4_CH4(7)I2C1_SDA/CAN_TX40PB10I/OFTPB10I2C2_SCL/USART3_TX(7)TIM1_CH341PB11I/OFTPB11I2C2_SDA/USART3_RXTIM1_CH442PB12I/OFTPB12SPI2_NSS/I2C2_SMBAI/USART3_CK(7)/TIM1_BKIN(7)43PB13I/OFTPB13SPI2_SCK/USART3_CTS(7)TIM1_CH1N(7)44PB14I/OFTPB14SPI2_MISO/USART3_RTS(7)TIM1_CH2N(7)45PB15I/OFTPB15SPI2_MOSI/TIM1_CH3N(7)续表3-1-146OSC_INIOSC_IN47OSC_OUTOOSC_OUT48BOOTOIBOOST最小系统原理图本课题选取的单片机STM32F103C8T6的系统的最小的原理图的组成部分主要有电源的电路模块、复位模块的电路、晶振模块电路、调试模块电路等;1、供电电源模块该模块主要可以分为电路的供电(图3-1-a(1))和降压(图3-1-a(2))两个模块。图3-1-a(1)供电模块图3-1-a(2)降压模块2、复位模块的电路复位模块电路如下图(图3-1-b)所示,其中有三种方式可以使之复位——使用电源使其复位、使用系统进行复位、以及后备域使其复位。电源使其复位的时候,引脚NRST拉低,从而外部的复位产生,同时有关复位的脉冲也得以产生,以致使系统复位。图3-1-b复位模块3、晶振模块电路该模块电路的主要作用是将信号传输给芯片,如图3-1-c所示。需要通过有关数据的手册确定特定的电路中需要的晶振。图3-1-c晶振模块电路4、去耦电容该模块的主要作用是将电路的杂波进行滤除,使引脚附近的电压维持一个较为稳定的状态,如图3-1-d所示。图3-1-d去耦电容5、下载模块电路有关该电路的BOOT的选择方式如表3-1-5所示,其电路的连接方式及设计如图3-1-e(1)所示。表3-1-5BOOT的选型标准启动下载电路的方法BOOT0BOOT1主闪存存储器0X系统储存器10内置SRAM11图3-1-e(1)确认下载方式的模块电路确认过下载的方式后,在进行下载电路模块的调试测量,如图3-1-e(2)所示。图3-1-e(2)模块调试电路6、指示灯电路的指示灯模块如图3-1-f所示图3-1-fLED灯模块7、I/O接口各I/O接口如图3-1-g所示。图3-1-g外接I/O口8、芯片封装整体的芯片内部连接图如图3-1-2所示。图3-1-2芯片内部连接图密码模块电路在本设计中密码模块电路,MCU选取的是STM32F103C8T6单片机,而密码模块选取的是4×4的键盘,使用者输入与预先录入的密码相匹配的密码后,开锁的信息由MCU发出传递给驱动继电器的模块实现门锁的开启,若输入的密码与录入的密码不匹配,报警模块启动,门锁不开启。密码模块总设计该模块的功能的控制系统使用的是选择的主单片机,主要的将密码键盘功能付诸实践的是根据判别检测每个按键。图3-2-1密码模块整体流程图密码模块键盘电路连接设计键盘模块的组成主要有I/O接口构成了完整的行结构和列结构,运行的方式主要是对每一行或者是每一列进行电平的扫描以来确认按键是否按下,具体的过程主要是每次特定的把选取好的那一行的电路电平给以低的电平,然后主机将依次读取检测被选取的行的电平的状态,如若检查测试到较为高的电平,那么可以确认检测过的行中有按钮被按下,紧接着检查测试每一列的电平的状态,检查测试下来相较低的电平所在的那一列与刚刚确认的所在的行的交叉的那一个点就是被按下的按钮,使用这个办法依次检测每个按键,可以确认按下的具体的按钮。而每个按钮的设置的功能并不一样,具体功能如表3-2-2所示,电路接线图如图3-2-2所示。表3-2-2各按键具体功能按键按键具体的名称具体的作用1-9键数字密码键盘输入数字密码P键重新设置密码键将密码重置O键确认键对比较合密码C键删除键删除输入的数字图3-2-2键盘接线图IC卡识别模块电路IC卡识别模块主要组成的部分是主要控制的单片机和特定的读卡模块MFRC522,使用者使用具有特定的感应功能的卡片与读卡模块感应,无需进行接触可以读取卡片并判断是否开锁。IC卡识别模块总设计该模块的总设计流程图如图3-3-1所示图3-3-1IC卡识别模块流程图读卡器模块引脚功能其中选取的特定的读卡器MFRC522引脚功能如表3-3-2所示、表3-2-2MFRC522引脚引脚名称类型具体功能OSCINI晶振输入IRQO中断请求SIGINI信号输入SIGOUTO信号输出TX1O发送器1TVDDPWR发送器电源TX2O发送器2TVSSPWR发送器地DVSSPWR数字地

不同接口地数据管脚D1I/OD2I/OD3I/OD4I/OD5I/OD6I/OD7I/OSDAI串行数据线EAI外部地址12CII2C使能DVDDPWR数字电源AVDDPWR模拟电源AUX1O辅助输出AUX2OAVSSPWR模拟地RXI接收器输入VMIDPWR内部参考电压NRSTPDI不复位和掉电OSCOUTO晶振输出TESTPIN三泰管脚(不连接)PVDDPWR管脚电源PVSSPWR管脚电源地读卡器模块电路设计1、接口电路设计读卡器模块MFRC522接口电路设计如图3-3-3(a)所示图3-3-3(a)MFRC522接口2、电线电路设计电线电路使得读卡器与IC卡片得以正常使用,读卡的模块和IC卡片通过读卡模块产生出的电能磁场再经过变压器装置的转换实现了信息的传递的功能,而电线电路使得信息的传递更加精准,使用户的使用感更加好。负责发射信息的电路、负责将信息接受的电路以及负责匹配各种电线的电路共同构成了电线电路[22]。具体电路如图3-3-3(b)所示图3-3-3(b)电线连接指纹识别模块电路指纹识别模块主要的构成部分有单片机主机和AS608作为识别主芯片,录入特定的指纹特征,形成了特定的指纹的特性数据储存在主机中,当再次识别时将扫描到的特定指纹数据与主机中储存的数据相对比,判断是否打开门锁。指纹模块总设计指纹模块的运行的过程大致可以分为录入识别到的指纹的过程和再次识别指纹的过程,流程如图3-4-1所示。图3-4-1指纹录入模块流程(左)指纹识别模块流程(右)指纹识别模块接口指纹识别模块AS608的引脚接口功能如表3-4-2所示表3-4-2AS608接口功能序号引脚名称具体功能1Vi电源正输入端口2Tx串行数据输出3Rx串行数据输入续表3-4-24GND信号地5WAK感应信号输出6Vt触摸感应电源输入7U+USBD+8U-USBD-该模块与主单片机的电路连接图如图3-4-2所示图3-4-2指纹识别模块电路接口图人脸识别模块电路人脸特征识别模块主要组成部分是主控的单片机和人脸特征图像的处理器,本文选取的是Respberrypi微型处理器来完成模块中的任务,使用了采集图片的模块、微型处理数据的模块、负责辅助的模块。微型处理模块在该模块中,选取的是微型处理器RPi树莓派,这一微型处理器可以被看做作为一个微型的电脑处理的主板,基于ARM,其内置存储器的硬盘是(Micro)SD卡,而处理器面板四周部署有一个或两个或四个USB的接口,以及部署有10/100的以太网的接口,因此,使用者可以将键盘等拓展件连接到该模块上,除此之外,RPi还具备了将模拟的视频的信号输送出去的接口以及输送视频的HDMI高清接口。该模块主面板如图3-5-1所示图3-5-1RPi主面板人脸识别模块总设计人脸识别模块设计运行流程图如图3-5-2所示图3-5-2人脸识别模块检测流程(左)运行流程(右)人脸识别模块接口RPi的主要参数如表3-5-3所示表3-5-3RPi主要参数名称参数SOC博通BCM2837CPUARMCortex-A531.2GHz64-bit内存1GBUSB接口4×USBPorts视频输入15-针头MIPI相机(CSI)界面影像输出HDMI1.4分辨率为640×350至1920×1200板载存储MicroSD卡插槽额定功率800mAH(4.0W)电源输入5V2.5A门锁接口连线如图3-5-3所示,在该设计模块中,电磁锁的接口VCC与GND为门锁在端口处输入电源的接口,而D+以及D-接口是门锁在端口处输入信号的接口。负责输入信号的接口接收到脉冲信号被发出的时候,电子锁的状态发生变化,电子锁开启,该模块中完成将脉冲信号传递输入功能的是继电器装置,该装置的位于右边的接口作用主要是将设计中被控制的模块相连接,在这之中,NC接口是一个常闭触点,而NO接口是一个常开触点,COM接口代表的是一个公共的端口,当COM接口与NO接口相连接时整体装置的电路断开,而当COM接口与NC接口相连接时整体装置电路接通。该装置的位于左边的接口作用主要是传递输出功能的是继电器装置,在这之中,VCC接口代表的是接入电源的端口,GND接口代表的是接地的接口,IN接口代表的是将信号传递输入的接口。当较高的电平输入到IN接口的时候,与NO接口连接的装置和与NC接口连接的装置的原来的状态被改变。而主芯片RPi的2号引脚主要作用是将5V的电压输送出去,6号引脚主要负责接地,12号引脚主要负责将信号输送出去。在本模块中,电路中将NO接口与COM接口相连接,故若较高的电平被输入到RPi的12号接口中的时候,各模块相连接后运行,最终门锁模块原先的电路断开的状态被改变,变为电路接通的状态,在这种情况下,电磁锁开启。图3-5-3人脸识别模块接口图电源模块电路电源模块电路主要的供电为+5V的直流电源,如图3-6所示,电流通过AMS1117-3.3低压差的线性稳压器降低到3.3V,该模块的电压由此供给。该稳压器一般适用于对电池的供电性能进行管理的装置,而该稳压器具有数个不同类的特别性能,例如其最大的输入电压为12V,其电流的限制最大可以为1A,它的存储的温度最高的可以达到150℃而最低的可以达到-65℃,而它的稳定电压的精度系数约为3%[23],其接口的具体功能如表3-6所示在该模块中,根据设计好的指示灯电路里二极管的光对电路的运行的工程进行判断,而稳压器左侧的电容的作用是对整体电路的噪声进行清理减弱。表3-6AMS1117具体接口引脚名称类型具体功能ADJ/GNDO/-ADJ/接地VOUTO电压的输出VINI电压的输入图3-6电源模块继电器模块电路该模块如图3-7-2所示,作用主要是操控特定的模块的电路的接通或者断开,其在自动性能的装置中较为常见[24],本质性能是借用一组较小的电流操控一组较大的电流,以此对电路的接通或者断开进行管理设置.将主机的I/O接口连接上三极管进行继电器模块的驱动,进而实现门锁的开启与闭合,当较高的电平被输入时,三极管处于饱和的状态并导通,运行后由此门锁关闭,当较低的电平被输入时,三极管处于截止的状态不导通,运行后由此门锁开启。图3-7-2继电器模块报警模块电路报警模块主要的组成部分是BEEP模块,报警模块主要负责当密码模块、IC卡识别模块、指纹特征识别模块、人脸识别模块中未能正常顺利识别后的报警提醒作用,具体的电路连接图如图3-8所示。图3-8报警模块显示模块电路本模块中显示模块主要采用芯片的是1602液晶模块,该显示屏主要有16位接口,常见且使用方式简单便捷,这个型号的显示屏每一行显示的字符的字数是16,可以显示的行数是2,它的接口的主要功能如表3-9所示表3-91602主要接口序号引脚名称具体功能序号引脚名称具体功能1VSS接地源9D2I/O口2VDD电源正极10D3I/O口3VL调整显示对比度11D4I/O口4RS数据/命令选择12D5I/O口5R/W读/写选择13D6I/O口6E使能信号14D7I/O口7D0I/O口15BLA背光源正极8D1I/O口16BLK背光源负极其中VL引脚主要功能是对显示屏的对比度进行调整,当其与正电源连接时对比度最低,对比度最高的时候是其接地的时候,故连线的时候接入一个10K的可调节电阻方便调整其对比度到合适的范围;RS引脚主要功能是进行不同的寄存器的选择,当处于高电平的时候选择数据寄存器、当处于低电平的时候选择指令寄存器;RW引脚主要功能处于高电平的时候选择读取、处于低电平的时候选择写入。该模块的电路图连接主要由图3-9所示。图3-9液晶显示电路系统各部分的PCB所谓PCB图是指硬件电路的内部的电路的版图的设计,它是电子元件中十分重要的的一个部分,对后续电路的元件之间的连接十分的重要,它使后续的电路板的装配与焊接的更为便捷,也使后续的工程量缩小。PCB在设计中有许多功能,它可以辅助完成硬件电路中每一种选取的器件的连接与其在电路板上的电路的布线的问题,并且后期可以完成部分出现一些问题的元件的问题排查,使整个电路的维修的成本降低等。1、STM32F103C8T6的PCB布线图单片机主芯片的PCB布线图如图3-10-1所示图3-10-1STM32F103C8T6电路板布线图2、密码模块PCB板密码模块的电路板布线图如图3-10-2所示图3-10-2密码模块电路板布线图3、IC卡主芯片模块布线图IC卡主芯片模块布线图如图3-10-3所示图3-10-3IC卡模块电路板布线图

门禁装置机械部分设计门禁装置最后执行所有的命令的装置是与继电器相连接的的门锁部分,它主要负责在各个模块运行结束,发出指令后执行开门或关门的指令。而机械门锁的设计要求是能安全而有效的负责门的打开与关闭,以及当执行关闭指令时门锁锁死不可通过内外机械控制打开。智能门禁系统门锁结构智能门禁系统的机械外壳主要有机械部分的插销、识别部分的机械主板等各类零散的结构部分组成,它们之间进行组合安装以使门锁可以正常工作。门禁系统主要的结构示意图如图4-1所示。图4-1智能门禁系统机械部分结构图示各机械部分材料选择与简介智能锁大致包含以下几个部分:一、智能锁面板覆盖面板构成了锁的大部分外壳结构,及保护了锁体,又有装饰锁体的功能,如今,较为常见的构成面板的材质是铜、不锈钢、塑料、锌合金、铝合金等,它们的具体特点如表4-2-1所示。表4-2-1各材料特质材质特点价格铝合金硬度低、易成型、分量轻不定不锈钢硬度高、难成形、耐磨损中等铜硬度高、易成型、工艺杂乱略高锌合金使用广、硬度适中、易成型、易加工、工艺成熟高低不等塑料辅助使用、材质脆、易损坏、易成型、易处理低现在生活中常见的智能锁的主体面板部分主要部分采用锌合金,其余部分采用塑料、不锈钢等一起组合而成,如图4-2-1所示。图4-2-1智能锁面板构成二、锁体智能门锁主要防范加强安全的结构是锁体,如图4-2-2所示,它的构成有锁舌、主体,锁体主要掌握了锁的开合以及紧闭,锁体中锁舌主要负责门锁的承力,锁舌是实心材质的。各个不同的锁体的尺寸是有所区别的,而现如今大多锁体采用的是国际标准尺寸。不同的门锁的锁体结构也有所不同,不同的门锁有四舌的锁体、也有五舌的锁体、还有的使用双钩锁舌等,但总而言之,对于锁体而言锁的点数多一点对安全系数会有所加强。图4-2-2锁体内部图锁体的主要的结构部分一般选用锌合金或是不锈钢。但两者对比而言不锈钢这一材料具有更好的耐磨的特性,也抗各种撞击且不容易变形,故选取不锈钢作为锁体与锁舌的材料。三、锁芯锁芯是锁体中最为重要的一个部件,锁芯与机械钥匙相契合,是控制门锁开合与否的最主要部分。机械的防盗锁有一个具体的相关规定和技术指标,主要有A级锁和B级锁两种,后来各类生产锁具的企业又自行规定了超B级的锁芯,它们的主要区别在于锁孔与钥匙的不同。A级锁如图4-2-3(a),B级锁如图4-2-3(b),A级的锁相对而言会比较易打开、工艺会比较简单,B级别锁相对而言工艺会更精良一些,不能轻易被打开,超B级的锁芯的工艺会更加复杂,更难打开,安全性更加稳定。它们的区别具体如表4-2-3所示。表4-2-3锁芯对比A级(国家标准)B级(国家标准)超B级(企业标准)平板/月牙型平板或月牙型平板或月牙型平板型钥匙槽一排凹形槽两排凹形槽两排凹形槽以及S形槽其他型号十字型四面凸型槽圆柱型多点凹形槽内外双蛇形槽防盗门抵抗非正常开启时间/分钟153030防钻破坏时间/分钟153030防锯破坏时间/分钟51010防撬破坏时间/分钟153030防拉破坏时间/分钟153030防冲击破坏时间/分钟153030续表4-2-3防技术开启时间/分钟15270互开率≤0.03%≤0.01%≤0.0004%安全系数低较高高图4-2-3(a)A级锁图4-2-3(b)B级锁

门禁系统软件部分设计门禁系统的功能实现需要软件部分的设计与运算,该模块主要是对选择的软件的介绍与各模块的软件设计流程说明,最后实现各模块的成功运行。设计软件简介本课题中,选取了keiluVision5来实现前三个模块(密码、IC卡、指纹)程序的编写与运行试验,选取了matlab实现人脸模块的数据运行检测。Keil5软件可以实现编译数据,也可以实现数据的调试与测试,它支持了很多种器件的运行,包含了如今大部分常见的运行芯片。而matlab这一软件能完成对矩阵的编辑与运算,可以将算法与数据运行,也可以实现函数的绘制,还可以与其他的编程软件相互连接。主控模块程序设计主控模块选取的是以STM32F103C8T6为主控核心的运行模块,分别使用各个模块分别控制门锁的开合以及锁定,使用程序分别编写各个模块,最后统一进行测试与运行,如此便可以使后续的调试与修改更加便捷[25]。智能门禁装置的各个模块运行总设计如流程图5-2所示。图5-2程序总设计流程图本课题中控制门锁的开合方式共四种,IC卡识别、密码识别、指纹识别、人脸识别,而系统中的主程序设计包括使STM32各端口值恢复初始、读卡模块RC522设置为初始值、密码键盘端口设置为初始值、指纹模块AS608设置为初始值、人脸模块RPi设置为初始值,这些程序控制共同组成了主程序,而其各个模块分为不同的子程序,有键盘控制模块的程序、IC卡控制模块的程序、指纹模块的识别与管理程序、人脸模块的识别与管理程序、继电器的运行与接受指令的程序等,所有模块联合控制管理主控模块,最后共同控制门锁的开合与否。主程序主要负责将各个模块恢复到初始的值以及判断与识别在有限的测定时间内是否有打开门锁的指令,若检测到指令的出现则进入判别的步骤,若符合开启门锁的要求则打开门锁,若不符合门锁开启的要求则启动报警模块,而如若在有限的时间内没有接收到任何打开门锁的指令,则将系统的电源断开。在程序的总设计中需要使用的部分程序:SystemInit()∥使系统恢复初始设置RCC_Configuration()∥将时钟设置为初始GPIO_Configuration∥初始引脚USART_Configuration∥将串口设置为初始BEEP_Init()∥将蜂鸣器赋予初始的值LCD_Init()∥将LCD进行初始化设置AS608_Init()∥指纹模块调整为初始的值RC522_Init()∥IC卡模块调整为初始的值Sudoraspi-config∥人脸模块调整为初始的值密码模块程序设计密码模块的程序设计包括了密码的设定模块和使用密码进行识别以此开启门锁的模块。密码的设定模块的程序运行流程图以及密码的识别模块的程序运行的流程图如图5-3所示,与LCD模块相连接。图5-3密码的模块的流程图(左)识别模块的流程图(右)当模块开始运行的时候,系统开始供电,开始检测密码输入模块是否运行,密码模块对输入密码的时间有所要求,若超过规定时间则会判定为密码输入错误,LCD会显示重试,若接连三次密码输入错误会启动报警电路,门锁关闭。而当我们进入密码的调试模块的时候,需要核对原始的密码,若相一致则可以修改密码,若不匹配则需要重新输入[26]。在密码模块的部分程序:intkey(void)∥返回int类型按键值{intKeyVal=0; GPIO_Write(GPIOB,(GPIOB->ODR&0xf0ff|0x0f00)); if((GPIOB->IDR&0xf000)==0x0000) return-1;else {delay_ms(5); if((GPIOB->IDR&0xf000)==0x0000) return-1;} GPIO_Write(GPIOB,(GPIOB->ODR&0xf0ff|0x0100)); switch(GPIOB->IDR&0xf000) {case0x1000:KeyVal=1;Key_Scan[1]=1;break;∥1 case0x2000:KeyVal=2;Key_Scan[2]=2; break;∥2 case0x4000:KeyVal=3;Key_Scan[3]=3; break;∥3 case0x8000:KeyVal=11;break;∥A} GPIO_Write(GPIOB,(GPIOB->ODR&0xf0ff|0x0200)); switch(GPIOB->IDR&0xf000) {case0x1000:KeyVal=4;Key_Scan[4]=4; break; case0x2000:KeyVal=5;Key_Scan[5]=5; break; case0x4000:KeyVal=6;Key_Scan[6]=6; break; case0x8000:KeyVal=12;Key_Scan[1]=0; break;} GPIO_Write(GPIOB,(GPIOB->ODR&0xf0ff|0x0400)); switch(GPIOB->IDR&0xf000) {case0x1000:KeyVal=7;Key_Scan[7]=7; break; case0x2000:KeyVal=8;Key_Scan[1]=1; break; case0x4000:KeyVal=9;Key_Scan[1]=1; break; case0x8000:KeyVal=13;Key_Scan[1]=0; break; }GPIO_Write(GPIOB,(GPIOB->ODR&0xf0ff|0x0800)); switch(GPIOB->IDR&0xf000) {case0x1000:KeyVal=15;Key_Scan[1]=0; break; case0x2000:KeyVal=0;Key_Scan[0]=0; break; case0x4000:KeyVal=16; Key_Scan[1]=0;break; case0x8000:KeyVal=14;Key_Scan[1]=0; break; } returnKeyVal;}IC卡模块程序IC卡模块控制的程序运行步骤如图5-4,模块开始运行之后选取的模块中的各个端口进行数据初始化操作,MFRC522模块各端口都进行数据初始化处理,在将所有的数据初始化之后可以开始进行IC卡的卡片读取与识别。最后结果在LCD模块进行显示,模块控制门锁开合与否。图5-4指纹模块流程图该设计采取LCD模块连接显示系统的状态,一开始初始化之后开始识别卡片,当模块识别到卡片的时候,判断卡片是否为已录入的,若对比之后发现信息一致,则控制门锁结构开启,LCD则会将卡片的信息显示出来,若比对失败,则LCD显示错误,报警模块开始运行。模块设计的一部分的程序如下所示:u8show_flag=0;∥显示的界面unsignedcharnum;unsignedcharkey_flag;∥显示当前IC卡需要执行的任务unsignedchari;unsignedinttemp;unsignedcharstatus;unsignedcharg_ucTempbuf[20];unsignedcharg_ucTempbufid[20];∥对录入的IC卡进行暂时的存放unsignedcharlcd[]="0123456789ABCDEF";∥显示出当前IC卡的卡号unsignedchardataerr[16]={0x11,0x11,0x11,0x78,0xED,0xCB,0xA9,0x87,0x12,0x34,0x56,0x78,0x01,0xFE,0x01,0xFE};∥错误的IC卡unsignedchardata1[16]={0x12,0x34,0x56,0x78,0xED,0xCB,0xA9,0x87,0x12,0x34,0x56,0x78,0x01,0xFE,0x01,0xFE};∥一致的IC卡指纹模块程序指纹模块控制的程序运行步骤如图5-5(a)和5-5(b),模块开始运行之后选取的模块中的各个端口进行数据初始化操作,AS608模块各端口都进行数据初始化处理,在将所有的数据初始化之后可以开始进行指纹图片的读取与识别。该模块中包含对特征指纹的录入与读取识别。图5-5(a)个人的特征性指纹的录入流程图图5-5(b)个人的特征性指纹的识别流程图在该模块中有录入指纹的程序、删除指纹的程序等,为了让系统的操作更加便捷与一目明了,给检测到的特征性指纹模块编写ID号录入到对应的指纹库中,每次录入指纹的时候需要进行连续两次的采集,将合适的特征性指纹储存,录入符合要求的特征性指纹,后续进行指纹的识别时将检测到的指纹与数据库中的指纹相互比对,若符合要求则将门锁开启,若不符合规定则报警模块开启。部分程序如下所示:voidpress_FR(void){SearchResultseach; u8ensure; char*str; ensure=PS_GetImage(); ∥SUO_Init(); LED_Init(); if(ensure==0x00)∥成功的得到指纹的图像 {ensure=PS_GenChar(CharBuffer1); if(ensure==0x00)∥生成特征性指纹 {ensure=PS_HighSpeedSearch(CharBuffer1,0,300,&seach); if(ensure==0x00)∥搜索成功 {LED0=1; LED1=0;BEEP=1;delay_ms(2500);BEEP=0;SUO=0;∥开启门锁 LCD_Fill(0,100,lcddev.width,160,WHITE); Show_Str_Mid(0,100,"Searchfingerprintsuccess",16,240); str=mymalloc(50); sprintf(str,"MatchID:%dMatchscore:%d",seach.pageID,seach.mathscore); Show_Str_Mid(0,140,(u8*)str,16,240); myfree(str);} else {ShowErrMessage(ensure);BEEP=1;LED0=0;SUO=1;delay_ms(3000);BEEP=0;}} else {ShowErrMessage(ensure);} delay_ms(1000); LCD_Fill(0,100,lcddev.width,160,WHITE);}}人脸模块程序人脸模块分为人脸图像的识别与录入,总流程图如5-6所示,需要先对读取到的人脸图像进行处理与识别,当处于录入的步骤的时候,要进行图片的处理,先对截取的图片进行图片的范围处理,选取适当的人脸范围,识别特征,最后得到特征型人脸,将其录入,形成储存的汇总。而人脸识别步骤再次处理图片,对图片进行适当地转化,最后提取特征,生成比对的样本,与汇总的录入的资料进行对比,判断是否有符合要求的特征,若有符合要求的特征则门锁开启,若不符合要求则门锁不开启。图5-6人脸模块总流程该模块中,人脸录入的数据记录的流程图何识别的流程图如图5-6-1所示。其中人脸数据范围截取的部分程序如下所示:F=imread(‘face9.jpg’);F=rgb2gray(F);∥将人脸图片灰度化处理level=graythresh(F);BW=im2bw(F,level);∥二值化[n1n2]=size(BW);H=floor(n1/10);∥分割图片使之成为10模块W=floor(n2/10);h1=1;h2=H;s=H*W;∥求得块的面积hi=H;wi=W;fori=1:10w1=1;w2=W;∥对应列初始化forj=1:10if(w1≤wi||w2≥9*W)||(h1≤hi||h2≥n1-h_i)∥截取图片是否在四周loc=find(BW(h1:h2,w1:w2)==0)[num,~]=size(loc);pr=num*100/s;∥计算灰度为黑色的像素占的比例图5-6-1图片处理流程图(左)门锁运行流程图(右)

结论本设计主要研究了智能门禁系统的四种开启方式,如今门禁系统的市场规模逐步扩大,人们的需求逐日增加,对门禁系统的技术要求也越来越高,对其安全指数和便捷指数的需求逐步上增。本课题主要通过对各部分门锁系统的研究,设计并探索了几种较为常见的智能门锁开启方式。本设计的主要研究内容是基于STM32单片机的智能门禁装置设计,通过IC卡,密码、指纹监测和人脸识别实现门禁系统的运行。主要设计内容分为四个模块,IC卡识别、密码识别的设计、指纹识别模块的设计以及人脸生物特征识别模块,最终各模块运行控制门锁的开合与否。在整个设计的过程中,我主要学习与练习了以下模块:学习深入了解了STM32F103C8T6单片机的,明白其特征、内部构造与运行方式,初步着手进行它的简单连接与运行;学习了解密码识别模块,了解学习并着手设计了4×4密码键盘,学习密码键盘识别运行方式,并进行电路连接和软件程序设计,认识了电平置位的运行方式;学习了IC卡运行,初步了解MFRC522模块,认识了频射卡,并探索了解IC卡运行原理;学习认识了指纹特征的读取与识别的原理,了解认识了AS608模块,探索了指纹模块图片的处理与录入算法,同时初步了解其运行模式,了解AS608各个端口;初步认识树莓派模块,了解了简单的人脸识别的原理,初步学习了简单的人脸照片的处理与计算,初步了解灰度化与二值化处理图片的方式,也初步了解树莓派运行方式;认识了门锁的机械部分的组成,了解各个部分的常见材料与其优缺点,也初步学习了机械门锁的运行的方式,通过对械部门内部结构的探索分析与设计学习了常见的门锁的机械模块;了解了简单的LCD模块运行方式与连接方式,了解LCD1602的基础特征,学习LCD1602的简单显示方式;研究设计了简单的各模块的硬件部分的电路的连接与运行过程,对选取的各个模块进行初步的硬件部分的学习与了解;研究设计了简单的各模块软件程序部分,学习认识了初级的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论