基于51单片机的智能照明控制系统设计|毕业设计项目|单片机项目|物联网设计|毕设

一、项目介绍
摘 要
传统的照明控制系统存在着自动化程度不高、能耗大、用户使用体验不佳等缺点。为了解决以上问题,本文设计出一套基于51单片机的智能照明控制系统。系统用STC89系列单片机做控制中枢,把数字光照传感器和热释电红外传感器结合在一起,从而达到对环境光照强度以及人员活动进行实时检测的目的。系统有三种工作模式,环境光自适应模式、人体感应启停模式、手动覆盖模式,根据需要可自由切换。执行部分用PWM脉冲宽度调制技术控制LED灯具的无级调光,使用继电器控制照明电源的通断。系统配有按键输入和液晶显示模块,利于用户的交互以及状态查看。本文完成了系统的总体方案设计、硬件电路设计、软件程序开发、结构建模等工作。经过测试,本系统的各项功能完备、反应迅速、运行可靠,可以达到“人来灯亮、人走灯灭”以及“按需调光”的智能化照明效果,有较好的节能作用及广泛的实用性。
关键词:51单片机;智能照明;人体感应;PWM调光;自动控制
主要研究内容
本课题主要的研究内容就是设计出并实现一个基于51单片机的智能照明控制装置。系统用STC89系列单片机做为控制中心,结合环境光照检测模块和人体红外感应模块来完成对LED灯具的智能控制。研究内容可以分为以下几个方面。第一,对系统总体方案进行设计,确定系统的功能需求、技术指标和总体架构,通过方案比选论证来确定最优的硬件选型和软件架构。第二,完成系统硬件电路设计与制作,包括单片机最小系统、感知模块、执行模块、交互模块等各个部分电路的设计、元器件的选择及PCB板图的绘制。
第三,设计并开发系统软件,使用Keil开发环境中的模块化编程思想,编写系统的初始化、信号采集、模式判断、PWM调光输出等功能程序,实现环境光自适应模式、人体感应启停模式和手动覆盖模式三种控制逻辑。第四章完成系统硬件结构建模及图纸绘制工作,用相关软件制作出核心部件三维模型、二维工程图。第五,建立系统实物原型,对各个模块做分模块测试,最后做整体联调,检验系统的功能是否完整,性能是否稳定。通过对以上内容的完成,最终得到一个功能完备、性能优良、成本控制在合理范围内的智能照明控制系统。
设计目标
本文以对已有智能照明产品进行充分调研为前提,设计出一个具有功能齐全、性能稳定、成本低的智能照明控制系统。系统主要针对家庭走廊、小型教室等室内基础照明场所,需要通过环境光线的变化以及人员活动情况的变化来自动控制照明设备的开闭和亮度,而且还要具有手动控制模式供用户使用。功能上需要系统实现环境光自适应模式、人体感应启停模式、手动覆盖模式这三种主要的控制方式,并且能实现模式之间的相互切换。
性能上系统要求响应快,检测到人员活动或者环境光线变化的时候可以立即作出控制反应。系统应具有较好的连续工作稳定性,在日常的室内环境中可以长期可靠地工作,抗得住一般的轻微电磁干扰。从成本控制的角度来说,在保证功能性能的前提下,选用性价比较高的元器件来控制整个硬件的成本,在价格上保持一个合理的范围之内,从而具有较好的市场推广价值。此外,系统应该具有一定的扩展性,即为以后添加无线通信、手机控制等功能留有接口。
系统总体架构
本系统用到了一个四层的模块化设计结构即感知、控制、执行和交互四个部分。感知层完成环境信息的采集工作,主要是环境光照强度检测以及人体活动检测。光照检测模块可以实时监测周围环境光线的情况,从而给出是否需要开灯的判定。人体感应模块用来探测人体是否进入了照明区域内,避免在无人的时候造成能源的浪费。两类传感器产生的信号经过信号调理电路处理之后,再送到控制核心去加以处理。控制层用51单片机作为中心,接收传感器的信号,根据事先设定好的控制逻辑做出判断、决策并发出控制指令。
执行层按控制层发送的信号来控制照明设备的工作。当需要开启或者关闭照明的时候,单片机用控制继电器或者驱动电路去接通或者断开LED灯具的电源。当需要调节亮度的时候,单片机送出PWM脉冲宽度调制信号,利用变化的占空比来对LED进行无级调节。交互层给用户提供和系统进行交互的接口,即按键输入、状态显示两部分。用户可以通过按键将自动模式和手动模式进行切换,在手动模式下可以直接控制照明开关。液晶显示屏可以及时显示出当前工作模式以及光照情况,有利于用户了解系统工作状况。
方案论证与选型
系统总体方案确定前要对关键部件进行方案论证、对比分析。第一是选择控制中心。本设计对51系列单片机、AVR系列单片机和STM32系列单片机三种方案进行对比。51系列单片机技术成熟、资料齐全、开发简便、成本低,完全可以满足本设计控制逻辑和信号处理的要求。AVR、STM32性能更好,但是对本应用场景来说存在性能过剩、成本过高这两个问题。所以本设计采用51系列单片机做控制核心,所选型号为STC89系列,该系列有8K字节的Flash存储器和足够多的I/O引脚,可以满足系统的需要。
其次就是光照检测传感器的选型。本设计比较了光敏电阻方案和数字光照传感器方案。光敏电阻方案成本很低,但是输出为模拟量,需要外接A/D转换电路,且易受温度影响,精度不高。数字光照传感器方案虽然成本较高,但是可以直接输出数字光照度值,不需要复杂的外围电路,测量精度高,一致性好。根据设计精度和开发方便性综合选择数字光照传感器。其次就是人体感应传感器的选择,对热释电红外传感器、微波雷达传感器进行了比较。热释电红外传感器成本低、功耗小,适用于人体移动的检测,在室内的应用较为广泛。微波雷达灵敏度高但是成本高而且会产生电磁干扰。本设计选择热释电红外传感器模块,该模块集成度高,输出数字信号,方便和单片机接口。综上所述,本文选择以51单片机为主控,用数字光照传感器、热释电红外传感器来完成智能照明控制。
电源电路设计
稳定的电源是单片机系统正常工作的保证。本系统要给单片机、传感器、显示模块、驱动模块提供稳定可靠的5V直流电源。系统总功耗不大,并且对便携性以及供电方便性有要求的,本设计用USB接口供电。USB接口提供标准的5V电压,最大输出电流可达数百毫安,完全能满足本系统供电的要求。用户可以使用手机充电器、电脑USB口或者移动电源来给系统供电,使用非常方便。
虽然USB接口输出的标称5V的直流电压,但是实际输出电压会存在一定的波动以及噪声,直接供给单片机以及其它敏感器件会造成稳定性问题。因此本设计在USB输入之后加了一个滤波电路。在USB电源输入端并联一个大容量电解电容、一个小容量瓷片电容,电解电容起平滑电压波动、提供瞬时大电流的作用,瓷片电容起到滤除高频噪声的作用。电解电容选用100微法至470微法的瓷片电容。经过电容滤波后的5V电压已经比较平滑,可以直接给单片机、传感器和显示模块供电。
二、文档介绍






