【《基于单片机的校园智能照明系统设计》14000字】_第1页
【《基于单片机的校园智能照明系统设计》14000字】_第2页
【《基于单片机的校园智能照明系统设计》14000字】_第3页
【《基于单片机的校园智能照明系统设计》14000字】_第4页
【《基于单片机的校园智能照明系统设计》14000字】_第5页
已阅读5页,还剩49页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于单片机的校园智能照明系统设计摘要随着社会的发展,人们对生活质量的要求与日俱增,照明贴切于人们的日常生活中,因此在能源稀缺的年代里照明节能显得格外重要。现在国内外普及使用的节能开关分为声控型、触摸型、感光型等。这几种开关各有个的优点也各有弊端,如声控型不适合环境噪杂的场所、感光型开关在无人期间不能自动关闭。本设计使用的单片机为STC89C52RC单片机(以下简称为STC单片机),使用定时控制技术、红外传感技术、光感技术、蓝牙等技术来实现对校园照明设备的控制。本系统包括硬件设计和软件设计两个部分。本设计以STC单片机为基础,实现信号采集、控制与显示等功能。控制电路的设计包括:电源电路、LCD1602显示电路、按键报警电路、DS1302时钟电路、HC-SR501红外感应电路、BT06蓝牙电路、USB小灯电路以及光敏阻值AD采集等电路。软件设计主要有灯光控制、定时控制、LED显示等程序设计。在工作时,光敏阻值AD采集电路采集光照强弱、HC-SR501红外感应电路采集路灯附近是否有人、是否为工作时间等信息传送到STC单片机,该单片机将根据这些信息通过控制电路对USB小灯进行开关操作,从而实现照明控制并达到节约能源的目的。关键词:智能控制,控制器,STC单片机,定时控制。第一章绪论1.1系统的研究背景随着时代的发展,城市现代化建设步伐不断加快。能源危机和温室效应日趋严重的影响当今社会,节能环保已成为照明产品的主题。而能源的供需矛盾也越来越突出,节电节能、绿色照明的要求越来越迫切,越来越高。现在再继续采用那些专统的于控、钟控城川照叶系统的方法已不能满足要求。如何允分利用高科技手段解决上述矛盾也就成为当前照明控制领城--个新的和紧要的课题。据调查显示,国内小型城市在夜晚9点后,大中城市在12点之后,道路上几乎空无一人,即便是北京、上海、广州、深圳这样的繁华都市,凌晨2点以后,道路上也已罕见行人、车辆。从这一时段直至清晨6点路灯熄灭,在低交通流量的道路上仍然保持较高照度显然没有必要。在市政开支极度紧张的今天,面对供电紧张形势,路灯巡查对于市政部门来讲是一项需要耗费大量人力的工作,各种临时应急节电措施被广范采用:夜晚间隔关灯、调整路灯开关的时间,在用电紧张的日子里关闭景观照明、号召居民在用电高峰时关闭空调、公共设施和写字楼等空调温度调高一度等等,当用电高峰过后,这些措施可能就被束之高阁,明年的用电高峰来临,一切又会重新开始。为了能更有效地解决用电紧张的最佳和有效的办法就是对用电实施智能化管理,减少浪费,使我们的每一度电都能物尽其用!使用先进路灯监控系统,可以对路灯进行统一的关闭,对夜间照明系统和路灯的实时监控和管理,确保高效稳定,全天侯运行,护制不必要的“全夜灯照明”,有效节约电能消耗,对于城市公共照明系统来说,采用智能化的管理系统是实现能源节约、减少资源浪费、满足人们生活要求、显示现代化城市靓丽风景的科学解决方案。当然身为大学生的我们,在学校校园里也会遇到恪种各样的照明系统,所以很有必要设计-种智能照明系统来响应政府的号召,使用高效的照明工具,高效的照明系统,从而达到降低能源浪费、减少学校开支的期望。同时也能充分体现如今社会现代化、智能化的建设。1.2系统的研究意义校园路灯控制系统的目的是使得校园的路灯管理工作从控制、检修、维护以及增效节流等各个方面发生革命性的改变。校园路灯控制系统具有极大的优越性。目前,我国路灯控制系统面对着如下几个问题:①控制落后开关灯方式落后:当前路灯控制,还停留在手动、光控、钟控方式。受季节、天气和人为因素影响,自动化管理水平低,经常该亮时不亮,该灭时不灭,极易造成极大的能源浪费,增加了财政负担。②操控不便调节操控能力不足:无法远程修改开关灯时间,不能根据实际情况(天气突变,重大事件,节日)及时校时和修改开关灯时间。③灯况不明不具备路灯状况监测:现有的照明设施管理工作主要采用人工巡查模式,不仅工作量大,还浪费人力、物力、财力。故障依据主要来源于巡视人员上报和市民投诉,缺乏主动性、及时性和可靠性,不能实时、准确、全面地监控全城的路灯运行状况,缺乏有效的故障预警机制。④设施被盗不具备设施防盗监测:有的校园路灯覆盖面积大,管理手段落后,无法准确发现电缆盜割、灯头被盜和断路,一旦出现以上情况,势必给学校带来巨大的经济损失,同时影响学生的正常生活。这些问题造成了管理部门的困扰,制约了路灯建设的发展。校园路灯控制系统的目的是解决当前路灯控制问题,使系统具备监控具备远程性、监控具备实时性、单灯管控能力、集中管控能力(群灯和线路)、数据监测管理能力等功能。1.3研究的主要工作本设计通过对以上问题进行分析解决,需要实现的功能如下:在系统选择方面本设计采用STC89C52单片机作为系统的控制芯片,LCD显示电路显示实时操作如:时间,USB小灯的亮度等;使用蜂鸣器进行故障检测;独立的按键模块电路进行实时控制如:“加、减,左、右、设置”等;时钟电路模块产生时钟,使单片机执行各个程序;红外感应模块采用HC-SR501进行反馈;蓝牙/下载模块,该模块可以进行相互调节进行蓝牙控制和程序写入;USB小灯电路反映小灯工状况;光敏采集转换模块采用的ADC型号为PCFT,通信方式位IIC,对光信号进行采集转换为数字信号处理。这些模块相互作用,实现自动控制:红外检测、光敏检测、故障检测,手动控制:蓝牙、按键。达到了智能控制的效果。本设计通过Keil5MDK534软件进行程序编写,再通过下载器将程序写进芯片STC89C52中,从而实现硬件部分的LCD显示模块、按键报警模块、时钟模块、红外感应模块、蓝牙/下载模块、USB小灯模块和光敏采集转换模块的呼应,使它们在数据采集转换和功能展示上实现预想的目标。通过以上对智能照明系统需要实现的功能进行分析,确定了硬件和软件的设计思路,接下来就可以进行对系统的功能的介绍和方案的设计。第二章系统的设计2.1控制芯片的选择本设计采用的MCU是STC公司的STC89C52RC,该芯片使用的是MCS-51内核,这款单片机是一种低功耗、高性能CM0S8位微控制器,低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)。STC单片机具有在应用编程,调试起来比较方便;带有10位AD、内部EEPROM、可在1T/机器周期下工作,速度是传统51单片机的8到12倍,价格也较便宜。4通道捕获/比较单元,STC12C2052AD系列为2通道,也可用来再实现4个定时器或4个外部中断,2个硬件16位定时器,兼容普通8051的定时器。4路PCA还可再实现4个定时器,具有硬件看门狗、高速SPI通信端口、全双工异步串行口,兼容普通8051的串口,同时还具有先进的指令集结构,兼容普通8051指令集。STC89C52的功能:8k字节Flash,512字节RAM,32位I/0口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。操作相比较于其他单片机简单易上手。2.2设计的需求及功能在路灯照明中,除了以上多种问题外,光能消耗对于如今资源紧缺的时代,也是格外引人注目的,对于学校来说也是一笔不小的开支,所以需要通过设计一种可以解决许多方面问题的智能控制的路灯照明系统,从而达到节约资源的效果。在综合多方面的问题考虑后,希望系统能够实现一下功能:系统中的LCD液晶显示能够实时显示当前的时间、所处的星期和外界光照强度;系统可设定定时区间,在定时范围内系统正常工作,非定时时间内系统不会做出照明效果;系统拥有两种模式,一种是自动模式另外一种是手动模式,在自动模式下,系统可通过检测外界光照强度和有无人员通过来控制LED小灯的开关,在手动模式下,可以整体控制小灯的开启或关闭。2.3方案设计系统开发流程主要包括:根据需求和功能分析,确定系统的总体设计。确定硬件的型号,选择合适的元器件添加到系统中,进行硬件设计。进行软件设计,明确系统程序,将各个功能模块的程序展现出来。进行实验与调试,将以上设计的功能展现出来,从而解决现阶段校园路灯控制系统的问题。根据系统设计流程可将其转化为流程图如图2.1.单片机STC89C52单片机STC89C52进行硬件设计进行实验调试确定硬件的型号进行软件设计图2.1设计系统流程图在确定流程图之后,开始构建各个功能之间的联系图:单片机STC89C52单片机STC89C52时钟电路LCD显示电路蓝牙/下载功能控制电路按键操作和报警电路光敏检测电路USB小灯控制电路人体红外检测电路电源电路图2.2系统设计框架图基于单片机的校园智能照明系统的设计是由芯片STC89C52、时钟电路、蓝牙/下载功能控制电路、光敏检测、LCD显示电路、按键操作和报警电路、USB小灯控制电路、人体红外检测电路、电源电路等构成。先通过软件KeiluVision5将设定好的程序写到单片机中,连接USB数据线对单片机进行供电,通过按键控制单片机,设定时间、小灯的亮度百分比、光感强度等。设定之后也可通过按键设定程序为自动或手动从而达到对灯光的智能控制。也可以通过手机连接蓝牙对单片机进行自动或手动、小灯照明亮度等进行控制。本设计首先确定了单片机的种类,结合校园内照明系统的缺陷和需求对系统的软件程序进行设计,进而确定设计方案并对其进行模块分类,最终确定了系统的开发流程,再通过分析和实践得出系统的设计框图。硬件设计本设计系统硬件部分主要由单片机STC89C52、电源电路、LCD显示屏、按键报警电路、时钟电路、人体红外感应电路、蓝牙/下载电路、USB小灯控制电路、独立按键、ADC光敏采集电路等组成。电源模块采用了MiniUSB供电方式,而电源开关采用的是8.5*8.5的自锁开关通过相互控制达到正常的电力供电;LCD显示屏采用为LCD1602,来显示时间、光照强度等功能;本设计采用了四个功能按键,分别是切换、设置、加以及减,按键的型号采用的是贴片的6*6轻触按键,可以实现时间,USB小灯光照强度等的控制,报警电路部分设计为声光报警,蜂鸣器选用的是有源的,所以电压需要选择对应的,因此采用的是5V的HNB09A05,三极管选择PNP管子;时钟芯片采用的是DS1302,一个常见的芯片;红外感应采用的是HC-SR501人体红外感应模块作为人走过的反馈输入机制,当人是否进入其感应范围内的信号输入到单片机;蓝牙采用的是BT06蓝牙串口模块;USB小灯为5V供电;ADC光敏采集模块采用的ADC型号是PCF8591T,含有3个光敏电阻都为GL5516,可根据室内外的光照强度来控制小灯的开关;本系统的可实现的功能如下:1.LCD显示器实时显示当前时间/环境光强/工作模式2.支持路灯故障检测,如果在设定状态下小灯没有做出对应功能或者系统没有检测到信号将会触发报警功能。3.本系统具有两种控制模式为自动控制和手动控制:(1)自动控制:本系统通过软件程序设定时间为24小时制并且设定时间在18~24时内(起始时间设定范围在18:00~23:00,结束时间设定范围在05:00~10:00)在这两个路灯同时点亮,24时以后,A路灯常亮,B路灯关闭,若检测到由物体通过,路灯B点亮并于10s后关闭。在非设定时间内如10:00~18:00,光照强度低于所设定的光照阈值A、B路灯点亮。(2)手动控制:可通过按键左键和右键分别使A、B路灯同时关闭或同时点亮。4.可使用手机软件(SPP蓝牙串口)通过蓝牙发送命令分别控制两个路灯状态:发送命令格式为:*Ax#或*Bx#A/B表示路灯A/路灯B,x表示灯光等级,0~3有效,0表示关闭。发送命令格式“*MA#”切换为自动模式,“*MM#”切换为手动模式。5.可通过按键更改当前时间/路灯设定时间/光照阈值/工作模式/路灯光照强度按键功能描述:a.非设置状态下按键功能:b.设置状态下按键功能:切换/确定键:切换自动/手动模式切换/确定键:保存设置并退出设置状态上/下键:更换界面上/下键:加/减左键:关闭所有路灯左/右键:切换设置右键:打开所有路灯设置键:按下进入设置状态设置键:进入对应设置界面下面是对硬件各个模块的详细分析与解释。3.1单片机3.1.1单片机的特点单片机是一种集成电路芯片,它可以把是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/0口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。他的制造价格其系统结构简单,使用方便,实现模块化;可靠性高,可长时间工作并不出故障;处理功能强,速度快。低电压,低功耗,便于生产便携式产品控制功能强,环境适应能力强。3.1.2单片机的系统本设计采用的MCU为STC公司的STC89C52RC,该芯片使用经典的MCS-51内核,最小系统如图3.1所示,在我们调试MCU小系统的时候,外部干扰使得单片机程序运行出现错误的现象,在单片机使用过程中是屡见不鲜的,而稳定、可靠的电源电路是系统顺利运行的必要条件。因此为了解决这个问题,为单片机系统配置一个可靠、稳定的供电模块就显得十分重要了。如果工作异常首先第一步就是检查芯片的供电电源是否正常,再之后检测晶振(最高运作频率35MHZ)和复位。图3.1STC芯片系统该芯片的工作电压为5.5V~3.3V,工作频率:0~40MHZ.复位后为:P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。3.2电源电路在设计电源接口的时候根据实际使用情况多方面考虑,最终设计了MiniUSB,因为它需要的电压、电流很低为5V、1A就可为其供电,提供电源的方式有很多种,可以使用移动充电宝、电脑上面的插口或者手机充电头等等都可以提供电源。采用MiniUSB供电的方式可以避免插反烧坏板子情况,在这里之所以采用MiniUSB而不MicroUSB,主要原因是由于MicroUSB体积比较小,在开放性板子上面容易多次拔插情况下给搞坏导致接触不良(所谓开放性板子就是无结构件固定的裸板),所以这里没有采用MicroUSB。MiniUSB的内部结构如图3.2所示,其中Id脚在OTG功能中才使用。由于Miniusb接口分Mini-A、B和AB接口。OTG是On-The-Go的缩写,即OTG技术就是实现在没有Host的情况下,实现从设备间的数据传送。主要应用于各种不同的设备或移动设备间的联接,进行数据交换。例如数码相机直接连接到打印机上,通过OTG技术,连接两台设备间的USB口,将拍出的相片立即打印出来;也可以将数码照相机中的数据,通过OTG发送到\t"/item/Mini%20USB/_blank"USB接口的\t"/item/Mini%20USB/_blank"移动硬盘上。电源开关部分采用的是8.5x8.5的自锁开关,这里需要注意就是自锁开关的方向,如果焊接反了会导致按下时候为电源关断,弹上来是电源闭合。图3.2电源电路3.3显示电路本设计的显示部分采用的LCD1602,设计图如图3.3所示,这里需要注意如果用单片机的P0接口,记得加上拉电阻,这是该芯片决定的;另外,LCD1602的R/W管脚,大多数的情况下直接接地保持写操作就行,如果是一些项目需要读操作的话,就需要把该管脚接入单片机(比如基于51单片机的示波器或者贪吃蛇这种项目);VL管脚是调试对比度的,如果事先不知道这个分压参数,用的是电位器的话,很可能第一次使用时候分压不合适导致显示屏亮的但没有东西,就误以为是自己程序的问题,捣鼓了半天才发现是对比度没有调好,其实程序早已经再运行。一般的LCD1602字符型液晶显示器的内部控制器大部分为HD44780,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号。在本设计中用于显示:时间/环境光强/工作模式。技术参数如下:(1)显示容量:16×2个字符(2)芯片工作电压:4.5~5.5V(3)工作电流:2.0mA(5.0V)(4)模块最佳的工作电压:5.0V(5)字符尺寸:2.95mm×4.35mm(宽×高)图3.3LCD显示电路引脚功能:LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明见表3.1。表3.1LCD引脚功能表LCD引脚功能表编号符号引脚说明标号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极对于LCD引脚来说,引脚1VSS为电源接地,引脚2VDD为接5V正电源。在LCD1602的3号引脚上可接可接10K的精密电位器,就可调整液晶屏显示器的对比度,或同样阻值的蓝白可调电阻,故本系统选用10K的蓝白可调电阻。4号引脚RS为寄存器选择脚,高电平时选择数据寄存器、低电平时选择指令寄存器。5号引脚R/W为读/写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或显示地址;当RS为低电平,R/W为高电平时,可以读忙信号;当RS为高电平,R/W为低电平时,可以写入数据。引脚6E端为使能端,即控制信号输入端,当E端由高电平跳变为低电平时,液晶模块执行命令。7号~14号引脚,D0~D7为8位双向数据线。15号引脚为背光电源正极而16号脚为背光电源负极。3.4按键和报警电路该项目设计了六个功能按键如图3.4,分别是右、上、下、左、确定、设置。按键的型号采用的是贴片的6*6轻触按键,可以通过按键对单片机进行控制。图3.4按键电路按键S3控制USB小灯的打开按键S6控制关闭,当系统被调制成设置状态下按键S3和S6分别控制显示光标的向右向左移动。S4和S5控制显示器的显示内容起到翻阅的功能,可将显示内容调整为日期显示、USB小灯亮度、光敏采集强度和模拟夜间工作时间段,当系统被调制成设置状态下按键S4和S5分别控制加和减。按键S7可以控制系统为自动模式和手动模式光标往右移动,当系统被调制成设置状态下按键S7可充当为确定的作用,也就是设置的终止按键。按键S8可控制系统进入设置界面。所以可以通过各个按键的相互联合对系统进行预想的控制。报警电路部分设计了声光报警,原理很简单,如图3.5,一个蜂鸣器加LED就可以实现,这里需要注意两个地方,第一是蜂鸣器需要选用有源的,操作简单,另外就是电压需要选择对应的,本设计采用的是5V的HNB09A05;第二就是这里的三极管采用的是PNP管子,原因是该单片机上电默认为高电平,如果这里采用的是NPN管子,上电瞬间就会声光报警(即便程序里边该IO口初始化为低),所以这里采用PNP管子来避开这种情况。图3.5按键和报警电路当系统遇到故障时就会出发报警,蜂鸣器会发出“嘀嘀嘀”的持续声音,同时LED灯会发出红光提示操作人,如果LED灯亮了而蜂鸣器未响则可能出现蜂鸣器损坏的可能性,如果蜂鸣器响了而LED灯未做出反应则可说明LED小灯出现故障。3.5时钟电路本项目板载有时钟芯片如图3.6,采用的芯片是美国DALLAS公司的DS1302是一种高性能、低功耗、带RAM的实时时钟电路。它的功能是对年、月、日、周、时、分、秒和星期进行计时,并且可以通过配置使时间格式为24小时制或12小时制。DS1302可在电压2.0V~5.5V中进行正常操作,当它在2.0V电压中工作,它的工作电流小于300nA它具有31字节数据储存RAM,使用I/0通信方式,可以节省I0口的使用。图3.6时钟电路DS1302一共有8个管脚,其功能如表3.2。表3.2DS1302功能表DS1302功能表管脚号管脚名称功能1VCC2主电源2、3X1、X232.769KHZ4GND地5RST复位/片选端6I/O串行数据输入/输出7SCLK串行时钟输入端8VCC1后备电源对于时钟芯片管脚来说,它的1号管脚VCC2为主电源,而8号管脚VCC1则为后备电源。为了确保时钟的连续性,当主电源关闭时则会自动启用备用电源。管脚2和3分别为X1、X2,它们是震荡源,外接32.769kHz晶振。管脚4GND是电源接地。管脚5RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST有接通控制逻辑,语序地址/命令序列送入移位寄存器和提供终止单字节或多字节数据传送的方法。管脚6I/O为串行数据输入输出端而管脚7SCLK为时钟输入端。其中如果RST为高电平时,所有的数据传送会被初始化,允许对DS1302进行操作,如果在传送中RST被置为低电平则会终止本次数据传送,I/O引脚变为高阻态。当接通电源运行时,在VCC大于等于2.0V之前,RST必须保持低电平,只有在SCLK为低电平时,才能将RST置为高电平。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解诀这个问题。3.6红外电路本设计采用的是HC-SR501人体红外感应模块作为人走过的反馈输入机制,当人进入其感应范围该模块则输出高电平,通过一个PNP三极管可以将该信号输入到单片机,参考电路如图3.7所示。它具有两种触发方式:这两种方式可跳线选择1、不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平;2、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平;输出高电平信号是为了方便与各类电路实现对接。图3.7红外感应电路下面是它的一些功能介绍:1、全自动感应:如果有人走入其感应范围则输出电平,人离开感应范围则自动延时关闭高电平,输出低电平;2、光敏控制:可设置光敏控制,本设计设定白天时间段内或光线强时不感应;3、温度补偿:在夏天当环境温度升高30~32℃,探测距离会变短一些,温度补偿可作一定的性能补偿,但是本设计未涉及到这个功能;4、具有感应封锁时间:感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产:同时此功能可有效抑制负载切换过程中产生的各种干扰;5、工作电压范围宽:默认工作电压DC4.5V-20V;6、微动耗:部态电流<50微安,特别适合干电池供电的自动控制产品。3.7蓝牙/下载器电路如下图3.8所示,本设计采用的是BT06蓝牙串口模块,通过4PIN的排母连接,因为该单片机只有一路串口,所以这里通过一个拨码开关来切换通信和下载。图3.8蓝牙/下载器电路BT06蓝牙模块是专为智能无线数据传输而打造,遵循V3.0

