智能卫生间控制系统.docx
《智能卫生间控制系统.docx》由会员分享,可在线阅读,更多相关《智能卫生间控制系统.docx(19页珍藏版)》请在冰豆网上搜索。
智能卫生间控制系统
合肥学院第七届电子设计竞赛报告
作品名称:
智能卫生间控制系统
学校全称:
合肥学院
系别班级:
电子系08级
队员姓名:
电子
(2)班张浩忠0805070208
电子
(2)班王笑康0805070182
电子(3)班韩冰0805070229
智能卫生间控制系统(2011年A题)
摘要
本智能卫生间控制系统采用AVR系列8位单片机ATMEGA16作为主控制器,通过对门上红外对管信号的采集,完成对有无人的智能判断;利用独立开关和红外信号相结合的方式,实现了对洗手和冲厕水泵手动或自动双重控制的功能;根据对电位器两端电压信号的采集和判断,确定洗手水泵的工作时间;同时,采用蜂鸣器和发光二极管,对紧急情况进行声光报警。
另外,在人性化设计方面,增加了自动烘手功能;在节水设计方面,通过检测入厕状态的不同来控制冲厕水量的大小;在节能设计方面,将电磁铁与自锁开关相结合,在短时间内让电磁铁闭合并松开来控制照明系统的工作状态,从而实现低功耗的目的。
关键词:
智能卫生间ATMEGA16红外检测节水低功耗
1引言
我国在《2000年小康型城乡住宅科技产业工程项目实施方案》中,将建筑智能化小康示范小区列入国家的发展方向。
建设部要求到2012年,我国大中城市中60%的住宅要实现智能家居。
目前,举国上下正掀起智能小区和智能住宅的建筑热潮。
智能化已渐入人心,住宅智能化给家居生活带来了许多便利。
在家居中,卫生间是一个不可或缺的重要空间。
卫生间与人的关系极为密切,智能技术的引入将使住宅卫生间更显人性化。
本次设计完成的智能卫生间控制系统满足如下要求:
1.基本要求
该系统能够自动识别房间有人和无人,并且根据有人和无人的情况,分别让不同的设备开启或关闭。
房间有人时:
a)红外检测有人时,“有人指示灯”亮,并点亮照明系统。
b)冲厕开关与GND短接时,冲厕水泵开启3秒断开;两次冲厕时间间隔10秒。
c)洗手开关与GND短接时,洗手水泵开启3--7秒断开;两次洗手时间间隔7秒。
d)内风机转,全功率工作。
房间无人状态下:
a)红外检测无人时,“无人指示灯”亮,照明系统不工作。
b)内风机转,半功率工作。
用一个可调电阻,来调节洗手时间(0-4秒)。
报警开关与GND短接时,蜂鸣器响。
2.发挥部分:
如果在有人时,没有按下冲厕开关,当人离开后,进行自动冲厕。
可添加一个拨码开关,用于控制是否可以重复洗手。
能实现自动冲水洗手
其他。
2方案设计
2.1设计思路
本系统是采集外部不同输入信号来控制系统的输出工作方式,对硬件和软件都有严格要求,在硬件部分,负责红外检测驱动电路和继电器或电磁铁驱动电路设计。
在软件部分,负责采集开关或红外输入信号,经过计算以及判断,进而控制继电器或电磁铁来实现对外部设备的控制。
系统总体结构图见附录1所示。
本次设计的重点在于硬件驱动电路和软件的编程。
2.2方案比较与选择
2.2.1系统控制器方案选择
方案一:
采用51系列8位单片机AT89S52为控制器,利用其采集外部信号数据输入,通过控制A/D转换器ACD0809采集电位器两端电压来确定洗手时间,利用控制继电器来选择不同的电压,进而让内风机在不同功率下工作。
方案二:
以AVR系列8位单片机ATMEGA16为主控制器,利用其自带的10位、A/D转换器来采集电压,利用其片内输出比较模式(CTC)分别产生占空比0%的PWM波和占空比50%的PWM波来控制内风机的工作模式。
通过上述的分析中可以看出,利用AT89S52单片机需要使用外部A/D转换器,增加了系统硬件的复杂性,而ATMEGA16单片机片内集成A/D装换器,硬件简单,同时ATMEGA16单片机具有PWM波生产功能,利用其可以很好的控制内风机的工作。
鉴于此,我们选择方案二。
2.2.2人体感应传感器选择
方案一:
采用热释电传感器,采用此传感器构成的人体感应模块在人进入其感应范围时输出高电平,当人离开感应范围后则自动延时关闭高电平,输出低电平,根据电平的高低来进行有无人的判断。
方案二:
采用红外对管传感器,将此传感器安置在门上,当人在其检测范围时,输出高电平,反之则立即输出低电平,控制器根据电平的高低来进行有无人的判断。
方案一和方案二有一个明显的区别,就是当人离开感应范围后,方案一有段延时时间,而方案二却没有,显然延时的时间就增加了系统控制的稳定性,所以我们选择方案二。
2.2.3内风机驱动电路选择
方案一:
采用电机驱动芯片L298,其内部含有双路H桥功率驱动电路。
如下图所示
图1H桥功率驱动电路
若IN1端口为PWM波控制端,ENA置常高、IN2为常低,则可控制一路单向直流电机。
方案二:
根据开关电源原理,采用大功率场效应管,配合相关驱动电路以实现PWM波的功率输出。
方案一中BJT为电流控制电流型的有源器件,集电极工作电压在饱和与截止间跳变时,有功率损失。
只利用一路H桥驱动电路,则资源利用率低。
方案二中场效应管为电压控制电流型器件,则功率损失低。
由以上分析我们选择方案二。
2.3硬件电路设计
本系统总体硬件电路实现见附录2,各部分模块设计如下。
2.3.1检测电路设计
系统信号检测电路分为有无人检测电路、洗手检测电路、入厕检测电路和干手检测电路。
采用红外对管收发方式,配合其驱动电路来触发单片机I/O口,从而判断相关信号。
具体电路设计如下图所示
图2检测电路
当无检测状态产生时,比较器正向输入端电位大于阈值电压,比较器输出高电平;当检测状态产生时,红外接收管接收到反射回来的红外光,其等效内阻变小,比较器正向输入端电位小于阈值电压,输出低电平。
其中有无人检测电路采用高电平触发方式。
2.3.2各模块驱动电路设计
1)短时工作驱动电路
洗手水泵驱动电路、入厕水泵驱动电路和热风干手器驱动电路属于系统短时工作驱动电路,采用继电器驱动方式,具体电路图如下图所示。
图3短时工作驱动电路
当控制端置低电平时,PNP管导通则继电器闭合,电机工作。
2)长时工作驱动电路
照明系统控制电路属于系统长时工作电路,由电磁铁翕动自锁开关来控制照明系统,具体电路图如下图所示。
图4长时工作驱动电路
由于电磁铁工作在12V,而控制器工作在5V,采用光电耦合器实现了电平转换。
3)内风机驱动电路
内风机工作于两种状态,即全功率状态和半功率状态,由AVR单片机产生PWM波并控制其占空比来实现。
具体电路图,如下图所示
图5内风机驱动电路
图中将NPN型三极管S9013作为推动级来驱动大功率N沟道场效应管IRF840,控制其通断。
S9013的发射极—基极饱和电压为5V,与单片机工作电压相匹配,从而实现了电平转换。
4)报警电路设计
采用有源蜂鸣器作为系统的报警声源,以低电平触发的方式设计如下电路。
图6报警电路
2.3.3电源模块设计
本系统工作于DC12V、5V和AC220V,实测系统全功率工作状态下消耗电流为2.8A(除交流外),则系统选择双通道额定输出电压为DC12V和5V,额定输出电流为3A的开关电源。
在水泵电机启动时,瞬态电流比较大,所以控制器的供电电源要与其隔离开来。
采用5V稳压芯片LM7805设计的电源提供单片机、显示器、红外对管检测电路和报警电路。
2.4系统软件设计
本系统采用AVR系列单片机ATMEGA16为主控制器,在其编译环境下利用C语言编写程序,首先根据有无人将程序分成两个模块,在有人模块中,点亮有人指示灯和照明系统,并且让内风机全功率工作,然后检测不同的输入信号并实现相应的功能;在无人模块中,点亮无人指示灯,关闭照明系统,并且让内风机半功率工作,并且判断是否需要进行自动冲厕。
另外,在软件中将每一部分的工作状态在LCD128*64中显示,便于软件调试和实现良好的人性化界面。
系统总体流程图如下所示:
图7系统软件总体流程图
3理论分析与计算
1)红外对管检测电路
查得红外发射管的正常工作电流I为10mA~30mA,两端压降U。
为1.4V,若取限流电阻R为200Ω,则其工作电流为
I=(U-U。
)/R=18mA
经测得,接收管等效内阻R为2MΩ,则选取分压电阻为1MΩ。
2)短时工作驱动电路
经测得,继电器内阻为150Ω,工作电压为5V,则其工作电流为33.3mA.BJTS9013发射极工作电流为150mA,可满足设计要求。
3)长时工作驱动电路
经测得,电磁铁工作电压为12V,瞬时工作电流为1.2A,则可选取大功率BJT管TIP127,其集电极额定工作电流为4A。
在一次入厕间所消耗的功耗为
Q=UI*t=16.9J
4)内风机驱动电路
经测得,当内风机工作时场效应管的分得压降为3V。
在全功率工作时,其工作电流为0.13A,则其消耗功率为P=UI=1.17W。
若其工作在半功率时,其消耗功率由以下公式可得(占空比σ)
P=UI*σ=0.59W
4设计实现
4.1自动冲厕节水算法:
本智能卫生间控制系统可以根据入厕状态的不同,在没有按下冲厕开关,当人离开后,能够实现对冲厕水量的自动判断,从而实现节约用水的功能。
当检测到入厕的红外输入信号后,开始计时,直到红外输入信号消失后,停止计时,然后根据入厕时间的值,判断入厕状态,并且设定于不同状态时对应的冲厕水量,在人离开卫生间后,进行自动冲厕。
算法流程图如下所示:
图8自动冲厕节水算法流程图
4.2低功耗照明控制开关
照明灯处于长时间工作状态时,继电器处于闭合状态,这样继电器消耗大量功耗。
设计电磁铁控制的自锁开关来控制照明系统时,只需要0.5S的通断时间。
这样在整个入厕过程中,电磁铁只工作了1S,无效功耗损失大幅降低。
5系统测试
5.1测试条件和测试仪器设备
对系统功耗、PWM波、红外对管进行测试,测试仪器设备如下表1所示。
表1测试使用的仪器设备
序号
名称、型号、规格
数量
备注
出厂编号
1
直尺
1
22CM
2
Tektronix
1
Tektronix
C044955
3
数字万用表UT58E
1
UNI-T
3050030633
4
函数信号发生器EE16428
1
南京新联电子设备有限公司
0710034
5.2测试方法和结果
(1)系统使用开关电源供电,+12V及+5V,热风干手器和照明灯使用220V交流供电,用数字万用表电流档分别测试开关电源电流端口电流,系统最大功耗计算如下:
P总=P+5+P+12+Plamp+PHAHD
P=U*I
表2系统最大功率测试表
P+5/w
P+12/w
Plamp/w
PHAHD/w
P总/w
1
10
9.6
10
300
329.6
2
9.8
9.5
10
300
329.3
3
9.9
9.4
10
300
329.3
由上表的测试结果得P总=329.5W。
Pmin=P12864+PVentilator
表3系统最小功率测试表
P112864/w
Pventilator/w
P总/w
1
1.0
1.0
2.0
2
0.9
1.0
1.9
3
1.1
0.9
2.0
(2)测试ATMEGA16产生PWM波占空比,如下表:
表3PWM波占空比及内风机功率测试表
DutyCycle/100%
Pventilator/w
1
0
2.1
2
30
1.5
3
50
1.0
由表3所测数据可知,内风机在PWM占空比为0%时为全功率运行,在50%时为半功率,完全满足题目要求。
(3)红外对管测试:
表4红外对管距离测试表
类别
次数
洗手对管/cm
热风对管
冲厕对管/cm
人体感应对管/cm
1
5.1
3.2
4.0
10.5
2
5.0
3.1
4.1
11.2
3
5.2
3.1
3.9
12.0
为适应不同环境的监测要求,调节接收管灵敏度,测试结果如上表4所示,实现卫生间能的智能控制。
6结论
经过四天三夜的努力,我们最终完成了对智能卫生间控制系统的设计。
综合测试证明,本系统完成了所有赛题任务。
另外,在系统扩展部分,我们从人性化、节水、节能方面考虑,实现了自动烘手功能,控制冲厕水量大小以及照明系统低功耗控制的目的。
通过本次电子设计竞赛,我们明白了团队协作的重要性。
大家只有齐心协力,才能在更短的时间内完成更好的作品。
从中我们深刻体会到坚持不懈、大胆尝试对实验成功的重要性,这为我们以后的学习坚定了信念。
参考文献
[1]赵建领.51系列单片机开发宝典.北京:
电子工业出版社,2007年.
[2]田晓梅,王月姣.嵌入式C语言在工程编程中的应用技巧[J].中南民族大学学报:
自然科学版,2005.1.
[3]余锡存,曹国华.单片机原理及接口技术[M].北京:
机械工业出版社,2007年12月.
[4]康华光.电子技术基础(模拟部分).北京:
高等教育出版社,2009年7月.
[5]常健生.检测与转换技术.北京:
机械工业出版社,2010年8月.
附录1:
系统总体结构框图
附录2:
系统总体硬件电路
附录3:
系统实物图
附录4:
程序部分源代码
voidmain()
{
init();//系统工作初始化
while
(1)
{
/**************卫生间有人系统工作模式********************/
if(flag_body==HAVEBODY)
{
delay_12864(500);
if(flag_body==HAVEBODY)
{
PORTB&=~BIT
(2);//有人指示红灯亮
PORTA|=BIT
(1);//无人指示绿灯灭
lcd_displayString(1,0,"有人灯亮");
PORTB&=~BIT(7);//照明灯亮
delay_12864(500);
PORTB|=BIT(7);
lcd_displayString(2,0,"照明灯亮..");
TCCR0=0X2B;
OCR0=62;//内风机转,全功率工作。
lcd_displayString(3,0,"内风机全功率..");
while
(1)
{
Have_body();
work_xishou_time();//调整洗手时间
if(miao_body_judge>=3)
{
flag_body_judge=0;
if((PINA&0x04)==0x04&&flag_judge==1)
{
flag_body=NOBODY;
flag_judge=0;
flag_body_judge=1;
count_body_judge=0;
miao_body_judge=0;
flag_diyici=1;
break;
}
}
}
}
}
/*******************卫生间无人系统工作模式********************/
if(flag_body==NOBODY)
{
delay_12864(500);
if(flag_body==NOBODY)
{
PORTB|=BIT
(2);//有人指示红灯灭
PORTA&=~BIT
(1);//无人指示绿灯亮
lcd_displayString(1,0,"无人灯亮..");
if(flag_diyici==1)
{
PORTB&=~BIT(7);//照明灯灭
delay_12864(500);
PORTB|=BIT(7);
}
lcd_displayString(2,0,"照明灯灭..");
TCCR0=0X1B;
OCR0=62;//内风机转,半功率工作。
lcd_displayString(3,0,"内风机半功率..");
while
(1)
{
No_body();
if(miao_body_judge>=3)
{
flag_body_judge=0;
if((PINA&0x04)==0x04&&flag_judge==0)
{
flag_body=HAVEBODY;
flag_judge=1;
flag_body_judge=1;
count_body_judge=0;
miao_body_judge=0;
break;
}
}
}
}
}
}
}