1. 项目概述
这个室内空气质量监控系统是我去年为一个社区养老院做的实际项目。当时院方反映老人们经常抱怨头晕、胸闷,但一直找不到具体原因。通过这个DIY的监控装置,我们最终发现是几个房间的CO2浓度在人员密集时段严重超标。整套设备成本不到200元,却解决了困扰他们半年的难题。
空气质量监控听起来高大上,其实用最常见的51单片机就能实现核心功能。关键在于如何选择合适的传感器,以及设计合理的数据采集逻辑。下面我就把从元器件选型到程序调试的完整过程分享给大家,特别会重点讲几个容易踩坑的细节。
2. 核心器件选型
2.1 主控芯片选择
我对比了三种方案:
- STC89C52RC(最终选用)
- STM32F103C8T6
- ESP8266
选择51单片机主要考虑三点:
- 养老院需要长期稳定运行,51架构抗干扰能力强
- 仅需采集4-5个参数,不需要复杂运算
- 维护人员熟悉51开发环境
注意:如果要做联网功能,建议直接上ESP32,但会增加功耗和成本
2.2 传感器组合方案
经过实测对比,最终确定的传感器配置:
| 传感器类型 | 型号 | 测量范围 | 精度 | 单价 |
|---|---|---|---|---|
| PM2.5 | GP2Y1010AU | 0-500μg/m³ | ±10% | 45元 |
| CO2 | MH-Z19B | 0-5000ppm | ±50ppm | 68元 |
| 温湿度 | DHT22 | -40~80℃,0-100% | ±0.5℃ | 22元 |
| 甲醛 | ZE08-CH2O | 0-5mg/m³ | ±5% | 85元 |
特别说明MH-Z19B的选型原因:
- 相比廉价的MQ135,它有NDIR原理的绝对测量能力
- 自带温度补偿,避免夏季误报
- 支持UART输出,节省IO资源
3. 硬件电路设计
3.1 电源模块设计
采用双电源方案:
- 主电路:LM2596降压至5V(输入9-12V)
- 传感器:单独AMS1117-3.3V稳压
踩坑记录:最初尝试共用5V电源,发现MH-Z19B工作时会导致DHT22数据异常。后经示波器检测发现是电流突变引起电压波动。
3.2 信号调理电路
针对GP2Y1010AU粉尘传感器的特殊设计:
c复制// 硬件PWM驱动LED脉冲
void Dust_Sensor_Start() {
P1 = 0x01; // 开启LED
delay_us(280);
P1 = 0x00;
delay_us(40);
ADC_Value = Get_ADC();
delay_us(9680);
}
关键点:
- 严格遵循280us LED点亮时序
- 采样窗口避开前40us的初始不稳定期
- 需在9680us周期内完成ADC读取
4. 软件设计要点
4.1 数据采集策略
采用分时复用采集方案:
c复制void main() {
while(1) {
if(timer_1s) {
Read_DHT22();
timer_1s = 0;
}
if(timer_10s) {
Read_MHZ19B();
timer_10s = 0;
}
// 其他传感器类似...
}
}
设计考量:
- CO2传感器响应慢,降低采样频率
- 温湿度变化缓,1秒间隔足够
- PM2.5实时性要求高,单独线程处理
4.2 校准算法实现
以MH-Z19B为例的ABC自校准处理:
c复制void CO2_Calibration() {
static uint24_t avg_buf[12];
// 每5分钟记录一次夜间数据
if(hour(2:00-4:00)) {
avg_buf[ptr++] = CO2_Value;
if(ptr>=12) {
baseline = Median_Filter(avg_buf);
Send_Calibration_Cmd(baseline);
}
}
}
注意事项:
- 必须在无人时段进行基线校准
- 采用中值滤波避免异常值干扰
- 连续12次稳定才触发校准
5. 实际部署经验
5.1 安装位置选择
经过实测发现的规律:
- 距地面1.2-1.5米最佳(呼吸带高度)
- 远离门窗和通风口
- 与墙壁保持>10cm距离
- 避开直射阳光和热源
5.2 典型问题排查
遇到过的异常情况处理:
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| CO2读数持续偏高 | 传感器进气孔堵塞 | 用细针清理 |
| PM2.5数据跳变 | 强光直射传感器 | 加装遮光罩 |
| 温湿度显示"----" | DHT22接线松动 | 更换4.7K上拉电阻 |
| 甲醛值突然归零 | 预热时间不足 | 通电等待30分钟再使用 |
6. 系统优化方向
目前正在改进的几点:
- 增加SD卡本地存储,解决网络不稳定时的数据丢失问题
- 改用18650电池+太阳能板供电,实现完全无线部署
- 添加TVOC传感器,更全面反映空气质量
- 开发微信小程序远程查看功能
这个项目最让我意外的是MH-Z19B的长期稳定性——连续工作18个月后,与专业检测仪对比误差仍<3%。相比之下DHT22平均半年就需要更换一次。建议关键监测点优先考虑工业级传感器,虽然单价高但综合成本反而更低。
