大家好!今天给大家分享一个基于 STM32 单片机的室内环境监测设计——DHT11 温湿度 + 光照强度检测系统。当温度过高时自动开启散热风扇,湿度过低时自动加湿,光照不足时自动开灯补光,三项数据全部在 LCD12864 液晶上实时显示,配套 Proteus 仿真 + Keil 源码,适合毕业设计、课程设计和单片机入门练手。

系统整体仿真电路:STM32F103 主控 + LCD12864 显示 + DHT11 + 光敏电阻 + 散热/加湿电机 + LED 灯
一、系统功能简介
本设计以 STM32F103 单片机为核心,实现"检测—显示—自动控制"一体化:
1. 温湿度检测:通过 DHT11 传感器实时采集室内环境温度和湿度;
2. 光照强度检测:光敏模块输出模拟信号,经 STM32 内部 ADC 采集,换算出光照强度值(Lux);
3. 液晶实时显示:LCD12864 同屏显示当前温度、湿度、光照强度,以及三项对应的设定阈值(SET 值);
4. 阈值可调:三个独立按键分别用于设置温度上限、湿度下限、光照强度下限,按一下数值加 1,范围 1~100 循环可调;
5. 自动联动控制:
- 温度超过上限 → 自动开启散热电机(风扇散热);
- 湿度低于下限 → 自动开启加湿电机(加湿);
- 光照强度低于下限 → 自动点亮 LED 灯(补光);
- 恢复到正常范围后自动关闭。
二、硬件组成
- 主控芯片:STM32F103(Proteus 仿真中为 STM32F103R6)
- 温湿度传感器:DHT11(单总线通信)
- 光照检测:光敏电阻模块 + 50K 电位器模拟光照强度调节(接 ADC 采集)
- 显示模块:LCD12864 液晶屏
- 按键:3 个(设置温度上限 / 设置湿度下限 / 设置光照强度下限)
- 执行机构:散热电机、加湿电机(PB14、PB15 引脚驱动)、LED 灯(PB10 引脚驱动)

仿真中通过"光照强度调节"电位器和"DHT11 温湿度调节"模块模拟传感器数据变化
三、软件设计思路
主程序流程非常清晰:
1. 系统初始化:延时、LCD12864、ADC、DHT11、按键、电机/LED IO;
2. 循环读取 DHT11 温湿度数据和光照的 ADC 值,按公式将 ADC 值换算为光照强度值;
3. sprintf 格式化后刷新到 LCD12864,显示 temp / hum / GZ 及三个 SET 阈值;
4. 按键扫描修改三个阈值;
5. 阈值比较:温度超上限开散热、湿度低于下限开加湿、光照低于下限开灯,否则关闭对应外设。
核心控制逻辑代码(节选):
if(temp > buf1) MORTOR1 = 0; //温度过高 开启散热 else MORTOR1 = 1; if(hum < buf2) MORTOR2 = 0; //湿度过低 开启加湿 else MORTOR2 = 1; if(tmp < buf3) MORTOR3 = 0; //低于光照强度值 开灯 else MORTOR3 = 1;

Keil 下编译通过:0 Error(s), 0 Warning(s)
四、仿真效果
打开 Proteus 仿真(建议 8.9 版本),运行后可以看到 LCD12864 上显示:
- temp:30 C SET:30
- hum:34 SET:30
- G Z:41 Lux SET:40

仿真运行效果:温度 30℃、湿度 34%、光照 41Lux,三项阈值分别为 30/30/40
调节"光照强度调节"电位器或"DHT11 温湿度调节"模块,当数值越过设定阈值时,对应的散热电机 / 加湿电机 / LED 灯会立即动作,控制逻辑一目了然。
五、资料清单
- Keil 完整源程序代码(含固件库工程,0 Error 0 Warning 编译通过)
- Proteus 仿真源文件(建议 Proteus 8.9 版本)
- 配套讲解视频 + 仿真运行图片
六、资料下载
全套资料(源码 + 仿真 + 讲解视频 + 图片)已打包上传百度网盘,需要的同学自取:
下载链接: https://pan.baidu.com/s/1yd3xGvk6qJ-0RXxsIOO8Kw?pwd=mtml
提取码: mtml
本博客介绍基于STM32F103单片机的室内环境监测系统,集成DHT11温湿度传感器与光敏电阻光照检测模块,通过ADC采集和单总线通信获取数据,在LCD12864实时显示温度、湿度、光照强度及可调阈值,并实现风扇散热、加湿电机、LED补光的自动闭环控制。配套Proteus仿真与Keil源码,适用于嵌入式教学与实践开发。
425

被折叠的 条评论
为什么被折叠?



