2. 硬件选型与电路设计:传感器选型(温湿度、光照、CO2)、执行器选型(风扇、水泵、加热器)、电源电路设计、PCB布局要点
好,咱们直接进入正题。硬件选型这块,说白了就是给温室选「五官」和「手脚」。传感器是五官,负责感知环境;执行器是手脚,负责干活。选错了,后面软件写得再好也白搭。我见过太多项目,传感器精度不够,导致控制逻辑反复震荡,最后作物全毁了。
2.1 传感器选型:温湿度、光照、CO2
先聊温湿度传感器。温室里最常用的就是 SHT30 和 DHT22。我个人习惯,只要预算允许,直接上 SHT30。为什么?
- SHT30:I2C 接口,精度 ±0.3°C,长期稳定性好。我在一个番茄大棚项目里用过,连续跑了两年没漂移。
- DHT22:单总线,精度 ±0.5°C,便宜。但要注意,它采样间隔至少 2 秒,不适合快速响应的场景。
重要提醒: 温湿度传感器不要紧贴墙壁或金属支架安装。我吃过这个亏——传感器离金属水管太近,读数一直偏高 2°C,排查了三天才发现。
光照传感器,我推荐 BH1750。它直接输出 lux 值,不用自己算。你想想看,如果用光敏电阻,还得搭分压电路、查表换算,麻烦不说,一致性还差。
BH1750 的几个要点:
- 测量范围 1 ~ 65535 lux,温室完全够用
- I2C 接口,地址可选(0x23 或 0x5C)
- 有个「高分辨率模式」,精度 1 lux,但测量时间 120ms
CO2 传感器,这个比较头疼。便宜的 MH-Z19B 是主流选择,NDIR 原理,精度 ±50ppm。但要注意:
避坑指南: 我曾经在冬季大棚里用 MH-Z19B,发现读数一直偏高。后来才明白,CO2 传感器需要「自动校准」功能,而温室里长期处于高 CO2 环境,它会把高浓度误判为基线。解决办法是关闭自动校准,或者定期手动通风。
选型对比表,我直接列出来:
| 传感器 | 测量参数 | 接口 | 精度 | 参考价格 | 我的建议 |
|---|---|---|---|---|---|
| SHT30 | 温湿度 | I2C | ±0.3°C / ±2%RH | ¥15 | 首选,稳定可靠 |
| DHT22 | 温湿度 | 单总线 | ±0.5°C / ±2%RH | ¥8 | 预算紧张时用 |
| BH1750 | 光照 | I2C | ±1 lux | ¥10 | 强烈推荐 |
| MH-Z19B | CO2 | UART/PWM | ±50ppm | ¥60 | 注意自动校准问题 |
2.2 执行器选型:风扇、水泵、加热器
执行器选型,核心就一句话:功率匹配 + 驱动方式。别小看这个,我见过有人用 5V 继电器去驱动 220V 水泵,结果触点粘连,水泵一直转,把苗都淹了。
风扇: 温室通风一般用轴流风扇。选型看两个参数:风量和静压。我习惯按「每小时换气 30 次」来估算风量。比如一个 100 立方米的温室,就需要 3000 m³/h 的风量。
驱动方式:
- 小风扇(12V/24V):用 MOSFET 直接 PWM 调速
- 大风扇(220V):用固态继电器(SSR)控制,别用机械继电器,频繁启停容易坏
水泵: 温室灌溉常用潜水泵或自吸泵。这里有个坑——水泵启动电流是额定电流的 5~7 倍。我曾经用 10A 继电器去控制 2A 的水泵,结果启动瞬间就烧了触点。
我的经验: 水泵驱动,要么用大功率继电器(余量留 3 倍以上),要么用电机专用接触器。如果做 PWM 调速,记得加续流二极管和吸收电路。
加热器: 温室加热常见的有电加热和热风机。电加热功率大,一般 2kW 起步。控制方式很简单:
// 伪代码:PID 控制加热器
if (temperature < setpoint - hysteresis) {
digitalWrite(HEATER_PIN, HIGH); // 开启加热
} else if (temperature > setpoint + hysteresis) {
digitalWrite(HEATER_PIN, LOW); // 关闭加热
}
注意,加热器不能频繁开关。我一般设 1°C 的回差,防止继电器在临界点来回跳动。
2.3 电源电路设计
电源设计是硬件的命脉。温室环境恶劣,电压波动大,电源不稳,传感器数据全是噪声。
我的标准方案:
- 主电源: 220V AC 转 24V DC,用明纬或台达的工业电源,别用山寨货
- 传感器供电: 24V 转 5V/3.3V,用 LDO(如 AMS1117)或 DC-DC(如 MP1584)
- 隔离: 传感器和 MCU 之间加隔离芯片(如 ADuM1201),防止共模干扰
注意: 我曾经在一个项目里,直接用 24V 给传感器供电,结果传感器发热严重,温湿度读数偏高了 5°C。后来才发现,传感器内部 LDO 压差太大,功耗全变成热量了。正确做法是:传感器用 5V 或 3.3V 供电,24V 只给执行器用。
电源电路的关键参数:
| 模块 | 电压 | 电流需求 | 推荐方案 |
|---|---|---|---|
| MCU + 传感器 | 3.3V / 5V | 500mA | AMS1117-3.3 / MP1584 |
| 风扇(小) | 12V / 24V | 1~2A | 直接接 24V 电源 |
| 水泵 | 220V AC | 2~5A | 继电器 + 接触器 |
| 加热器 | 220V AC | 10A+ | SSR + 散热片 |
2.4 PCB 布局要点
PCB 布局,说白了就是「把对的元件放在对的位置」。我见过太多人,原理图画得漂亮,一布板就乱来,结果信号串扰、电源纹波大,调试到崩溃。
几个核心原则:
- 电源和地: 模拟地和数字地要分开,最后单点连接。我习惯在电源入口处放一个 0Ω 电阻或磁珠做隔离。
- 传感器接口: I2C 走线要短,SDA 和 SCL 加 4.7kΩ 上拉电阻。如果线长超过 20cm,建议用 PCA9306 做电平转换和驱动。
- 执行器驱动: 继电器和 MOSFET 要远离 MCU,至少隔 5mm。大电流走线要加宽,1A 对应 1mm 线宽(1oz 铜厚)。
- 去耦电容: 每个 IC 旁边放一个 0.1μF 电容,靠近电源引脚。别问我为什么,这是铁律。
一个小技巧: 我在 PCB 上预留了「调试焊盘」,把 I2C、UART、SPI 的信号都引出来。这样调试时可以直接飞线接逻辑分析仪,不用拿万用表到处戳。嗯,这个习惯救过我很多次。
最后,别忘了加 TVS 管和保险丝。温室里雷击浪涌很常见,不加保护,一次雷击就能烧掉整块板子。我吃过这个亏,后来每块板子都加了 SMAJ5.0A 和自恢复保险丝。
好了,硬件选型和电路设计就聊到这儿。下一章咱们讲软件架构和通信协议,那又是另一片天地了。