树莓派 + 20元ESP32:搭一套龙虾能控全屋的家庭自动化方案(原理 + 实操)
很多人做智能家居,第一步就走歪:去买一堆“各家 App 各自为政”的设备,然后发现越买越乱,控制链路越长,出问题越难排。
更靠谱的路线其实很朴素:
- 树莓派当中枢:负责统一入口、统一自动化、统一状态
- ESP32 当末端节点:负责把电、红外、按键、传感器这些物理能力变成可编程接口
- 龙虾当大脑:负责把人类意图翻译成动作,并编排执行
这篇文章把这套方案讲清楚:原理是什么、需要哪些组件、怎么一步步搭起来、怎么控制智能设备与非智能设备。
整体原理:把“控制设备”拆成三层
你可以把系统想成三层。
决策层:龙虾(Agent)
做一件事:把人类语言/目标变成结构化动作。
例如:
- “把客厅灯打开” → turn_on light.living_room
- “空调调到 26 度制冷” → set_temperature climate.living_room 26 cool
- “睡觉模式” → 一串动作:关灯、关电视、开加湿器、空调 26、关闭玄关灯
龙虾不直接碰硬件。它输出动作清单。
编排层:Home Assistant
做两件事:
- 把各种设备抽象成统一实体(灯、插座、空调、传感器)
- 承担自动化/联动/状态管理/权限管理
Home Assistant 是你家“设备操作系统”。
执行层:ESP32(以及现有智能设备)
ESP32 负责把动作落实为物理世界的变化:
- 继电器通断电(控制非智能设备)
- 红外发射(控制空调/电视等)
- 干接点/按键模拟(模拟按一下)
- 传感器采集(温湿度/人体/门磁)
你要准备什么(最小可用清单)
树莓派侧
- 树莓派(3B+/4/5 都可,建议 4 起)
- MicroSD 或 SSD(SSD 更稳)
- Home Assistant(HA OS / Docker 都行)
- MQTT Broker:Mosquitto
ESP32 侧(20 元级别即可)
两条路线选一条。
路线 A:ESPHome
- 优点:与 Home Assistant 集成最省心
- 适合:继电器、按键、各类传感器,甚至部分红外
路线 B:OpenMQTTGateway
- 优点:把红外/433/BLE 等统一转成 MQTT
- 适合:红外遥控中心、BLE 网关、433 网关
非智能设备的改造模块(按需求买)
- 继电器模块(1 路/2 路/4 路)
- 红外发射管 + 接收头(做学习与发射)
- 干接点/光耦模块(模拟按键)
实操教程:先跑通一条最小闭环
原则只有一个:先跑通,再扩展。
Step 1:在树莓派上装 Home Assistant
目标:你能在局域网里打开 HA 页面,完成初始设置。
推荐方式是安装 Home Assistant OS。你得到一个稳定、专门干这件事的中枢环境。
Step 2:在 HA 里启用 MQTT(Mosquitto)
目标:HA 里能连上一个 MQTT Broker。
为什么需要 MQTT:
- ESP32 这端最方便对接 MQTT
- 你以后加 10 个 ESP32,本质都是加 topic/entity,不改架构
Step 3:让第一块 ESP32 进系统(推荐 ESPHome)
目标:ESP32 在 HA 里被发现并成为一个设备,能看到日志,能 OTA。
流程是:首次用 USB 写入固件,后续走 Wi‑Fi OTA 更新。
到这一步,你的“设备执行层”已经接入“编排层”。
Step 4:控制一个非智能设备(继电器通断电)
这是最通用、最能立刻见效的一步。
目标:HA 里出现一个开关实体,你点一下,继电器吸合/断开,设备通电/断电。
经验判断:
- 如果设备是“通电自动开机”的(很多风扇/落地灯/加湿器是),继电器通断电就等于开关机
- 如果设备需要按键启动,通断电可能不够,需要按键模拟(后面讲)
安全提醒:涉及 220V 必须做好隔离、盒子、线径与保险思路。不确定就别硬上。
Step 5:控制红外设备(电视/空调)
目标:HA 里一个按钮/脚本能发出红外码,实现开机/关机/设温度。
空调控制建议:尽量用“状态型红外码”(包含模式/温度/风速),避免只发一个 toggle 导致状态漂移。
Step 6:按键模拟(把需要人按一下的设备也接入)
目标:HA 点一下按钮,相当于你按了一次设备上的物理按键。
做法是用光耦/继电器短接按键触点,模拟按压。
这比直接切电更“温和”,适合软开关类设备与门禁类设备。
龙虾怎么接入:别直接控硬件,控 Home Assistant
当树莓派 + HA + MQTT + ESP32 跑通后,龙虾的接入会变得非常干净:它只需要一个统一接口。
两种主流方式。
方式 A:龙虾调用 Home Assistant API
龙虾输出:domain/service + entity_id + data。
优点:权限清晰、回执明确、状态可追踪,失败也好排查。
方式 B:龙虾发 MQTT
龙虾发到 home/command/…,HA 订阅后执行 automation/script。
优点:更像命令总线,适合多入口、多终端。
安全与可靠性:别让“能控”变成“会烧”
- 220V 走继电器:必须绝缘、封装、线径正确
- 不确定的设备:优先用按键模拟而不是切电
- 关键设备:不要用不稳定的改造链路去控
- ESP32 节点:建议固定 IP 或做可发现机制,避免重启后丢设备
扩展路线:一旦跑通,后面会越来越轻
这套架构的好处是“扩展不增复杂度”:
- 加一个 ESP32 继电器节点 = 新增 N 个开关实体
- 加一个红外节点 = 新增一套遥控能力
- 加一个 BLE 网关节点 = 新增一批蓝牙传感器
- 加更多自动化 = 在 HA 里编排,不动硬件
而龙虾层面,你只是在增加“意图 → 动作”的映射,以及更高阶的编排策略。