第3章:核心硬件选型——ESP32/树莓派/Home Assistant 硬件对比,传感器与执行器选型指南
做智能家居,选硬件是第一步,也是最容易踩坑的一步。
我见过太多人,一上来就买最贵的树莓派,结果发现家里就控制个灯和插座,性能严重过剩。也有人贪便宜买了杂牌ESP8266模块,结果WiFi动不动掉线,半夜灯自己亮起来……嗯,那画面挺惊悚的。
这一章,咱们就把主控硬件和传感器执行器聊透。你想想看,选对了硬件,后面写脚本、做自动化,那叫一个顺滑。选错了,天天当运维。
3.1 三大主控平台:ESP32 vs 树莓派 vs Home Assistant
先给个结论:这三者不是替代关系,而是协作关系。我自己的习惯是:Home Assistant做大脑,ESP32做手脚,树莓派当身体。但具体怎么搭,得看你的场景。
| 维度 | ESP32 | 树莓派 (3B+/4B/5) | Home Assistant (OS/Container) |
|---|---|---|---|
| 定位 | 物联网终端/边缘节点 | 本地服务器/轻量级网关 | 智能家居核心平台 |
| 价格 | 15-40元 | 200-600元 | 免费(硬件成本另算) |
| 功耗 | 极低(深度睡眠10μA) | 中等(5V/2.5A) | 取决于运行设备 |
| GPIO数量 | 16-25个(可扩展) | 26-40个 | 无(依赖外接硬件) |
| 网络能力 | WiFi + BLE(原生) | WiFi + 蓝牙 + 有线 | 全协议支持(需硬件) |
| 实时性 | 高(FreeRTOS) | 低(Linux非实时) | 中(依赖底层硬件) |
| 典型场景 | 传感器采集、电机控制、红外发射 | 运行HA、Node-RED、数据库 | 自动化编排、场景联动、UI面板 |
我的建议:如果你只做1-2个设备(比如控制个窗帘、监测个温湿度),ESP32就够了。如果你想搞全屋智能,老老实实上树莓派+Home Assistant。别问我怎么知道的——我第一套系统用ESP32硬扛了8个传感器,结果WiFi信道拥堵,延迟飙到3秒,开个灯像在发报。
3.2 ESP32:为什么它是物联网开发者的心头好?
说白了,ESP32就是为物联网而生的。双核处理器、内置WiFi和蓝牙、价格还不到一杯奶茶钱。我最早用ESP8266,后来换了ESP32,感觉就像从自行车换成了摩托车。
ESP32的核心优势:
- 双核240MHz处理器:一个核跑通信协议,一个核跑业务逻辑,互不干扰。我在项目中用这个特性,把MQTT和传感器采集分到两个核上,延迟降低了40%。
- 低功耗模式:深度睡眠电流只有10μA左右。如果你用电池供电,配合定时唤醒,一颗18650电池能撑半年。
- 丰富的外设接口:ADC、DAC、I2C、SPI、UART、PWM……基本覆盖了所有常见传感器和执行器。
- Arduino + MicroPython双生态:想快速验证用MicroPython,想榨干性能用Arduino C++。
避坑指南:我曾经买过一批9.9元的ESP32开发板,结果ADC引脚噪声大得离谱,采集光敏电阻的值跳来跳去。后来换了乐鑫官方的ESP32-DevKitC,问题立刻解决。记住:电源滤波和PCB布局直接影响模拟信号质量,别在电源上省钱。
3.3 树莓派:当它作为Home Assistant主机时
树莓派跑Home Assistant,是目前最主流的方案。但这里有个误区:很多人以为树莓派越贵越好。其实对于HA来说,树莓派4B的4GB版本是性价比最高的选择。5代性能强但发热大,还得加散热片和风扇,噪音问题在卧室里很要命。
树莓派在智能家居中的典型用法:
- 运行Home Assistant OS(官方推荐)
- 挂载Zigbee2MQTT网关(通过USB连接CC2531或ZBDongle)
- 本地存储历史数据(SQLite或MariaDB)
- 运行Node-RED做复杂流程编排
注意:树莓派的SD卡寿命是个大坑。HA会频繁读写日志和数据库,普通SD卡几个月就挂了。我建议用SSD硬盘+USB转SATA线,或者至少用工业级高耐久SD卡(比如三星Pro Endurance)。别问我怎么知道的——我第一块卡在第三个月就变成了只读文件系统,所有自动化全部停摆。
3.4 传感器选型指南:从入门到进阶
传感器是智能家居的「眼睛」和「耳朵」。选错了传感器,数据不准,自动化就是瞎搞。我按使用频率和重要性排个序:
| 传感器类型 | 推荐型号 | 接口 | 精度/范围 | 我的评价 |
|---|---|---|---|---|
| 温湿度 | DHT22 / SHT30 | 单总线 / I2C | ±0.5°C, ±2%RH | DHT22便宜但慢,SHT30快且准 |
| 人体红外(PIR) | HC-SR501 / AM312 | 数字输出 | 3-7米 | AM312体积小,适合嵌入 |
| 光照 | BH1750 | I2C | 1-65535 lux | 数字输出,不用校准 |
| 烟雾/燃气 | MQ-2 / MQ-7 | 模拟输出 | 浓度检测 | 需要预热,注意漂移 |
| 距离/存在 | VL53L0X / LD2410 | I2C / UART | 0-2米 / 0-5米 | LD2410是毫米波雷达,能检测微动 |
| 空气质量 | PMS5003 / CCS811 | UART / I2C | PM2.5 / TVOC | PMS5003是激光散射,精度高 |
一个实用技巧:温湿度传感器不要紧贴墙壁安装,墙壁温度通常比空气低2-3°C。我刚开始把DHT22贴在墙上,结果数据一直偏低,空调怎么调都不对。后来用一根杜邦线把传感器悬空5cm,数据立刻正常了。
3.5 执行器选型:从继电器到步进电机
执行器是智能家居的「手」和「脚」。选执行器时,一定要考虑负载类型和功率。我见过有人用5V继电器控制220V/2000W的取暖器,结果触点烧结在一起,取暖器再也关不掉了……
常见执行器及选型要点:
- 继电器模块:控制灯、插座、水泵等交流负载。注意区分5V和3.3V触发,ESP32的GPIO输出是3.3V,有些5V继电器需要加三极管驱动。我习惯用SRD-05VDC-SL-C,稳定可靠。
- MOS管模块:控制LED灯带、直流电机等直流负载。IRF520或AO3400都行,注意散热。我曾经用IRF520驱动12V/2A的灯带,没加散热片,结果MOS管烫到能煎鸡蛋。
- 舵机/步进电机:控制窗帘、百叶窗、阀门。舵机用SG90(小扭矩)或MG996R(大扭矩),步进电机用28BYJ-48(便宜但慢)或NEMA17(精度高)。
- 红外发射管:控制空调、电视等红外设备。用VS1838B接收,用普通红外LED发射。注意载波频率,空调一般是38kHz。
关于驱动电路:ESP32的GPIO输出电流只有12mA左右,直接驱动继电器或电机必烧引脚。一定要加三极管或光耦隔离。我习惯用ULN2003达林顿管阵列,一个芯片能驱动7路,省事又安全。
3.6 实战组合推荐:三套典型方案
根据不同的预算和需求,我给出三套经过验证的方案:
| 方案 | 主控 | 传感器 | 执行器 | 适合场景 |
|---|---|---|---|---|
| 入门级(200元内) | ESP32 + 继电器模块 | DHT22 + HC-SR501 | 2路继电器 | 控制1-2个灯+监测温湿度 |
| 进阶级(500元内) | ESP32 + 树莓派3B+ | SHT30 + BH1750 + LD2410 | 4路继电器 + 舵机 | 全屋灯光+窗帘+存在检测 |
| 发烧级(1500元内) | 树莓派4B + HA + Zigbee网关 | 多路传感器 + Zigbee设备 | 智能开关 + 调光模块 | 全屋智能+场景联动+语音控制 |
我个人最推荐进阶级方案。树莓派跑HA做大脑,ESP32做边缘节点采集传感器和控制执行器。这样即使HA挂了,ESP32还能独立运行本地逻辑——说白了就是「大脑宕机了,手脚还能动」。我在项目中就用这个架构,HA重启时灯光和窗帘不会失控,用户体验好很多。
3.7 本章小结
选硬件这事儿,没有绝对的最好,只有最合适。记住三个原则:
- 主控选型看场景:单点控制用ESP32,全屋智能用树莓派+HA
- 传感器选型看精度:数字接口优先,模拟接口注意滤波
- 执行器选型看负载:功率留余量,驱动加隔离
下一章,咱们开始动手搭建开发环境,把ESP32和Home Assistant连起来。到时候你会发现,硬件选对了,后面的路就好走多了。