三、項目设计
主程序设计
主程序是系统软件的入口以及调度核心。系统上电后首先调用LCD1602初始化函数来完成显示屏的初始化设置,即清屏和显示模式配置,使屏幕可以正常的显示信息。然后调用延时函数等待10毫秒,清屏再延时10毫秒,最后调用串口初始化函数来完成定时器的配置,给系统提供准确的时间基准。初始化操作是系统正常工作必须满足的条件,保证各个硬件模块处于初始的状态。
完成所有的初始化工作之后,程序就进入了一个无限循环的主循环结构中。主循环中程序是按照固定顺序依次调用按键函数、检测函数、显示函数和处理函数。每个子函数只完成自己的工作就立即返回,把CPU的控制权交给主循环。这种前后台架构的优点就是结构简单清晰,各个功能模块之间的耦合度低,利于代码的编写、调试、维护。主循环的执行周期是由各个子函数执行的时间以及循环末尾的延时函数共同决定的,合理的设置可以控制各个模块的扫描频率,在保证系统响应速度的同时也不会造成CPU被过度占用。
按键函数设计
按键函数是对三个独立按键进行状态检测,并且执行相应的工作模式切换。本设计中的三个按键分别对应着常亮、关灯和自动这三种工作模式,用它们来实现相应的功能。按键检测的主要就是读取按键对应的I/O口的电平状态来判断按键是否被按下。由于机械按键在按下和释放的瞬间会存在物理抖动,直接读取电平状态不可靠,需要使用消抖处理。本设计使用软件延时消抖法,即先调用按键扫描函数获取按键键值,如果有按键被按住,则根据获取到的键值来执行相应的处理操作。
按键函数的处理过程是明确的。如果得到的键值为1,系统就处于常亮状态,如果得到的键值为2,系统就处于关灯状态,如果得到的键值为3,系统就处于自动状态。按键函数采用边缘触发方式,只在按键按下时才切换模式,防止用户长时间按压造成模式不断改变。同时函数实现模式互斥,保证系统一直处在一种模式下。当用户按下某一个模式的按键的时候,系统就切换到该模式,自动清除其他模式的标志位,保证模式状态的唯一性、确定性,给处理函数后面的控制逻辑提供准确的状态依据。
处理函数设计
处理函数为系统控制逻辑的主要部分,根据目前的工作模式以及传感器采集到的数据,来确定LED灯光的开闭和亮暗程度,再利用MX1508电机驱动模块来发出相应的控制信号。处理函数被周期性地调用,在每次的调用过程中都会执行完成整个的控制决策以及输出更新。不同工作模式下的控制逻辑不一样,要分步来设计。
按键1按下时处理函数不考虑其他情况,直接把灯光设置成全亮,灯光一直亮着。按键2按下时,处理函数不执行关灯操作。这两种手动模式会把全部控制权交给用户,适配特殊环境下的使用需要。当按键3被按下后,系统就进入自动的处理流程,该流程会进行智能控制的操作,先看有无人迹,如有则再依据环境里的光照水平调节灯光的亮度,发光强弱同光照强度存在反比例联系,即环境越暗灯光越亮,环境越亮灯光越暗,若有无人,灯光即会被关掉。这种反比控制策略就是本设计的主要算法,它会依据光照检测模块所获取的当前光照值,来不断改变灯光的发光强度。当光照值低时,环境比较暗,需要较强的灯光补偿;光照值高时,环境比较亮,可以不开灯或者使用较弱的灯光。因此智能调节使系统的用电最低,视觉最舒适。
模块功能测试
模块功能测试属于系统测试的第一步,其目的是检验每一个硬件模块及软件模块是否可以单独地正常工作。首先对单片机最小系统进行测试,它是其它所有的测试的基础。给系统上电之后,用示波器观察晶振引脚的波形,可以观察到清晰稳定的正弦波,频率和晶振标称值一致。用万用表测量单片机电源引脚到地的电压应该在5V左右。如果单片机事先烧录了简单的测试程序,用示波器在该I/O口上就可以看到预期的方波信号。晶振起振、电源电压正常就是单片机工作的基本条件。
接下去是对输入模块的测试。人体红外检测模块的测试方法为:给模块上电以后,在模块前方不同距离、不同角度的地方进行移动,观测模块输出引脚电平的变化。当有人移动时,输出引脚应该由低电平变为高电平,然后延时一段时间后再恢复为低电平。用示波器可以记录下电平变化的波形。测试时要记下感应距离、感应角度以及延时时间这些参数,并同模块标称值加以对比。光照检测模块测试方法是用不同亮度的光线照射光敏电阻,同时用程序读取ADC0832的转换结果,并通过串口发到电脑上显示。光照越强,转换数值越大,光照越弱,转换数值越小。用窗帘或者开关灯光来观察数值随着光照变化的趋势是否正确。
在输出模块的测试过程中,LCD1602显示模块的测试方法就是向LCD1602写入测试字符串,查看屏幕上能否正确的显示期望出的字符。若显示有异常,应该检查电源、对比度调节电位器及程序时序是否正常。MX1508驱动模块测试就是给它输入不同的PWM占空比信号,看LED灯串的亮度有没有随之变化。占空比由0%逐渐增大到100%,LED的亮度应该由全灭逐渐增大到全亮,中间过程应该是平滑连续的,不能有闪烁或者突变。经由模块功能测试,可以保证每一个模块都可正常运转,从而为系统联调打下根基。





