⭐项目概述
该系统基于STM32单片机,旨在实现家庭环境监测与电器自动控制。系统通过传感器实时检测环境温度、湿度、空气质量和光照强度,并在显示屏上显示各参数及其阈值。根据光线亮度,系统智能控制照明,光线充足时不开灯,光线不足时根据阈值分两个挡位自动调节亮度。光敏电阻监测光照强度,当达到设定阈值时,通过继电器模拟开关窗帘。温湿度传感器实时监控环境,当温度或湿度超过设定阈值,继电器自动控制空调和加湿器的开关,保持舒适环境。同时,系统集成空气质量监测装置,空气质量达到危险阈值时触发报警,保障家庭健康。该系统不仅提升了家庭环境的智能化水平,还有效节约能源,保障了生活的舒适性和安全性。
⭐实物图
⭐主要功能
1.检测环境温度、湿度、空气质量和光照强度数值
2.环境光线亮时不开灯
3.光线暗时根据阈值分两个光照挡位
4.光敏电阻达到阈值控制继电器模拟开关窗帘
5.温度和湿度超过阈值,继电器自动控制遥控空调和加湿器的开关
6.空气质量监测装置,达到阈值触发报警
7.显示屏显示各参数数据和阈值
⭐系统框图:
⭐系统原理图
⭐系统PCB板
⭐部分代码
//题目
OLED_ShowChinese(0,16,0,16,1);
OLED_ShowChinese(16,16,1,16,1);
OLED_ShowChinese(32,16,2,16,1);
OLED_ShowChinese(48,16,3,16,1);
OLED_ShowChinese(64,16,4,16,1);
OLED_ShowChinese(80,16,5,16,1);
OLED_ShowChinese(96,16,6,16,1);
OLED_ShowChinese(112,16,7,16,1);
OLED_ShowChinese(0,32,8,16,1);
OLED_ShowChinese(16,32,9,16,1);
OLED_ShowChinese(32,32,10,16,1);
OLED_ShowChinese(48,32,11,16,1);
OLED_ShowChinese(64,32,12,16,1);
OLED_ShowChinese(80,32,13,16,1);
OLED_ShowChinese(96,32,14,16,1);
OLED_ShowChinese(112,32,15,16,1);
OLED_Refresh();
//主循环函数
while(1)
{
//检测
DHT11_Read_Data(&temperature,&humidity); //每100ms(至少)读一次温湿度值,否则有错误xx8
//温度(0~50℃)
//湿度(20~90%)
if(humidity<20) humidity=20;//<20%
if(humidity>90) humidity=90;//>90%
//光照强度 PA0
lux1=Get_Adc_Average(ADC_Channel_0,10);
lux1=4096-lux1;
//空气质量 PA5
air_quality=Get_Adc_Average(ADC_Channel_5,10);
air_quality=(int)(((((air_quality*100))/4096)));
lux=(int)(((((lux1*100))/4096)));
OLED_ShowNum(40,0,temperature,2,16,1);
OLED_ShowNum(40,16,humidity,2,16,1);
OLED_ShowNum(72,32,lux,2,16,1);
OLED_ShowNum(72,48,air_quality,2,16,1);
OLED_Refresh();
//光强判断
if(lux<40)
{
GPIO_SetBits(GPIOA,GPIO_Pin_12);//灯1开
GPIO_SetBits(GPIOA,GPIO_Pin_11);//灯2开
GPIO_ResetBits(GPIOB,GPIO_Pin_9); //继电器窗户开
}
else if(lux>40&&lux<70)
{
GPIO_SetBits(GPIOA,GPIO_Pin_11);
GPIO_ResetBits(GPIOA,GPIO_Pin_12);
GPIO_ResetBits(GPIOB,GPIO_Pin_9);
}
else
{
GPIO_ResetBits(GPIOA,GPIO_Pin_11);
GPIO_ResetBits(GPIOA,GPIO_Pin_12);
GPIO_SetBits(GPIOB,GPIO_Pin_9);
}
//温度判断
if(temperature>28)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_8); //继电器空调
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_8);
}
//湿度判断
if(humidity<50)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //继电器加湿器
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
//空气质量判断
if(air_quality>60)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_1);//光报警
GPIO_ResetBits(GPIOA,GPIO_Pin_8);//声报警
}
else
{
GPIO_SetBits(GPIOA,GPIO_Pin_1);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
}
delay_ms(50);
}
}
⭐资料获取
我用夸克网盘分享了「家庭环境监测 家电控制.zip」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/280ab7c51001
提取码:EyzE