2. 硬件选型与电路设计:传感器选型(温湿度、光照、CO2)、执行器选型(风扇、水泵、加热器)、电源电路设计、PCB布局要点

好,咱们直接进入正题。硬件选型这块,说白了就是给温室选「五官」和「手脚」。传感器是五官,负责感知环境;执行器是手脚,负责干活。选错了,后面软件写得再好也白搭。我见过太多项目,传感器精度不够,导致控制逻辑反复震荡,最后作物全毁了。

2.1 传感器选型:温湿度、光照、CO2

先聊温湿度传感器。温室里最常用的就是 SHT30DHT22。我个人习惯,只要预算允许,直接上 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 和自恢复保险丝。

好了,硬件选型和电路设计就聊到这儿。下一章咱们讲软件架构和通信协议,那又是另一片天地了。