总 结
本课题以51单片机为基础,完成了需求分析、方案论证、硬件设计、软件编程、系统测试等一系列工作。设计确定了节能环保、技术落地、用户体验提高的三个主要目的,按照成本控制、功能灵活的原则,确定采用STC89C52单片机为主控芯片,加上人体红外传感器、光敏电阻加ADC0832光照检测、LCD1602显示、MX1508驱动。硬件部分完成单片机最小系统、输入输出模块和电源模块的电路设计,用模块化布局并重视抗干扰措施。软件上使用模块化编程,可以实现常亮、关灯、自动这三种工作模式的切换和控制。经过测试验证,系统的功能是正确的、运行是稳定的,达到设计要求。
尽管本设计基本上实现了预期的功能,但是还存在一些不足。人体红外传感器只能够检测到移动的人体,对于静止的人员不能进行有效的检测,会造成灯光误关。二是光敏电阻加上ADC0832的光照检测方案虽然成本较低,但是测量精度不高,容易受到老化、温度漂移的影响,长期使用需要重新校准。第三,系统没有集成联网功能,不能实现远程控制、数据采集,制约了它的智能家居体系的扩展能力。第四种为外壳和机械结构的设计较简单,防护等级以及美观度还有待提高。
就以上不足而言,可以从如下几个方面来改进。采用微波雷达和人体红外传感器相结合的方案可以提高对静止人员的检测能力,也可以加上延时关灯功能以防止频繁地把灯关掉。另外,可以采用BH1750等数字式光照传感器,直接输出数字光照度值,不需要外接模数转换器,测量精度高,一致性好。第三,在原有基础上增加Wi-Fi或者蓝牙通信模块,把系统接入到物联网平台上,用户可以通过手机APP远程查看状态、手动控制灯光、定时开关,大大提高系统的智能化水平。第四,在软件中添加语音识别模块,实现语音控制,解放用户的双手。第五,就机械结构提出修改意见,创造较为精致且实用的外壳来提升产品的市场占有量和竞争实力。随着物联网和人工智能技术的发展,智能照明系统向着越来越智能、越来越节能、越来越人性化的方向发展,为本课题的研究提供了一个很好的基础。
更多推荐

所有评论(0)