蓝牙规范。本模块支持UART接口,并支持SPP蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。BT06蓝牙的优点:使用蓝牙V3.0+ED,大大提高了蓝牙技术的数据传输速率,达到了2.1Mbps,是目前蓝牙技术的三倍;蓝牙Class2配置范围在10米左右;内置PCB射频天线;支持UART接口;电源配置为3.3V,如果和5V电平系统连接需要增加电平转换芯片。缺点:蓝牙信号受周围影响很大,如树木、金属、墙体等障碍物会对蓝牙信号有一定的吸收或屏蔽,不能将其安装在金属外壳之中。蓝牙电路如图3.9所示。BT06蓝牙的应用领域:该模块主要用于短距离的数据无线传输领域。可以方便的和PC机的蓝牙设备相连,也可以两个模块之间的数据互通。避免繁琐的线缆连接,能直接替代串口线。图3.9蓝牙电路BT06物理特征如表3.3所示:表3.3BT06功能表操作频带

2.4GHz

-2.48GHz

unlicensed

ISM

band

蓝牙规范

V2.1+EDR

输出频率类

Class

2

工作电压

3.3V

主机接口

UART

尺寸

27mm

(L)

x

13

(W)

mm

x

2mm

(H)

状态指示:用于指示蓝牙模块所处状态,LED灯闪烁方式与蓝牙模块状态对应见表3.4:表3.4蓝牙模块状态表模式LED显示模块状态从模式均匀慢速闪烁(800ms-on,800ms-off)等待配对长亮建立连接本设计通过手机应用商店搜索“蓝牙串口”,下载“SPP蓝牙串口”或“蓝牙串口”APP,打开APP后,搜索连接“BT04-A”,输入PIN码“1234”即可链接,并通过手机发送指令格式为:*Ax#或*Bx#A/B表示路灯A/路灯B,x表示灯光等级,0~3有效,0表示关闭。发送命令格式“*MA#”切换为自动模式,“*MM#”切换为手动模式。3.8USB小灯电路该项目的小灯部分采用的是USB小灯,如图3.8所示(本设计采用了两个一样的USB小灯)这种,5V供电,输入电流为2.0A使用起来非常方便。板载的USB采用的是立式的,控制电路部分采用的是PNP的三极管,原因跟上述蜂鸣器的原因一样,是为了避免单片机刚上电时候误触发。图3.10USB小灯电路USB小灯作为本设计系统的光源装备,它的亮度可以通过按键设定进行调节也可以观察它在设定程序中做出的反映是否能达到预期的效果,进而检验设计的程序有无问题。3.9光敏采集电路该项目的采用的ADC型号是PCF8591T如图3.9所示,通信方式为IC。本设计项目共设计了三个光敏电阻,其中两个分别放置于USB小灯下方用于检测对应的灯故障与否,另外一个光敏放置于板边用于检测环境光。只有光线正对着光敏电阻的上方投射才能使其产生较大变化值,只需将光敏电阻的位置垂直放于USB小灯下方即可。图3.11光敏采集电路综合上述各个电路图,得到下面电路的总原理图。硬件设计使用了9个小的电路模块,从单片机的选择→电源电路→显示电路→按键和报警电路→时钟电路→红外电路→蓝牙/下载器电路→USB小灯电路→光敏采集电路,各个模块相互反馈使系统达到智能控制的目的。第四章软件设计4.1软件的总体设计系统的软件设计,也就是系统功能的设计。在软件设计中,通常把整个程序拆分成若千个程序模块,分别进行编程、调试,形成一个完整的程序。4.2系统主程序的设计流程本系统的软件功能主要是要完成控制系统各部分的初始化、实现各个功能子程序的调用、实际测量中各功能模块的协调等工作。首先系统上电复位后,单片机的器件和端口进过初始化过程,向时钟模块DS1302发送请求,直到时钟模块DS1302回复数据才可更新时间、光照强度、工作模式等数据。然后判断按键是否被按下。若系统感应到按键被按下,则可设置任意时间、光照强度、工作模式。在设置完成之后,再继续向时钟模块DS1302发送请求,继续进行程序循环。当时间、光照阀值被确定之后(20:00~7:00):1、自动模式:在设定时间20:00~24:00内这两个路灯同时点亮,24:00~7:00内,A路灯常亮,B路灯关闭,若红外感应电路检测到有人员或者物体通过,路灯B点亮并于10s后关闭。在非设定时间7:00~20:00内,光敏采集检测电路检测外界光线强度,如果光照强度低于所设定的光照阈值A、B路灯同时点亮。如果在任意时间段内小灯出现故障则会启动报警电路。2、手动模式:按键控制USB小灯同时打开或者关闭。如出现故障,则会启动报警电路。3、蓝牙模式:通过手机连接蓝牙发送指令格式为:*Ax#或*Bx#A/B表示路灯A/路灯B,x表示灯光等级,0~3有效,0表示关闭。发送命令格式“*MA#”切换为自动模式,“*MM#”切换为手动模式。按下按键?设置时间?按下按键?设置时间?设置时间系统初始化向DS1302发送请求更新时间数据回复数据Y开始NNA亮B10s后熄灭NA亮B10s后熄灭NYY有无人员经过?NY有无人员经过?NYNA亮B灭Y设置定时?NA亮B灭Y设置定时?A,B灯同时亮或灭自动识别时间设置定时A,B灯同时亮或灭自动识别时间设置定时Y自动模式自动模式?Y自动模式自动模式?NN按下开关?手动模式按下开关?手动模式YNYNA、BA、B关灯A、BA、B开灯图4.1系统主程序流程图系统的主程序模块主要是为了完成控制系统各部分的初始化、实现各个功能子程序的调用、实际测量中各功能模块的协调等工作。首先系统上电复位后,单片机的器件和端口会进行初始化的过程,向DS1302发送请求,直到DS1302回复数据才会更新时间数据。然后系统会判断按键是否按下,如果系统感应到按键被按下,则可以设置实时时间。在设置完成之后,会继续向DS1302发送请求,继续程序循环。如果是设定定时时间,在自动模式下,已经写好的程序会自动识别时间,进行分类运行程序。在20:00~24:00时间段内A、B两灯会同时发光,在24:00~7:00时间段内A灯常亮B灯熄灭,如果路灯红外感应系统感应附近有人员通过B灯会发光,10s后自动熄灭。在手动模式下,可以通过按下控制路灯开关按键,对路灯进行实时控制,同时打开或同时关闭。各个功能相互结合从而达到智能控制。使用手机蓝牙控制系统程序流程图如图4.2:开始开始系统初始化打开蓝牙模式手机连接蓝牙发送指令*MA#*MM#*Ax#或*Bx#输出信号图4.2蓝牙控制系统流程图通过手机蓝牙控制对系统进行操作,先给系统接上电源,系统初始化之后进入正常启动界面,将蓝牙装置安装到板子上,通过手机连接蓝牙,调制好之后输入指令系统就会做出相应的反应。4.3系统子程序的设计流程系统子程序LCD显示系统流程图如图4.3所示:开始开始设置光标调用显示子程序?初始化显示位置和内容设置输入方式结束数据处理参数显示的地址显示处理后的一位数据源NY图4.3LCD显示系统流程图LCD1602显示流程:编写显示屏的功能设置其输入方式设置显示方式通过按键修改显示内容显示程序开始时必须要进行初始化,否则模块无法正常显示,初始化LCD1602功能后,然后将指令功能和数据功能写入LCD1602。再设置显示位置。通过编译程序来显示年、月、日、时、分、秒、周。

