1. 项目背景与需求分析
仓库环境监测一直是仓储管理的核心环节,温湿度失控可能导致物资霉变、金属锈蚀甚至引发安全事故。传统人工巡检方式存在效率低、误差大、响应滞后等问题。我们团队在实际调研中发现,某食品仓储企业因温湿度监测不及时导致单月损失超5万元,这促使我们设计一套低成本、高精度的自动化监测方案。
DHT11作为经典数字温湿度传感器,具有成本低廉(单价约3元)、响应快(5秒内)、功耗低(0.5mA)等特点,非常适合中小型仓库场景。结合嵌入式系统可实现:
- 实时监测:24小时不间断采集数据
- 超限预警:蜂鸣器+LED双报警
- 数据追溯:支持历史数据存储
- 扩展性强:可接入上位机管理系统
2. 硬件系统设计
2.1 核心器件选型对比
我们对比了三种主流方案:
| 型号 | 成本 | 精度 | 接口方式 | 适用场景 |
|---|---|---|---|---|
| DHT11 | 3元 | ±2℃/±5%RH | 单总线 | 常规仓库 |
| SHT30 | 25元 | ±0.3℃/±2%RH | I2C | 精密仪器仓库 |
| AM2302 | 15元 | ±0.5℃/±3%RH | 单总线 | 冷链仓储 |
实测数据显示,在25℃标准环境下:
- DHT11平均误差:温度0.8℃,湿度4.2%RH
- 响应时间:上电后3秒稳定输出
2.2 电路设计要点
电源模块:
// 典型供电电路 #define VCC_PIN P1_0 #define GND_PIN P1_1 void power_init() { SET_BIT(VCC_PIN); // 5V供电 CLR_BIT(GND_PIN); // 接地 }传感器接口:DHT11采用单总线协议,典型连接方式:
DHT11引脚说明: 1. VCC(红线) - 3.3-5.5V 2. DATA(黄线)- 接MCU GPIO 3. NC(黑线) - 悬空 4. GND(绿线)- 接地2.3 抗干扰设计
我们曾遇到数据漂移问题,通过以下措施解决:
- 在DATA线加装10K上拉电阻
- 电源端并联100μF电解电容
- 传感器与MCU距离控制在20cm内
- 采用屏蔽线缆布线
3. 软件实现
3.1 数据采集流程
// DHT11读取时序(关键代码) uint8_t read_dht11() { // 主机拉低18ms set_output(); output_low(); delay_ms(18); // 释放总线,等待响应 set_input(); while(read_pin() == HIGH); while(read_pin() == LOW); while(read_pin() == HIGH); // 接收40bit数据 for(int i=0; i<40; i++) { while(read_pin() == LOW); delay_us(30); data[i/8] <<= 1; if(read_pin() == HIGH) data[i/8] |= 1; while(read_pin() == HIGH); } }3.2 报警逻辑设计
采用双阈值判断:
if(temp > TEMP_MAX || temp < TEMP_MIN) { buzzer_on(); led_flash(RED_LED); } if(humid > HUMID_MAX) { dehumidifier_on(); // 启动除湿设备 }3.3 数据存储方案
使用AT24C02 EEPROM存储历史数据:
存储结构: 地址0-1:温度上限 地址2-3:湿度上限 地址4-127:循环存储记录(每记录占4字节)4. 系统优化经验
踩坑记录:
- 初始使用软件延时导致时序错乱,改用硬件定时器后稳定性提升90%
- 未做数据校验时误报率15%,增加CRC校验后降为0.2%
- 直接驱动蜂鸣器功耗达20mA,改用三极管驱动后降至5mA
性能测试数据:
- 连续工作72小时无故障
- 温度测量标准差0.3℃
- 系统待机功耗1.2mA(5V供电)
5. 扩展应用
本系统可轻松升级为:
- 多节点组网:通过RS485连接多个监测点
- 云端监控:添加ESP8266 WiFi模块
- 自动调控:联动空调/除湿设备
实际部署案例:某中药材仓库部署8个监测节点后,霉变率从6%降至0.3%,年节省损耗约12万元。