刘东基于人体识别的智能节能照明灯控系统设计.docx
《刘东基于人体识别的智能节能照明灯控系统设计.docx》由会员分享,可在线阅读,更多相关《刘东基于人体识别的智能节能照明灯控系统设计.docx(16页珍藏版)》请在冰豆网上搜索。
刘东基于人体识别的智能节能照明灯控系统设计
四川理工学院自动化与电子信息学院
大创项目技术报告
基于人体识别的智能节能照明灯控系统设计
学生:
刘东
学号:
11021010213
专业:
自动化
班级:
2011级2班
指导教师:
陈昌忠
四川理工学院自动化与电子信息学院
二O一五年六月
1项目研究的动态与现状
目前全世界都在倡导节约能源,但是电能的浪费仍然较为严重,所以市面上也出现了很多针对电能浪费的解决方案。
照明灯电能的浪费仍然没有很好的解决,在许多公共场合的照明灯仍然使用的是手动开关,所以经常出现有人走灯未灭的情况。
只有少数场合使用的是声控开关,比如楼梯间,但是由于声控开关扰民,所以也没有普遍的推广。
目前智能照明系统用得最广的是基于热势红外传感器的方式,通过热势红外传感器来检测人体的有无,从而控制灯的亮与灭,但是这种方式任然存在误判率较高的弊端。
所以,现在照明灯节能方面仍然有较大的发展空间。
2采用的技术方案、工作路线
2.1技术方案
(1)项目设计以教室灯源的控制为主,经改进后也可运用在其它公共场合如娱乐场所、酒店、旅馆、候厅等。
(2)项目方案设计原理是根据区域环境有无人体的检测,有人则点亮灯,无人则熄灭。
通常公共区域较大,本方案设计对同一区域划分为多块子区域,每个子区域内的灯进行单独控制,从而解决诸如教室内人走后未关灯,或者人集中出现在某一区域,而其它地方的灯依然点亮的浪费现象。
(3)方案将采用红外感应装置、雷达识别装置和光感应装置三种传感器联合检测,将采集到的信号传递给微处理器,微处理器对输入信号进行分析,从而控制灯的亮与灭。
(4)本方案把人体的有无判别作为重点研究对象,尽可能多的排除外界干扰,通过特定程序组对信号进行特殊分析与处理,较为精确的判别特定区域内人体的有无,使系统具备较高的精确性。
(5)为了应对各种情况,方案中包含有手动操作控制功能的设计。
2.2技术线路
系统总体结构
系统硬件的主要组成部分分为信号处理单元、数据信号采集模块和被控对象三大部分。
信号处理单元采用单片机AT89C52作为控制器。
数据信号采集模块由热势红外传感器、多普勒雷达传感器、光感应传感器三种传感器组成。
被控对象为继电器(照明灯)。
控制系统结构图如图2-1所示。
空间布局
本设计以教室灯源为研究对象,普通教室的照明由多盏照明灯组成,以四盏为例,根据照明灯所处位置将教室划分为四块子区域,对每块子区域的照明灯进行独立控制,空间布局图如图2-2所示。
图2-2中,T1、T2、T3、T4为热势红外传感器,R1、R2、R3、R4为多普勒雷达传感器,L1为光照强度传感器。
3实验过程与实验结果(制作/制造过程与结果)
3.1资料查询
在申请项目的时候,只是在脑海里有一个初步的模型,只查了少量资料,所以在项目制作的过程中,需要查阅更多的资料,查资料主要去四川理工学院图书馆,以及互联网。
在资料查询期间,所查询的重要的、典型的文献如下:
[1]李广弟,朱月秀,冷祖.单片机基础第3版.北京航空航天大学出版,2007
[2]李建忠.单片机原理及应用.西安电子科技大学出版,2002
[3]房小翠.单片微型计算机与机电接口技术.国防工业出版社,2003
[4]梁廷贵.现代集成电路实用手册.科学技术文献出版社,2002
[5]吴兴惠.传感器与信号处理.电子工业出版社,1998
[6]何希才.传感器及其应用电路.电子工业出版社,2001
[7]刘迎春,叶湘滨.传感器原理.国防科技大学出版社,2005.
[8]赵继文.传感器与应用电路设计.科学出版社,2002
[9]沈旭日.电子系统设计实践.华中科技大学出版社,2004
[10]王福瑞等.单片微机测控系统设计大全.北京航空航天大学出版社,1998
[11]杨治洁.单片机原理与应用.中国人民大学出版社,2009
3.2软件仿真
根据查询的资料,初步确定方案原理,根据需要的那些器件,然后在电脑上仿真。
是在Proteus上实现软件仿真的,仿真电路图如图3-1所示。
图3-1仿真电路图
图3-1中,处理器采用的是AT89C52,用10个键位器模拟4个热势红外传感器的的高低电平输入,4个多普勒雷达传感器的高低电平输入和2个光感应传感器的高低电平输入,同时也用继电器开关控制灯泡的亮与灭。
通过手动拨动仿真软件里面的开关来模拟传感器的高低电平输入来实现软件仿真。
通过软件仿真,证明此方案具有可行性。
3.3材料采购
根据所确定的方案,列出所需的元器件,然后统一采购。
采购的主要元器件如下:
1、热势红外感应模块HC-SR501,外形如图3-2所示。
图3-2热势红外传感器
热势红外传感器的主要工作参数如下:
工作电压:
5V-20V;
电平输出:
高5V,低0V;
感应距离:
120度锥角,距离7米内。
2、多普勒雷达传感器,外形图如图3-3所示。
图3-3多普勒雷达传感器
多普勒雷达传感器的工作参数如下:
中心频率:
10.525GHz;
工作电压:
DC3.7-20V;
电平输出:
高5V,低0V;
感应距离:
0.5-12米。
3、光照强度传感器,外形图如图3-4所示。
图3-4光照强度传感器
光照强度传感器的工作参数如下:
工作电压:
DC5-20V;
电平输出:
高5V,低0V;
3、AT89C52单片机。
4、基本电子元器件,例如电阻、电容、电源、模块等。
3.4实物制作
首先是组建单片机最小系统,所有的模块和各种传感器都是架构在单片机最小系统上面的。
单片机最小系统实物图如图3-5所示。
图3-5单片机最小系统
然后将各种模块拼装在PCB板上。
为了便于更换,每种用途的模块都是独立的,整体拼装图如图3-6所示。
图3-6整体拼装图
用于人体识别的探头是独立的,这样设计是便于安装和更换,一组探头由热势红外传感器、多普勒雷达传感器和照明灯三部分组成,本项目制作了4组探头,探头外观图如图3-7所示。
图3-7人体识别探头
检测环境光照强度的光照强度传感器也是以探头的形式制作,外观图如图3-8所示。
图3-8光照强度检测探头
硬件部分到此就做完了,接下来是软件调试。
软件的设计原理是:
在光线暗的情况下,只有雷达和红外都检测的人体时,灯才会被点亮,每间隔一定时间(可根据需求确定时长)去检查一次是否有人,有人则继续亮灯,无人则关闭。
在光线暗的情况下,只要有人,马上亮灯。
当然,在任何情况下,用户都可以手动开关灯。
程序源代码见附录一。
4主要研究(制作)成果
最终的制作成品如图4-1所示。
图4-1最终效果图
经测试,该成品能实现预期功能。
5总体性能指标与国内外同类先进技术的比较、技术成熟程度
功能上能达到有人则亮灯无人则灭灯的目的,且检测准确性比市面上的产品更高。
由于本次项目制作的成品主要是用于实验室研究,所以在外观上并不美观,并且在接口上也不统一。
采用的器件和模块都是现在较为成熟的技术,所以整体性能还是很稳定。
6可能(预期)对社会经济发展的意义
如果将此设计在市面上推广,预计将会有很大的前景。
本设计所采用的器件都比较廉价,花费少量的钱就能实现长久的电能节约是非常划算的,所以,如果把本设计作为产品销售,对社会经济发展也有较为可观的效益。
7存在的问题或说明
照明实现了智能化,无疑增加了照明系统的复杂性,所以在安装上会相对比普通照明系统复杂,并且安装人员需要的一定的专业知识。
如果此项目得到推广,将会在布局、接口、外观等方面做进一步改进。
本次设计的成品主要是用于实验室调试用,所以在整体布局和布线上并不规范,且外观上并也不美观。
8附录
附录一:
程序源代码
#include
sbitRadar0=P1^0;//雷达信号输入
sbitRadar1=P1^1;//雷达信号输入
sbitRadar2=P1^2;//雷达信号输入
sbitRadar3=P1^3;//雷达信号输入
sbitInfrared0=P1^4;//红外信号输入
sbitInfrared1=P1^5;//红外信号输入
sbitInfrared2=P1^6;//红外信号输入
sbitInfrared3=P1^7;//红外信号输入
sbitIlluminance=P3^6;//光照强度数字量输入
sbitLight0=P3^0;//LED灯信输出
sbitLight1=P3^1;//LED灯信输出
sbitLight2=P3^2;//LED灯信输出
sbitLight3=P3^3;//LED灯信输出
sbitOpen=P3^4;//强制开灯
sbitClose=P3^5;//强制关灯
bitSwitch=1;//强制开关灯标志位
bitflag0=0;//标志位
bitflag1=0;//标志位
bitflag2=0;//标志位
bitflag3=0;//标志位
unsignedintCount=0;//计数位
voidTime0_Int()interrupt1//中断服务程序
{
TH0=0x3c;//计数器重装
TL0=0xb0;
Count++;//计数
if(Count==6000)//50msX6000=5min,每5分钟检测一次
{
if(flag0==0){//如果标志位未被置位
Light0=1;//那么就关闭灯
}
if(flag0==1){//如果被置位了
flag0=0;//那就清零标志位
}
if(flag1==0){//如果标志位未被置位
Light1=1;//那么就关闭灯
}
if(flag1==1){//如果被置位了
flag1=0;//那就清零标志位
}
if(flag2==0){//如果标志位未被置位
Light2=1;//那么就关闭灯
}
if(flag2==1){//如果被置位了
flag2=0;//那就清零标志位
}
if(flag3==0){//如果标志位未被置位
Light3=1;//那么就关闭灯
}
if(flag3==1){//如果被置位了
flag3=0;//那就清零标志位
}
Count=0;//计数置零
}
}
voidmain()//主函数入口
{
TMOD=0x01;//定时器初始化
TH0=0x3c;
TL0=0xb0;//定时时间设置为50ms
IE=0x82;
TR0=1;
while
(1)
{
if(Close==1)//如果松开强制关灯键
{
Switch=1;//置位强制开关标志位
}
while(Switch)//自动模式
{
if(Open==0)//如果强制开灯键被按下
{
Light0=0;Light1=0;Light2=0;Light3=0;//开灯
}
if(Close==0)//如果强制关灯按键被按下
{
Light0=1;Light1=1;Light2=1;Light3=1;//关灯
Switch=0;//清零标志位
break;//跳出循环
}
if((Radar0==1)&&//若雷达输入高,且
(Illuminance==1)&&//光感应传感器输入高,且
(Infrared0==1))//红外也输入高电平
{
flag0=1;//那么置为标志位
Light0=0;//同时点亮灯
}
if((Radar1==1)&&//若雷达输入高,且
(Illuminance==1)&&//光感应传感器输入高,且
(Infrared1==1))//红外也输入高电平
{
flag1=1;//那么置为标志位
Light1=0;//同时点亮灯
}
if((Radar2==1)&&//若雷达输入高,且
(Illuminance==1)&&//光感应传感器输入高,且
(Infrared2==1))//红外也输入高电平
{
flag2=1;//那么置为标志位
Light2=0;//同时点亮灯
}
if((Radar3==1)&&//若雷达输入高,且
(Illuminance==1)&&//光感应传感器输入高,且
(Infrared3==1))//红外也输入高电平
{
flag3=1;//那么置为标志位
Light3=0;//同时点亮灯
}
}
}
}