第五章系统的实验与调试5.1调试目的软件测试是一项非常重要且复杂的工作,对于软件的可靠性和保证性具有极其重要的意义,通过软件测试可以发现软件设计过程中的不足之处,以便更好地完善。本设计的主要设计目的是显示模块能正常显示,并能通过按键控制来实现路灯工作模式为自动或手动的改变。5.2调试方法测试方法主要是针对本设计的功能模块进行测试,看是否能够正常使用,显示是否出现乱码,路灯是否按照预期结果亮灭等。5.2.1功能调试:本设计主要是针对于路灯亮度的控制和自动或手动转换。在此对系统各部分功能,以及可靠性等方面进行测试。测试LCD1602的显示:a.每次开关电源板子是否都进行初始化。图5.1图5.2开机自动显示:“Welcome”字样,然后显示内容自动转化为日期、周、外界光亮程度和系统模式。显示如上图5.1和图5.2所示。b.通过按键改变系统模式为自动(A)或手动(M)。图5.3图5.4由上图5.3和图5.4可见显示屏右下角字母“A”变成了“M”c.通过按键控制第一行显示内容。如图5.5显示的是设定的外界光的感应强度。图5.5如图5.6设定的夜间时间段。图5.6如图5.7是设定的小灯的光照强度。图5.7如图5.8是日期显示。图5.8d.通过按键对各个显示内容进行控制改变前如图5.9和图5.10所示:图5.9图5.10改变后如图5.11和图5.12所示:图5.11图5.12如上图示改变了日期、周几、小灯的亮度、系统的状态。(L表示的是外界环境光亮程度,会自动变化)测试报警功能:先将系统调试成手动模式,在设定光照强度内,按下右键使A、B两小灯同时打开,用手遮住光敏电阻使其接收不到小灯光照的信号(模拟路灯处于非工作状态),触发报警系统点亮红灯,蜂鸣器发出“嘀~”的声音,如图5.13所示。此时将手移开,“嘀~”的声音关闭,如图5.14所示。图5.13图5.14(3)测试HC-SR501人体红外感应模块:先设定工作时间模拟夜间环境,在18:00~00:00时小灯A、B同时点亮,在00:00~6:00时A灯常亮,B灯通过人体感应系统来感应是否有人员通过,使B灯打开10s后熄灭。(a)18:00~00:00小灯发光如图5.15所示:图5.15如上图所示小灯A和B同时发光。(b)00:00~6:00小灯发光如图5.16所示:图5.16没有人员经过时:如图5.16所示A灯常亮,B灯关闭。有人员经过时:如图5.17A灯常亮,B灯亮10s后自动关闭。图5.17(4)测试通过手机蓝牙对系统的控制:先将板子调制成蓝牙模式,打开手机蓝牙连接,连接成功后,发送指令:指令1:“*MA#”指令发送完毕之后,系统会变为自动(A)状态。如图5.18所示。图5.18指令2:“*MM#”指令发送完毕之后,数字“A”会变成“M”。如图5.19所示。图5.19指令3:“*A0#”指令内容为A灯亮度为0级,结果为A灯灭。如图5.20所示。图5.20指令4:输入“*A2#”为A灯亮度为2级,结果为A灯2级亮。如图5.21所示。图5.21指令5:“*B0#”指令内容为B灯亮度为0级,结果为B灯灭。如图5.22所示。图5.22指令6:“*B2#”指令内容为B灯亮度为2级,结果为B灯2级亮。如图5.23所示。图5.23实验表明:通过按键修改时间、模式、小灯的亮度、外界光感强度等和系统在自动模式下能够成功运行程序还有通过蓝牙控制修改这些内容,每次测试皆达到预期结果。总结与展望本文主要是针对校园照明系统的诸多不足与缺点,设计了基于单片机的校园智能照明系统,目的是提高校园灯光照明的利用率,减少校园电能消耗。基于单片机的校园智能照明系统的设计涉及到许多的知识内容,是一个综合性的课题设计,并且十分具有设计和实用价值。本文在对系统各模块的功能进行分析后,确定了用KeiluVision5软件编写程序,然后通过烧录软件将程序烧录到主控芯片STC89C52上,完成对电源电路、LCD显示屏、按键报警电路、时钟电路、人体红外感应电路、蓝牙/下载电路、USB小灯控制电路、独立按键、ADC光敏采集电路之间的配合,使它们在数据处理和功能上可以达到预定的功能。显示电路模块可以显示实时的时间日期、外界光照强度、小灯的灯光设定等级、设定的夜间模拟时间和外界光的感应强度等。系统还可以设置定时区间,在定时范围内,系统正常工作,在定时范围外,系统不会开启照明,这样就避免了在白天开灯造成的能源浪费。本设计系统有自动模式与手动模式两种模式,在自动模式下,红外对管电路模块可以测定在路灯的附近是否有人员通过,光线检测电路模块可以检测外界的光照强度,从而对LED灯控制模块发出信号,开启不同数量的小灯,以保证校园照明的需求。最终可以实现校园智能照明的目的。由于个人能力和投入研究的时间比较仓促本设计还有许多可以完善的地方。1、人体感应模块本设计不止能感应到人类,如果是其他类小动物经过也会触发感应系统。板子的供电系统不够完善,如果设定小灯亮度为3级的时候,LCD显示屏的亮度会变暗。本设计在检测LED小灯是否存在故障时,需在无外界光线干扰的情况下(在黑暗条件)才能正常运行,如果外界光照强度较高时,小灯故障检测将会收到影响。由于本人的能力有限,做出的系统还存在着不少的问题。希望在以后有更多的人能够参与到这个课题的研究中,最终做出更加完美的智能照明系统。参考文献朱家义.C语言程序设计实例教程[M].北京:清华大学出版社.2009郭天祥.51单片机C语言教程[M].北京:电子工业出版社.2018余永权.单片机原理及应用[M].北京:电子工业出版社.1997李全利.单片机原理及应用[M].北京:清华大学出版社.2014蒋明强,宗强,宋宇钦,余强国.智能路灯控制系统设计及应用[J].集成电路应用.2020(04)张伟,杨森林.基于单片机控制的智能路灯控制系统设计[J].现代电子技术.2018(14)徐万彬,万华.触发开关电路的设计与应用[J].电子世界.2019(03)徐全林.基于蓝牙控制的智能台灯系统设计[J].科技创新与应用.2017(09)安双利,钱锐,陆翔宇,陆园.基于单片机智能控制的路灯节能系统的研制[J].上海第二工业大学学报.2011(01)[10]周润景,张丽娜,丁莉.基于PROTEUS的电路及单片机设计与仿真[M].北京:航空航天大学出版社.2009.[11]谭浩强.C程序设计[M].北京:清华大学出版社.2016.[12]杨素行.模拟电子技术基础简明教程[M].北京:高等教育出版社.2015.[13]王为青,邱文勋.51单片机应用开发案例精选[M].北京:人民邮电出版社.2007.[14]张齐,朱宁西,毕盛.单片机原理与嵌入式系统设计--原理、应用、Proteus仿真、实验设计[M].北京:电子工业出版社.2011.[15]林吉海,于艳敏.电路及单片机设计仿真理论与探究[M].北京:中国水利水电出版社.2013.[16]张齐,朱宁西,毕盛.单片机原理与嵌入式系统设计--原理、应用、Proteus仿真、实验设计[M].北京:电子工业出版社.2011.[17]李学海.标准80C51单片机基础教程原理篇[M].北京:北京航空航天大学出版社.2006.[18]李群芳.单片微型计算机与接口技术[M].北京:电子工业出版社.2005.[19]胡学海.单片机原理及应用系统设计[M].北京:电子工业出版社.2005.附录A源程序代码#define__MAIN_C#include<reg52.h>#include"main.h"////#define_SIMULATION_bitdispFlag=1;bitsetFlag=0;bitsendFlag=0;unsignedcharsetIndex=0;unsignedcharlightValue;unsignedcharlightValueA;unsignedcharlightValueB;unsignedcharlightLimit=40;unsignedchartimeLimit[4]={18,0,5,0};chardispMode=0;bitautoFlag=0;bitlampBDelay=0;bitlampAError=0;bitlampBError=0;bitlampASwitch;bitlampBSwitch;unsignedcharlampAPWM=3;unsignedcharlampBPWM=3;intcnt=0;unsignedinttime500us=0;unsignedchari=0;unsignedcharR_buf[4];voidmain(){//初始化lampASwitch=LAMP_OFF;lampBSwitch=LAMP_OFF;LCD_Init();DS1302_Init();#ifndef_SIMULATION_EEPROM52_Read();if(isNew==1){DS1302_WriteTime();}DS1302_ReadTime();EEPROM52_Init();#endif#if_TIMER0_STATUS_Timer0_Init();#endif#if_UART0_STATUS_UART0_Init();#endifDelayMs(20);//开机显示LCD_DispStr(0,0,"Welcome!");DelayS(2);LCD_Clear();DS1302_ReadTime();DispNormal(setIndex);while(1){//LCD1602液晶显示if(dispFlag==1&&setFlag==0){dispFlag=0;LampCtr();CheckLamp();DS1302_ReadTime();if(dispMode==DISP_NORMAL){DispNormal(setIndex);}elseif(dispMode==SET_TIME_LIMIT){DispSetLimit(setIndex);}elseif(dispMode==SET_LIGHT){DispSetLight(setIndex);}elseif(dispMode==CHECK_LIGHT){DispCheckLight(setIndex);}}//发送一次串口信息if(sendFlag==1){sendFlag=0;if(lampAError==1){sprintf(dispRow0,"A:%dEr",(int)lampAPWM);}else{sprintf(dispRow0,"A:%dOk",(int)lampAPWM);}if(lampBError==1){sprintf(dispRow1,"B:%dEr",(int)lampBPWM);}else{sprintf(dispRow1,"B:%dOk",(int)lampBPWM);}if(lampASwitch==LAMP_OFF){UART0_SendStr("C",1);}else{UART0_SendStr("O",1);}UART0_SendStr(dispRow0,8);if(lampBSwitch==LAMP_OFF){UART0_SendStr("C",1);}else{UART0_SendStr("O",1);}UART0_SendStr(dispRow1,6);UART0_SendStr("\r\n",2);if(autoFlag==1){sprintf(dispRow1,"%02d:%02d:%02dL:%02dA",(int)timeBufDec[4],(int)timeBufDec[5],(int)timeBufDec[6],(int)lightValue);}else{sprintf(dispRow1,"%02d:%02d:%02dL:%02dM",(int)timeBufDec[4],(int)timeBufDec[5],(int)timeBufDec[6],(int)lightValue);}UART0_SendStr(dispRow1,16);UART0_SendStr("\r\n",2);UART0_SendStr("\r\n",2);}KeyProcess();}}voidLampCtr(){lightValue=99-99*ReadADC(0)/255;//读取当前光照强度if(autoFlag){if((timeBufDec[4]==timeLimit[0]&&timeBufDec[5]>=timeLimit[1])||(timeBufDec[4]>timeLimit[0])\||(timeBufDec[4]==timeLimit[2]&&timeBufDec[5]<timeLimit[3])||(timeBufDec[4]<timeLimit[2]))//工作时间内路灯操作{lampASwitch=LAMP_ON;if((timeBufDec[4]>=0&&timeBufDec[4]<timeLimit[2])||(timeBufDec[4]==timeLimit[2]&&timeBufDec[5]<timeLimit[3])){if(!lampBDelay){lampBSwitch=LAMP_OFF;if(IRFLAG==1)//检测到有人或车经过启动10s定时{lampBDelay=1;}}}else{lampBSwitch=LAMP_ON;lampBDelay=0;}}else//工作时间外路灯操作{if(lightValue<lightLimit)//光照强度低于设定阈值{lampASwitch=LAMP_ON;lampBSwitch=LAMP_ON;}else{lampASwitch=LAMP_OFF;lampBSwitch=LAMP_OFF;}}}}voidCheckLamp(){if(lampASwitch==LAMP_ON)//路灯A打开时,检测对应光强{lightValueA=99-99*ReadADC(1)/255;//读取当前光照强度if(lightValueA<50)//路灯A故障声光报警阈值可根据实际情况调整{lampAError=1;BUZZER=0;//打开蜂鸣器}else{lampAError=0;}}if(lampBSwitch==LAMP_ON)//路灯B打开时,检测对应光强{lightValueB=99-99*ReadADC(2)/255;//读取当前光照强度if(lightValueB<50)//路灯B故障声光报警阈值可根据实际情况调整{lampBError=1;BUZZER=0;//打开蜂鸣器}else{lampBError=0;}}if(lampAError==0&&lampBError==0)//灯都没有故障{BUZZER=1;//关闭蜂鸣器}if(lampASwitch==LAMP_OFF&&lampBSwitch==LAMP_OFF)//灯全部关闭{BUZZER=1;//关闭蜂鸣器}}#if_TIMER0_STATUS_//Timer016位装载voidTimer0_Init(void){TMOD&=0xF0;TMOD|=0x01;TL0=0x33; //设置定时初值TH0=0xFE; //设置定时初值500usTR0=1;//启动T0计时ET0=1;//打开T0中断EA=1;//打开总中断}voidTimer0_Intterupt(void)interrupt1{staticunsignedcharACount=0;staticunsignedcharBCount=0;TL0=0x33; //设置定时初值TH0=0xFE; //设置定时初值500usif(cnt>10000)//5s发送一次串口信息{sendFlag=1;cnt=0;}else{cnt++;}if(autoFlag){if(lampBDelay==1){time500us++;lampBSwi

温馨提示

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

最新文档

评论

0/150

提交评论