外观
在场感知与蓝牙代理
让家里知道「谁在哪个房间」「房间里有没有人」,是智能家居自动化的关键一环。ESP32 自带蓝牙和 Wi-Fi,成本低,适合铺在每个房间当「小哨兵」。适合已经有 Home Assistant、想做灯光跟人走或空调节能的玩家。
这是什么玩法
三类常见做法,原理不同:
| 做法 | 原理 | 能回答的问题 |
|---|---|---|
| HA 蓝牙代理 | ESP32 转发附近 BLE 广播给 HA | 扩展蓝牙覆盖,让远处的 BLE 传感器也能接入 |
| ESPresense | 多个节点测同一个 BLE 设备的信号强度 (RSSI) | 手机、手表、标签在哪个房间 |
| 毫米波雷达 | 24GHz 或更高频率雷达探测运动和静止的人 | 房间里有没有人,包括坐着不动的人 |
PIR 红外传感器只能感知移动,人坐着不动就会误判为无人;毫米波雷达可以探测静止的人体微动,这是它在存在检测里流行的原因。
典型硬件
- 蓝牙代理和 ESPresense:普通 ESP32 就行。ESP32-DevKitC 最稳妥;ESP32-S3、ESP32-C3 也可用,但请核对对应固件版本的支持情况。ESP32 原版(带经典蓝牙)与 S3 / C3 / C6(仅 BLE)在蓝牙能力上不同,做代理只需要 BLE。
- 毫米波雷达模块:常见有 LD2410(单目标存在检测,带距离和能量值)和 LD2450(多目标位置追踪,最多追踪 3 个目标),均通过串口连接 ESP32。型号和参数以模块厂商手册为准。
- 供电:一般 5V USB,雷达模块也多为 5V 供电、3.3V 串口电平,接线前核对模块手册。
软件与项目
- ESPHome:内置
bluetooth_proxy组件,几行 YAML 就能变成蓝牙代理;雷达模块也有对应的 ESPHome 组件(如 ld2410、ld2450)。 - ESPresense:专门做 BLE 房间级定位的开源固件,通过 MQTT 与 HA 配合,可以追踪手机、手表、苹果和安卓设备的蓝牙信号。
- OpenMQTTGateway:另一个 BLE 网关方案,也支持 433 MHz、红外等。
- 蓝牙代理的原理和能力限制请参考 HA 官方蓝牙集成文档,包括并发连接数量等细节。
入门路径
- 先做一个蓝牙代理:在 ESPHome 里新建设备,加入
bluetooth_proxy,刷入后在 HA 里确认出现。 - 把代理放到有蓝牙传感器(如小米温湿度计)但信号不好的位置,观察数据是否变得稳定。
- 想做房间定位,就再选两三块 ESP32,分别刷 ESPresense,放到不同房间。
- 想检测有人,接一个 LD2410 到 ESP32 串口,在 ESPHome 里添加
ld2410组件,得到「存在」「运动」「静止」几个二进制传感器。 - 在 HA 里把存在状态用于灯光自动化,并加几十秒延迟避免频繁开关。
进阶方向
- 多节点融合:节点越多,RSSI 定位越稳定;需要自己做校准和过滤。
- 区域划分:LD2450 能输出目标坐标,可以在 HA 里或 ESPHome 里划分区域,区分沙发和书桌。
- 手机隐私:iOS 和 Android 默认会随机化 BLE 地址,通常要借助 HA 配套 App 的蓝牙信标功能或固定 IRK 来解决,具体做法见各项目文档。
- 低功耗:雷达模块功耗比 PIR 高,不适合电池供电。
注意事项
- 雷达存在误报来源:风扇、窗帘、宠物都可能触发,安装位置和灵敏度需要反复调。
- Wi-Fi 与蓝牙共存:ESP32 的 2.4 GHz 射频是 Wi-Fi 与 BLE 共用,同时高负载时可能影响稳定性。
- 隐私:房间级定位数据属于个人信息,不要把 MQTT 或 HA 直接暴露在公网,家中有他人时要告知。
- 雷达的辐射功率很低,在合规的商业模块范围内使用即可,不要自行改造发射。