版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1课题背景伴随着信息技术不断创新,商务楼宇管理方式由传统物权管理逐渐演变为室内空间人流、物流、能源等综合管理和社会化新兴服务方式。而信息交互方式的多样性促使管理方式趋于智能化、高效性、安全型等模式,智能交互技术在现代各项领域改变我们的生活,如游戏领域,智能家居,人才教育,金融领域等。传统的门禁系统只是简单的进行门禁的开关,计算机技术的发展推动了生物识别技术的迅猛发展,对于门禁系统影响也是巨大的,各种生物识别的门禁系统应用的十分广泛,使用比较多的有人脸识别,指纹识别,虹膜识别等门禁系统。使用生物识别极大的便利人们的生活,这种技术在安全性、便捷性、有效性上都是满足人们日常生活的身份认证,被用户广泛的接受和喜欢,应用也十分的广泛。其中在多种生物识别技术中,其中指纹识别技术提出的时间最早,使用的也最成熟,使用指纹识别可以省去带钥匙的繁琐,且指纹不易改变,操作十分便利,摆脱了传统门禁已丢失,携带不方便的问题。与射频卡比较,这种指纹识别的技术更加的安全和可靠,但是指纹录入十分的繁琐,同时指纹识别的准确对有待提高,很多时候由于手指不干净或者有写不方便,后续也需要不断的发展。门禁系统作为安防的一道重要的防线,对门禁安全就显得尤为重要,门禁在防御上有天然的优势,为了使门禁系统有更好的作用,保护人们的安全,提高防御力的同时体现便捷性。为了适应各种市场的不同需求,研究者们设计了更多新型的特征识别门禁系统,这些门禁系统中有基于wifi、mac地址以及其他的多种特征的,这些门禁的安全性、便捷性以及性价比都有了很大的提升。基于RaspberryPi的交互智能门禁系统得益于用户wifi信号的感知技术,实现了不接触的门禁的开关和状态保持,通过进一步与后台服务器配合,实现楼宇内人员流动信息的采集工作和远程门禁状态的管理,从而更进一步的完成楼宇管理的复杂工作。通过本课题能更进一步了解智能门禁系统的基本原理,学习有关RaspberryPi的开发环境及开发语言,探索如何更好的将智能门禁系统在实际生活中进行应用,突破智能门禁系统原有局限,提高了用户体验,使其应用场景更加广泛。1.2课题意义目前整个国家都在朝着智慧城市发展,门禁系统不只是简单的作为管理人员的出入,而是逐步演变为室内空间人流、物流、能源等综合管理和社会新兴服务。一方面,这样的的交互式智能门禁系统能够让人更好的做好时间管理,提供便利,也提高人们的生活质量。另一方面,这一基于树莓派的交互式智能门禁系统硬件本身小巧,操作方便,成本也比较低,性能丰富,能够有效避免资源的浪费。相比普通门禁它具有更多的功能,比如人流的计算和控制,后台数据处理能力更强,也不会出现很大的安全问题。从现在的市场发展情况分析,国内各地区无论是商场还是住房等都在不断扩大,但是在交互式智能门禁系统的使用率上还有待提高。我们为了响应国家的号召加快建设智慧城,在越来越多的建筑不断进行改造的情况下,新建筑蓬勃发展的时候,我们这样的交互式智能门禁系统更加占有很好的市场,这对我们这项技术的应用前景来说也是非常好的。1.3研究现状1.3.1门禁系统门禁的起源可以追溯到原始社会,自原始社会开始,人们为了保护的自己生命安全和财产安全,就开始制作一些比较简易的门禁系统,比如棍棒或者木栓将自己的房子锁起来,维护自己的领地不被侵犯,保护自己的领地的意识,门禁的概念也应运而生。随着信息技术领域研究方向智能化、多样化的发展,生活水平的提高以及物质、精神层面的丰富,居民对领地意识的重视也在逐渐增强,在这种市场需求背景下,促使门禁系统技术更新要同步信息技术的发展,于是各种锁具层出不穷,各种尺寸,各种类型。后来机械锁具的对门禁的安全性提升是巨大的,机械锁具虽然十分的好用,机械锁具要求要跟机械装置进行匹配,虽然设计的十分的复杂,材料比较坚固,但是局限性也是十分的大,因为只要能够匹配上,就可以打开机械装置,而且其安全性应为固有的机械构造而无法在进一步的提升。为了这个弊端,同时解决在一些出入人流量比较大的场所比如酒店,办公楼这些地方的便捷性,电子锁的设计发明是的门禁系统逐渐向便捷安全的方向发展,为我们生活带来了巨大的便利性,但是这种的电子锁也是有一定的弊端的,比如易丢失、易复制、容易出现故障灯问题,在后来的发展中,这一类的门禁系统渐渐的退去了历史的舞台。电子技术的不断的发展推动着门禁系统的不断的前进,其中新型的门禁技术也被发明,其中射频识别和生物识别技术是近些年发展的比较快速的,且技术趋于成熟的技术,随着人工智能的兴起,门禁系统的智能化也被提上了日程,其中射频门禁、指纹门禁、虹膜门禁多种门禁技术在我们的生活中不断的被应用,渐渐的被人们接收和喜爱,这些门禁技术在安全性上、便捷程度上、管理上都是有着突出的优势。门禁系统是当前智能家具时代中,扮演着一个十分重要的且不可替代的角色,门禁系统的英文为:AccessControlSystem(ACS)。这个门禁系统就是对“门”的使用权限,控制进入“门”的系统。门禁系统应该是一个完备的对“门”权限设定,其中应该包括多个部分:门禁的控制器,这是整个系统的核心,控制器主要是对门禁系统中的各种输入输出的信息进行出来,对信息存储、控制;其次是门禁的前端设备部分,这一部分主要是对信息的采集和显示,我们需要对用户的指纹、面部信息等进行提前采集,使用的设备有读卡器、指纹识别器等;电控锁,是对门禁的执行模块,在门禁系统中可以根据应用场所的不同设置,程序管理,通过后台程序对门禁系统进行管理,其中包括对门禁用户的设置,对门禁系统中出入数据的统计,以及对用户权限的设置。居民领地意识与安全意识的觉醒,对所在地安全的要求也随之提高,如何实现对所在地内人员流动的实时监管工作,降低无关人员出现的可能性,现代化建筑保障安全的设备逐渐侧重于更新换代的智能门禁系统。目前居民选住址的关注点不再仅仅是集中在房价、环境,而合格的门禁系统在控制外来人员流动,保证社区住房环境安全等方面提供着巨大助力,居民才能住的安心【1】。于企业而言,门禁系统在保证公司安全以及控制人员流动等层面的作用都是不可取代的,同时门禁系统的应用也使得对企业员工的考勤更加便利,提高对企业的信赖程度。门禁系统实现更高层次的安全依托身份认证技术的不断发展,门禁系统趋于多样化形式,指纹、声音、人脸等各技术在智能门禁系统中的应用愈发普遍化,应用的场景也愈发全面化,主要得益于RFID技术于生物识别技术的发展。依据技术与原理的不同,对不同门禁系统做以下归类:刷卡式、密码式、生物识别式【1】。1)密码式:通过将人员申请通过门禁系统时输入的密码与提前保存在系统中的密码进行比对,密码正确则门禁开启,若密码错误就不允许人员通过。这种门禁容易操作,成本低。缺点也是比较明显的,操作时间长,使用者偶尔会遗忘密码或者会出现密码被其他人盗取的风险,安全性较低,同时单项控制的局限性也使得密码式门禁系统应用场景较少。2)刷卡式:此类门禁系统的形式主要有接触卡与非接触两类,接触式门禁卡实际应用比较多,但也存在明显的缺陷,对卡内信息的保护、磁场抗感染能力都比较弱,其次门禁卡的丢失、磨损、毁坏都是难以避免的。相较于接触式门禁卡,非接触IC卡在进出门禁时,卡片不与读卡器接触,读卡速度相对较快,且卡内信息被盗取的概率很低,有较高的安全系数,还可以与计算机等设备链接,对出入的数据进行记录,存入数据库,实现门禁系统的双向控制。3)生物识别:门禁的识别方式是识别人们的指纹和面部信息。常见的生物特征有:指纹(每个人都是唯一的)、人脸(每个人的五官特征不同)等。1.3.2树莓派树莓派设计的初衷是为了小学生的计算机教育,该项目是有一家英国的慈善机构开发设计的,其中EbenUpton是项目的负责人。知道2012年3月份,树莓派正式发售,是由英国剑桥大学的EbenUpton发起,树莓派的尺寸可能只有一张卡片的大小,但是功能却十分强大,拥有完整的lunux系统,已经发售就被广大的人们的喜爱,备受欢迎,曾经还出现了一“派”难求的时代。树莓派是一个开放的平台,是基于ARM的微型主板,拥有需要的lnux的软件。在开发树莓派的早期,设计树莓派主要可以分成两种型号,型号A和型号B。1、其中A型号的主要的配置如下:USB接口:1个网络接口模块:板载无线网络接口1个功耗:2.5W,700MA运行内存(RAM):256MB2、B型树莓派的主要配置:USB接口:1个网络接口模块:板载无线网络接口1个功耗:3.5W,700MA运行内存(RAM):512MB随后在2014年,树莓派公司开发了一款的新的产品叫做“树莓派B+”,这一款比较经典的产品其中主要的改进有:(1)树莓派的GPIO口扩展到40针。(2)USB接口由2个扩展到4个,并加强对热插拨和过流的保护,使树莓派运行更加稳定。(3)降低功耗,更加经济实惠。(4)优化音频,采用低噪声电源。(5)外形简洁大方。B+版本将USB接口和电路边缘部分对齐。而随后发行的“4B+版本”,相比“2B+”,“3B+”版本搭载了以下的配置:(1)搭载了1.2GHZ64位四核处理器。(2)增加了IEEE802.11b\g\n无线网卡。(3)增加了低功耗蓝牙4.1适配器。(4)最大的驱动电流增加到了2.5A。【2】树莓派已经从一代发展到四代,性能在逐步变强,本次比设计使用的是树莓派B系列,下表列出各代B型号主要性能参数,如下表1-1所示:表1-1树莓派B型主要性能参数型号1代B型1代B+型2代B型3代B型3代B+型4代B+型SOCBroadcomBCM2835BroadcomBCM2836BroadcomBCM2837BroadcomBCM2837(B0)BroadcomBCM2711CPUARM1176JZF-S核心(ARM11系列)700MHzARMCortex-A7(ARMv7)900MHz(四核心)ARMCortex-A531.2GHz64-bitquad-coreARMv8CPUARMCortex-A531.4GHz64-bitquad-coreARMv8CPUQuadcoreCortex-A72(ARMv8)64-bit@1.5GH内存512MB1GB1GB/2GB/4GB
/8GBUSB接口个数2*USB2.04*USB2.02*USB3.0ports2*USB2.0ports虽然已经有了单片机,但树莓派依然有如此良好的市场需求,通过对比单片机和树莓派,就不难发现问题。相同点:二者都有相同的IO引脚控制,操作系统都是使用linux的,任务管理和调度的方式,以及的复杂程度相似,可以基于单片机和树莓派开发更高级的应用程序。不同点:树莓派打通了底层硬件与上层应用之间的通道,不仅可以使用C语言开发,还可以的使用其他的语言进行开发,比如python,同时可以使用物联网技术以及云平台技术。其次,树莓派的I0引脚是与PC端开发的其中有40pin,还有个28个GPIO引脚,是可以编程的;在某些GPIO的中可以使用IIC,SPI、URAT、PWM,通过这些技术可以对外接设备进行驱动,获取信号参数。随着开发的不断发展,树莓派的成本不断压缩,树莓派的生态更加的完善,使用树莓派是当前开发一个大趋势[2]。1.4论文结构本文详细介绍了基于RASPBERRYPi的交互式智能门禁系统的研究设计过程,系统如何实现功能,全文共分为六章:第1章介绍了课题研究背景、课题的重要意义、课题研究现状以及本文的论文结构。第2章介绍了本次课题设计的关键技术知识,包括树莓派wifi通信、树莓派单片机控制和交互系统。第3章介绍了整个系统设计,包括硬件系统设计和交互系统设计。第4章介绍了系统实现,包括流程图、系统各部分的程序设计。第5章介绍了系统测试的整个过程,演示整个系统是如何运作的。
第2章系统相关技术本章主要介绍了树莓派开发相关技术包括wifi通信技术、树莓派硬件控制技术和交互系统等技术。门禁系统的技术发展水平也是在逐步提升,树莓派作为微型计算机,它具备非常多的功能,使用非常方便。在这些技术的支持下完成了整个系统的技术应用。2.1树莓派4B+本文选用的是树莓派4B+,其外形如图2-1所示:图2-1树莓派结构图本文设计采用树莓派4B+开发板作为主控模块,该开发板是基于ARM芯片的,它是树莓派系列中的最新一款,与其他开发板相比它是性价比比较髙的。树莓派4B+开发板外观更加简洁大方,具备多种规格的外接设备口,主板上预留的接口可与树莓派500万像素专用摄像头连接,Sensehat传感器可以连接,其他外部硬件设备也能连接此树莓派。安装系统也很简单,在树莓派官网下载镜像链接,同时树莓派4B+开发板也提供了带有专用NOOBS系统的MicroSD卡。树莓派开发板系列因其强大的功能拥有众多用户。树莓派和微软也推出了Windows10IOT系统。这个系统的树莓派拥有良好的UI页面,且对于一些GPIO接口的扩展更加的便捷,对于其他硬件设备的扩展十分的便利,用户不需要在单独的编写针对于Windows系统的驱动程序,树莓派4B+开发板是非常经典的一款开发板,其功能强大,性价比高,操作简单。在这样的设计中我们要选择性能好、性价比高的系统是非常不容易的,树莓派这样的开发板很好的节约了设计的成本,体积小也能节省资源,也能满足设计的各项需求,系统功能强大。2.2电机与驱动LM293双H桥直流电机驱动芯片用于驱动电机。逆变器部分供电范围为:+5V-+16V,逆变器峰值电流为1A。输入控制信号电压为-0.3V-1.5V的低电平电压,输入控制电压为2.3V-VSS的高电平电压。电机驱动模块存放温度25℃-125℃,最大功耗20W。电机驱动模块最多可同时驱动4台直流电机,驱动电流大【2】。该电机驱动模块电路图如下图2-2所示:图2-2LM293驱动板封装结构图图中白色插座为5线四相步进电机插座,中间为白色驱动开关,4个蓝色直流电机驱动输出端口,黑色两颗芯片的引脚对应直流逻辑。引擎分别为1至4。输入界面。直流电机的工作模式如表2-1所示如下:表2-1电机工作模式IN1IN2ENI电机000不转010不转100不转110不转001不转011正转101反转111不转从表中可以看出EN1为使能端,当输入信号为“0”时,IN1、IN2输入什么信号都无法使电机驱动,IN1为反转控制输入信号端,IN2为正转控制信号输入端。2.3树莓派板载BCM43488wifi模块智能门机系统的设计理念,有效数据是通过无线网络由wifi模块向服务器获取,PC端通过有线网络链接wifi模块,手机移动端则使用wifi连接功能接入,连接树莓派GPIO接口的数据采集终端将需要的实时信息反馈给平台,完成指令发送。智能门禁系统的结构示意图如图2-3所示:图2-3智能门禁系统的结构BCM43438是一个高度集成的单芯片wifi模块,工艺设计先进,优点是低功耗,高稳定性等特点。该芯片支持2.4千兆赫无线局域网802.11无线电模块、蓝牙4.1以及调频接收机,一个独立的高速UART提供蓝牙/FM主机接口。该芯片的工作原理图如图2-4所示:图2-4BCM43438模块原理图2.4wifi技术2.4.1wifiwifi能让移动端和PC端连接起来是因为它是一种高频信号。wifi是IEEE802.11b的另外一种名称,是由名为“无线以太网联盟”(WECA)发布。其中802.11b是一个传输协议,该协议规定了通信的频段是2.4GHZ,在物理层进行通信,该频段的数据的最大传输速率为11Mbit/s,这个标准是当前世界上公认的,因此大多数国家使用的wifi通信传入频段都是2.4GHz。现在wifi遍布各地,与人们的生活息息相关,人们通过wifi在互联网畅游,让人们的生活更加方便。2.4.2wifi技术特点1、覆盖范围广wifi和蓝牙相比,WiFi比蓝牙覆盖的范围大,信号传输距离远。经过对比,wifi非常适合整栋楼的门禁管理。2、高速、高安全性802.11b标准下传输速度可达11Mbit/s,信号传输的速度比较高,可以满足人们日常生活对网络通信的要求。在安全方面我们会设置防止黑客的攻入或者病毒侵入。3、低成本wifi采用无线电波进行信号传输,不需要架设电缆传输,这样更加经济实惠。健康性电磁波对人体是有一定的伤害的,但是wifi却不在此列,其传输的的发射功率仅仅只有100mW,即使一步对讲机的都超过了5W,因此wifi对人体的功率是非常安全的。5、使用门槛低Wifi技术没有很高的技术壁垒,因此进入wifi领域的生产厂商很多,在我们的生活中wifi的普及度也是十分的高,其中主要是机场、车站、咖啡店等地方都有设置,wifi的覆盖范围半径几十米,只要在范围内都可以很多好的使用的wifi信号。2.5交互系统交互系统的设计是两个或者两个以上的参与者,将不同的对象连接起来,在整个系统中每个个体部分都相互影响。能够满足特定的需求,具有一定的可用性和良好的用户体验。随着时代的发展交互系统的应用场景越来越多。本文设计的交互系统如图2-5所示:图2-5交互系统示意图树莓派不仅仅是一个简单的单片机,它还具有pc机所有的功能,能够进行后台服务等。交互系统设计主要是用户、门禁和后台服务器的整个交互系统的对象,在这一整个系统中主要包括两个方面,通过门禁系统的用户在后台服务器中已经录取认证过身份,那当他在通过门禁时,可以直接通过;当通过门禁的用户在后台服务器中没有身份认证信息时,就需要确认用户的身份等信息传送到后台,经过查询后确认没有任何问题后门禁就会让他通过。门禁系统也会将扫描到的用MACip地址传送到后台数据库中,进行信息上传和比对。后台主要包括进行数据采集和分析、控制指令的生成和传送,是整个系统的核心部分;门禁系统主要进行控制指令的执行、显示门禁开关状态。设计这样的交互系统有利于人们的使用和管理者的维护,在面对突发的情况下我们可以一次查看是哪个模块出现了问题,依次进行排查。当发现问题后可以争对问题单独解决一个模块,就不需要在花时间和精力在其它模块上,这样做能有效的节约时间和资源。在现代社会中,这样的交互系统应用场景是非常多的。现代的楼宇管理,这样的交互系统让人流、物流和其他资源等能有效的结合起来,促进资源的多重使用,让社会更加快捷环保。2.6开发语言pythonPython是有一款简洁、容易阅读和扩展的脚本语言,由荷兰人吉多·范罗苏姆在一次圣诞节宴会上突发奇想所创立。随着近几年的火爆发展,其下已经开发积累有大量模块库,可以轻松调用以快速建立实现算法模型。同时Python的模块库中也包含了像numpy、opencv、pandas、scilearn-kit等众多的数据科学计算库,足以匹敌甚至超越Matlab,不但被大量科研人员所追捧,同时其简单易学性也吸引了大量其他非计算机专业的人员的加入。本项目使用Python语言一是为了展示项目的跨平台性,同时也为了能快速构建一个前端图形用户界面。Python特点:1.学习成本低,python是一种解释型语言,语言的结构比较清晰简单,比较便利的垃圾回收机制,学习成本低。2.易阅读:Python代码解释更清晰。3.易维护:Python内的代码方便人员维护。4.依赖库丰富:python是一款使用较多的科学工具,使用的人十分的多,且代码是开源的,世界各地的人,都为社区服务,提供了丰富的python库,使用比较方便,且python具有跨平台特性,可以在unix,windows和Macintosh系统使用。5.人机交互好:使用python语言编程人机交互简单,可以直接在中断对代码进行输入,对代码的测试和调试十分的简单。6.移植性好:python代码是开源的,在各个平台都可以的比较便利的使用,python代码可以在多个平台移植使用。7.扩展性能好:python代码可以调用不同的代码,可以在python的环境中使用c或C++代码,也可以调用matlab代码,这些代码与python结合使用比较方便。8.嵌入性较好:可以联合使用python代码和C、C++代码,python语言是一种类似“脚本语言”特性,可以与其他的代码混合使用。Python语言对我们刚接触编程语言来说是非常好的一个入门语言,简单易学,他有着其他编程语言没有的优点,我在学习使用python语言的过程中它能更加规范我代码格式,这样的锻炼也能让我在之后的工作中编写代码更加严谨和规范。2.7本章小结本章主要对在课程设计中的要到的关键技术做了介绍,包括wifi通信技术、树莓派硬件控制技术和交互系统等技术。在了解了这些技术的基础之上才能在接下来的设计中一步步完成。第3章系统设计本章重点介绍了对系统的总体设计,以及对系统交互情况的设计,对系统整体的设计主要包括控制模块、驱动模块以及电源模块等。3.1系统总体设计本系统的设计由多个模块构成,模块自身功能的差异决定了各模块任务分工不同,不同模块之间的相互协作组成完整的系统,分模块设计主要是考虑到整理设计思路以及后续对设计过程存在的问题排查都比较方便。此次设计的基于RASPBERRYPi的交互式智能门禁系统主要包括主控模块、驱动模块、wifi模块及电源模块等。基于树莓派的智能门禁系统设计图如图3-1所示:图3-1基于树莓派的智能门禁系统设计图(1)主控模块:是系统核心模块,能够控制整个系统,能实时收录mac地址、调用API,提供电源给触发模块,显示模块等其他模块。(2)触发模块:是系统的信号输入端,当用户进入信号范围内门禁系统就会扫描到一个mac地址,并产生电平信号,主控模块就会调用程序并提供指令。(3)驱动模块:是系统的驱动端。一旦用户信息被成功识别,就会接收到主控模块提供的工作信号。模块驱动芯片可以操作步进电机,门禁系统可以在电机运行后进行开关控制。(4)显示模块:是系统的展示端,显示人员系信息和扫描到的数据。(5)电源模块:是系统的供电端,是整个系统工作的能量源泉,保证供电安全才能让整个系统正常工作。本文设计的门禁系统是半自动的。首先,用户的wifi信号激活触发模块,主控模块接收触发信号并调用识别程序。然后系统对用户进行身份验证,并将其发送到主控模块并在后台下载。下载完成后,主控模块确定返回信息。如果信息正确,访问控制是开放的;否则,访问控制关闭。3.2主控模块主控模块的主要功能可以处理系统通信和系统控制,主要负责控制子模块的运行、处理信息和发送指令。系统设计采用基于集成ARM平台的树莓派4B+开发板作为主控模块。嵌入式微型计算机主板在多次技术性变革之后,其不同系列产品的型号多样化,提供用户更好的选择合适的产品机会,其发展速度较其他主板更快。3.2.1主控模块的选型本文的设计采用树莓派4B+开发板作为主控模块,树莓派4B+的40针GPIO口的原理图如图3-2所示:图3-2GPIO口原理图3.2.2树莓派4B+相关特性树莓派4B+是一款比较经典的开发板,这个开发板是基于ARM开发板设计的,其中搭载MicroSD卡的硬盘,TYPEC的电源接口,能够提供强的电流,主板周围有两个USB接口和千兆以太网接口,可连接键盘、鼠标和网线,同时拥有HDMI高清视频输出接口和40针可以输入输出的GPIO接口,将所有的硬件设备集中在一个主板上,且主板的尺寸仅仅跟一张信用卡大小相同,开发板的功能十分的强大,具备PC的基本功能。3.3驱动模块主控模块GPIO口的驱动能力比较小,驱动电平只有3.3V,所以高电平驱动能力略低于低电平驱动能力。本次设计添加了驱动模块,旨在避免主控模板将输入信号直接传递给步进电机时,步进电机无法正常工作的情况出现,通过放大功率,实现输入信号较弱、输出功率较高条件下系统正常的运行。本设计的驱动模块由驱动芯片及步进电机组成。3.3.1驱动芯片步进电机对输入功率要求高,主控模块供电能力有限。同时,考虑到硬件设计的兼容性,为了更好的兼容其他设备,采用了不同于以往专用接口和驱动电路的设计方法。所用的驱动电路为复合管,输出较高,其中应用最广泛的是ULN2003、L298N等,这些电路的工作状态是根据主板上控制模块发出的信号来确定的。在本文中,驱动模块的电路设计必须满足以下要求:(1)在驱动电路中,电路提供给系统的电流波形为方波。要形成方波,电流必须迅速达到最大值或迅速下降到所需值。(2)因为开发板需要对电路的功率进行较高的控制,同时很多情况下需要考虑到经济效益、节能,对于耗电不能太高。本系统选取的电机驱动类型是ULN2003版本,该类型的电机驱动可以提供的电流大小为0.5A。ULN2003驱动电机的内部结构图如下图3-3所示:图3-3ULN2003内部控制单元原理图根据上图可以看出ULN2003芯片的结构,其中使用了多个复合达林晶体管,将这些晶体管按照上图的结构进行排列,这种安排可以促进ULN2003可以承受的电压更高,可以通过的电流也相应增加。该芯片由7对NPN达林顿管组成,每个NPN达林顿管作为一个控制单元,控制单元有一个驱动单元、一个保护单元等,共七个单元。对于ULN2003芯片的封装也是经过了精心的设计,其中为了保护DIP-16或者SOP-16双列16脚,使用了塑料进行了封装。其驱动模块提供了直接的接口,可以直连步进电机,并对其进行控制;在芯片的内部使用了数字逻辑电流,这个过程可以通过反演过程来控制。考虑到该项目的设计既要满足上述要求,又要使系统运行稳定、成本低廉,故选用ULN2003型驱动点击芯片。芯片的性能优良、与设计产品的需求十分的贴合,其中使用的主控模块中,可以使用GPIO接口提供各种需要的信号,而且这种硬件的电路连接是十分简单的。ULN2003芯片是利用单片机作为其控制器,所以在进行程序的相关调试的时候,操作十分的简便灵活。其中ULN2003芯片的引脚图如图3-4所示:图3-4ULN2003驱动引脚图输入部分左侧1~7脚接主控模块输出连接器(GPIO),主控模块提供控制信号,8脚直接接地;输出部分是正确的1~7脚,在5V下步进。电机接好,COM脚接5V电源。如有必要,它可以在没有连接的情况下悬空。芯片可产生的最大电流为0.5A。ULN2003芯片的主要特点是:(1)ULN2003芯片的驱动电流比较大,比较适合用在单片机控制的电路中。(2)ULN2003芯片使用了很多技术用来抵抗外界噪声对芯片的干扰,第一个方式就是使用了上拉电阻的方式,这种做法是为了防止在驱动步进电机的时候能够防止其他噪声的干扰。在芯片的内部同样做了很多事情来防止干扰,其中是在控制单元中串联高电阻值的电阻来进行抵抗干扰,由于连接了大电阻,所以在系统中可以直接对TTL和电压5V的CMOS进行连接。(3)ULN2003芯片一般将输出电路的电极状态设置为开路状态。此设置用于获得更大的输出电流。芯片最大电流值可达500mA。可以使用该电流值。实现步进电机的驱动。ULN2003的极限参数值如下表3-1所示:表3-1ULN2003的极限参数项目符号数值单位最大输入电压Vi(max)30V集电极-发射极电压Vo(max)50V最大基极输入电流IB(MAX)25mA输出电流I0500mA贮存温度TS-65~150。C结温Ti175。C引线耐焊接温度TD300。C根据电路设计,红色线悬挂在步进电机的输入端,其他线用于连接驱动板。根据芯片资料是步进电机驱动芯片IN14有四个接口,驱动方式为低电平供电,由杜邦线划分请勿连接N1、IN2、IN3、,IN4和GPIO21(Pin40),GPIO20(Pin38)GPIO16(Pin36),GPIO19(Pin35)进行连接。每次将四个GPIO端口按表3-2(步进电机驱动原理表)依次设置好电平后,可以通过设置sleep函数的时间来控制转速。表3—2步进电机驱动原理表序列GPIO21GPIO20GPIO19GPIO160LOWHIGHHIGHHIGH1HIGHLOWHIGHHIGH2HIGHHIGHHIGHLOW3HIGHHIGHLOWHIGH4LOWHIGHHIGHHIGHULN2003芯片驱动电机的电路图如图3-5所示:图3-5ULN2003芯片驱动电机的电路图芯片由MT14通过电阻RP2供电。输出口的OUT57脚全部接地,COM口接5V。ULN2003的输出端OUTIOUT4通过电阻RP2与步进电机MTA、MTB、MTC、MTD的输入端相连,提供运行时控制的脉冲信号。3.3.2步进电机的选型与传统电机相比,步进电机有些特殊。它可以同时控制位置和速度矢量。步进电机采用开环控制,这是与其他电机最不同的。它可以将输入端微弱的、间歇性的触发脉冲信号转换成电机旋转的线位移或角位移。控制方式采用数字信号进行控制,短脉冲信号可以实现对电机的控制,然后转换成相应的角位移。只要将合适的脉冲信号施加到步进电机的输入端,就会从上面输出一个固定的角度。这种控制方法易于开发人员编程并提供高水平的操作透明度。步进电机的相数取决于绕在定子上的线圈数,可分为两相、四相和五相;电机的外部引线决定了有多少线,分为三线、五线和六线等式。根据相数、引线类型、功能和用途,步进电机分为种类很多,但是电机本身的控制方式都是脉冲信号控制,差别不大。考虑到门禁系统的实际使用,动作顺序在使用中比较稳定,步进电机选择自启动运行方式。通过控制脉冲率,控制电机启动和停止的运行模式是自启动运行模式,不产生任何加速或减速阶段。当门禁系统打开和关闭时,速度突然变化,扭矩也变大。实际使用过程中会产生大量的工作噪音。观察步进电机的性能,四相五线式是能满足工作要求的一种。另外,考虑到静态转矩、步距角、电流、安装难度等因素,本设计选用28BYJ-48四相五线步进电机控制门禁系统。3.4电源模块为系统提供电能的是电源模块。门禁系统的需要的电源为220V交流电,在经过变压器对电压进行调节,就能达到实际所需的电压,电压符合要求后还需要进行整流,将交流电转换成直流电。最后通过滤波器对获取到的直流电进行滤波,将直流电中的交流部分直接过滤掉,最后获得了满足需求的直流电。上述的操作十分的繁琐,且不易实现,考虑门禁系统在使用过程的便捷性,本文采用的是充电的锂电磁直接提供符合要求的直流电,使用锂电磁18650为系统提供输出为7V的供电电源。3.5继电器继电器(英文名称:relay),是电子控制元件,它分为控制端和被控制端,主要应用在自动控制电路,它能够用较小的电流去控制较大电流的。它能够自动调节、保护电路的安全、转换电路。其实物图如图3-6所示:图3-6继电器实物继电器的作用就是在输入量过载时,可以通过相关的设计,自动的断开或导通电路达到保护电路的安全。继电器的种类有很多,分为电气量继电器和非电量继电器两个种类。继电器工作时反应时间短、效率高,使用时间长,不会占用大量空间。继电器主要有输入端和输出端组成,其中在输入端包括VCC、GND、IN三个引脚接口,在三个引脚中两个是供电使用的为:VCC,GND,还有一个IN接口是信号输入端口;继电器输出端也有三个引脚分别为NC、COM、NO,其中NC是一般情况是关闭的,在继电器闭合前是与COM行成短路线路,在及继电器闭合后,则保持断开悬空状态;COM是继电器中的公共的接口;NO接口的作用与NC是相反的,在继电器闭合前是打开的,在继电器闭合后是与COM短路连接。跳线与low短接时为低电平触发,跳线与high短接时为高电平触发。3.6交互系统设计交互系统内主要为人员、门禁系统和树莓派后台服务,在这三者之间相互联系和作用让整个系统运作起来。人员主要分为身份信息和认证信息已经录取进入后台服务器的,还有一部分是人员身份信息不明确的。门禁系统能够将信息传送到后台并能接受后台指令,做出门禁的控制,保持开、关和停留。后台服务器主要在人员经过门禁时进行信息的对比和收录,传输命令给门禁系统。当人员的wifi地址是先登记过,当他每次进出门禁系统时门禁会提前为他开、关或停留;未登记过的wifi地址的人员,前台工作人员会进行身份证核实,并将扫描到的wifi地址传入后台并录入,等下次再次出入门禁时就会自动开启。门禁系统会相隔每一分钟上传扫描到的wifi地址,在门禁系统每次开关时也会上传后台服务器扫描到的wifi地址。3.7本章小结在进行本章内容时主要要了解主控模块、驱动模块等模块对应的功能,选取相对应的芯片、步进电机类型和继电器类型,设计交互系统。第4章系统实现本章是主要介绍了树莓派系的登录、与后台数据库连接、步进电机程序、信号灯程序等,还包括整个系统正常工作时的情况。4.1系统实现流程本小节将结合前文,具体实现门禁系统的各项功能。系统主要以树莓派4B+开发板为开发平台并结合wifi识别,使用Python语言编写程序。实现流程图如图4-1所示:图4-1实现流程图4.2树莓派的登录1、进入系统的方式有多种:树莓派的打开有多种方式,一种是直接使用显示其进入系统,第二种是使用远程桌面的方式进入树莓派的系统;还有一种是使用软件putty进入,本文使用的是putty进入,进入的界面如图4-2所示:图4-2登录过程为了与树莓派通信,首先要获取到树莓派的ip地址,通过登录进行查询,我们登录后,利用电脑远程进行对ip地址的输入查询,利用上述的方法可以查询到本文的树莓派被分配的IP地址为192.168.1.104。2、输入名字pi,密码ljs,并回车,进入系统后如图4-3所示:图4-3进入系统图(a)3、输入cdtmp并回车,输入pythonServer.py并回车,如图4-4所示:图4-4进入系统图(b)等待一段时间后,启动了PC端的程序,接下来就可以进行系统的运行。4.3系统运行系统整体流程:将用户的mac地址信息传送到后台数据库,同时将wifi信息编入程序。调用程序,调用数据库中的硬件信息与连接wifi的硬件信息进行比对,若是比对成功后来就会发送验证成功的消息,该用户就可以实现对门禁的控制,可以打开门禁或者关闭门禁,其中项目文件如图4-5所示所示:图4-5程序目录4.4程序设置首先连接到wifi,并将连接wifi的ip地址,mac地址存放在数据库中,,然后在代码中将其mac地址赋值存放在数据库中表macID中,NewMacID=currrentID。设置新连接的wifi设备mac值为当前ID,获取到当前ID后,在数据库中进行查找,进行匹配和响应。使用python编写的程序中,使用内置函数API中的参数和Key和secret进行连接,如图4-6所示:图4-6输入APIkey及APIsecret4.5各模块功能函数及程序1、对步进电机的程序编写,若是从losswise为-1的时候,步进电机转动的角度为180°,转动的顺序为顺时针,若是closewise为0时,步进电机的转动的顺序为逆时针180°,对于步进电机的控制主要是有GPIO引脚控制,引脚的编号为GPIO35、GPIO36、GPIO38、GPIO40四个GPIO驱动,具体的代码如图4-7所示:图4-7定义步进电机输入输出信号灯程序:对于信号灯的控制也是使用GPIO11引脚开进行控制输入输出,将发光二极管的引脚连接到GPIO上,利用输出GPIO信号对程序信号灯进行控制,其中延时设置的0.3s,在低电平的时候,灯是被电量的,其程序如图4-8所示:图4-8定义步信号灯输出口系统提示准备,然后进行wifi识别。输出提示信息。并调用程序让信号灯亮或不亮。如图4-9、4-10所示:图4-9调用信号灯函数图4-10信号灯显示4、触发模块程序:编触发程序,触发函数为det(),该程序是为了检测是否有wifi被连接以及被触发,当检测到信号输入时,将信号发送给树莓派。使用引脚GPIO13进行控制,对其值进行检验,结果正确,在终端输出确定,再调用主函数进行对比。主程序运行结束后继续决定是否触发,一直循环程序。如图4-11所示:图4-11调用触发模块5、主函数程序:fromsocketimport*fromtkinterimport*importthreadingimporttimeclassControl():def__init__(self,master,fuc,manual_open,Add_open,Add_close,manual_close):self.parent=masterself.parent.title('wifi门禁控制')#self.parent.geometry('800x600')self.title=Label(self.parent,text='wifi门禁控制端',font=20)self.title.pack()self.frame=Frame(self.parent)self.frame.pack(fill=BOTH,expand=3,pady=20)self.parent.resizable(width=False,height=False)#标签self.label1=Label(self.frame,text="服务器IP")self.label1.grid(row=0,column=0,sticky=E)self.label2=Label(self.frame,text="端口")self.label2.grid(row=1,column=0,sticky=E)self.entry1=Entry(self.frame,width=30)self.entry1.insert(0,'192.168.1.104')#服务器IPself.entry1.grid(row=0,column=1,sticky=W)self.entry2=Entry(self.frame,width=30)self.entry2.insert(0,'9000')#端口self.entry2.grid(row=1,column=1,sticky=W)#连接状态self.var=StringVar()self.var.set('连接')self.stBtn=Button(self.frame,textvariable=self.var,width=10,command=fuc)self.stBtn.grid(row=0,rowspan=2,column=2,sticky=N+S)#self.label4=Label(self.frame,textvariable=self.var,sticky=E)#self.label4.grid(row=2,column=0,sticky=E)self.stBtn1=Button(self.frame,text='打开门禁',width=10,command=manual_open)self.stBtn1.grid(row=3,rowspan=1,column=0,sticky=E)self.var1=StringVar()self.var1.set('门禁已打开')self.labelb1=Label(self.frame,textvariable=self.var1)self.labelb1.grid(row=3,rowspan=2,column=1,sticky=W+E)self.stBtn4=Button(self.frame,text='关闭门禁',width=10,command=manual_close)self.stBtn4.grid(row=4,rowspan=1,column=0,sticky=N+S,pady=10)classThreadClient():def__init__(self,master):self.master=masterself.gui=Control(master,self.starting,self.manual_open,self.Add_open,self.Add_close,self.manual_close)#将我们定义的GUI类赋给服务类的属性,将执行的功能函数作为参数传入defstart_reception(self):globaltcp_client_sockettcp_client_socket=socket(AF_INET,SOCK_STREAM)server_ip=self.gui.entry1.get()server_port=int(self.gui.entry2.get())#TCPsocket端口#链接服务器tcp_client_socket.connect((server_ip,server_port))#发送密钥,建成连接#send_data='ep=FBUKSTKSWHNVPXY4&pw=123456'#tcp_client_socket.send(send_data.encode("gbk"))whileTrue:recvData=tcp_client_socket.recv(1024)ifnotrecvData:breakelse:print(recvData)defmanual_open(self):send_data='A'tcp_client_socket.send(send_data.encode("gbk"))self.gui.var1.set('已经打开门禁')defmanual_close(self):send_data='B'tcp_client_socket.send(send_data.encode("gbk"))self.gui.var1.set('已经关闭门禁')defAdd_open(self):send_data='O'tcp_client_socket.send(send_data.encode("gbk"))#self.gui.var2.set('开始加水')defAdd_close(self):send_data='C'tcp_client_socket.send(send_data.encode("gbk"))#self.gui.var2.set('停止加水')#为方法开一个单独的线程defstarting(self):self.thread=threading.Thread(target=self.start_reception)self.thread.start()if__name__=='__main__':root=Tk()ThreadClient(root)mainloop()4.6系统工作打开树莓派终端,打开项目文件夹,运行mian.py程序如图4-12所示:图4-12门禁显示图在连接服务器,连接成功后,连接wifi,判断mac地址是否在数据库中,进行身份信息认证,若是验证成功,则可以执行打开门禁,若是信息错误,则关闭门禁,门禁的开关取决于信息与后台数据库的对比。4.7本章小结本章节的内容主要集中于代码的编写,将前面章节的所有内容整合到一起来实现整个系统,将门禁系统与后台数据相连接。每一个模块都有具体的功能和作用,在整个系统中用户、后台、门禁系统都是相互作用和联系的。在这其中让自己对代码编写水平又有了一定的提升。第5章系统测试本章主要进行系统测试,主要有功能测试和稳定测试。功能测试用来检查该系统是否能实现相应的功能。系统的稳定测试,在突发情况下,系统能否正常工作。5.1系统功能性测试功能测试主要检查能否实现之前的功能,进行实验仿真和验证。检查该系统通信连接是否正常和功能切换是否流畅。5.1.1用户添加验证测试测试开始前首先对系统软件硬件平台对接好,其次保证通信畅通,信号灯启动,测试3个用户分别注册10次,其中每次测试注册后,在数据库中对其信息进行查看,其测试测试结果如表5-1所示:表5-1注册测试用户名称测试次数正常次数合格率Id11010100%Id21010100%Id31010100%经过测试,身份信息已经认证的用户通过门禁时是可以自由出入的,在wifi信号范围内门禁能提前感知并未用户开启门禁。5.1.2wifi门禁控制测试对于wifi门禁控制功能进行测试,测试内容就是使用已经注册好的用户对门禁进行打开与关闭测试,测试用户5个,打开关闭各测试五次,判断其对控制成功率和通信状态。测试的结果表5-2所示:表5-2wifi门禁测试表用户名称打开门禁次数关闭门禁次数正常次数成功率时长ID15551000.1sID25551000.3sID35551000.1sID45551000.5sID55551000.2s5.2系统稳定性测试系统的稳定测试是检查在断电情况下和长时间工作的情况下系统的稳定性,观察系统在上述的情况下能否正常工作,是否符合设计要求。5.2.1系统断电恢复测试断电是为了检验系统的可靠性,在日常生活中避免不了会发生断电的情况,尤其是夏天电力消耗更高。在多次断电通电的情况下,硬件系统是否被损坏等这些都需要进行观察,硬件系统没有问题才能达到设计的标准。检验的顺序:首先将系统的软硬件连接好,然后拔掉电源,系统断电后再插上电源通电,观察系统能否正常工作。要多次重复的进行试验。对该系统进行了多次的断电通电测试后,在系统恢复供电后,系统正常工作。5.2.2系统的稳定性测试系统的稳定测试主要在检验在长时间的工作状态下系统是否会出现异常情况。对连续工作的门禁系统进行测试,观察系统是否正常工作。测试发现系统在连续工作的情况下,能正常工作,各项功能运行正常,任何的异常情况都没有出现,系统稳定性符合要求。5.3门禁测试门禁测试主要是用来测试整个门禁系统是否能正常工作,从人员的进入到信息扫描,传送数据到后台,后台信息对比和指令传送和反馈。这就是前面所说的交互系统的整体测试,这是未来会应用到实际生活中的,必须确保在正常情况下是否能真正运行。5.3.1门禁系统开门记录图5-1开门记录5.3.2后台信息收录当用户通过门禁时,后台确认身份信息是否正确,传送控制指令给门禁,门禁保持开或关的状态,用户也会收到确认信息。图5-2门禁收录信息正确反馈图图5-3门禁收录信息错误反馈图这是在后台数据中收录的门禁系统的开关记录,这里面显示了门禁通过和不通过的情况,通过是身份信息认证正确,不通过则是因为身份信息在后台数据库中不存在,后台数据也会给用用户一个反馈,用户会接收到信息。在后续的管理过程中,没有身份认证信息的可以去进行扫描信息并录入,当后台数据库接收到后下次进入门禁就能通过。这样的交互系统方便了用户和管理者的维护和查询。5.4本章小结本章主要是对整个系统功能性的测试,在整个系统测试中还是有很多不足之处,以及门禁控制功能需要加强,以及与后台服务器的配合。总结毕业设计的研究和学习已经经过了几个月,现在已经接近尾声,从去年12月开始进行选题,到现在已基本完成毕业设计的全部工作。一开始自己对毕业设计一无所知,不知从哪里开始,后来慢慢一点研究,熟悉相关技术,最终顺利完成毕业设计。在这段日子里自己一点点摸索,从白天忙到黑夜,遇到瓶颈时垂头丧气,解决了难题时激动不已。回想这段日子,真是让人印象深刻。本次毕业设计课题来自导师的已立项目,这个课题对实际生产生活有着重要的意义。初次拿到课题时一头雾水,因为树莓派是自己从来没有接触过的,这对自己是一个挑战。在导师的讲解下自己对本次课题有了一定的了解,知道如何去设计本次课题。接下来的时间里
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业绩效考核制度设计与执行手册
- 能源计量管理制度
- 时空上下文方法:复杂人体行为分析的深度探索
- 时态GIS:理论、技术与系统实现的深度剖析
- 安全管理机构设置文件
- 第一类医疗器械产品分类目录
- 货运企业车辆GPS动态监控管理制度
- 六年级下册语文基础练习题
- 奥鹏南开大学《主干课1-财务管理学》2025春主干课考试
- 二年级音乐律动游戏设计方案
- 高空作业车安全操作规程
- 2024云南省委党校研究生招生考试真题(附答案)
- 诺如病毒考试题及答案
- DB45∕T 2479-2022 一般固体废物填埋场水文地质工程地质勘察规范
- 岗位安全责任清单意义
- 2025年焊工(技师)考试练习题库(附答案)
- 学术自由与责任共担:导师制度与研究生培养制的深度探讨
- 法拍司辅内部管理制度
- 道路损坏修缮协议书模板
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
评论
0/150
提交评论