
人体存在检测+小夜灯
简介
开源智能家居项目,通过毫米波雷达、热释电传感器等多传感器融合实现高精度人体存在检测,具备环境光自适应和双模式照明功能,包含完整的硬件设计、ESPHome固件、3D打印外壳和Node-RED自动化方案。
简介:开源智能家居项目,通过毫米波雷达、热释电传感器等多传感器融合实现高精度人体存在检测,具备环境光自适应和双模式照明功能,包含完整的硬件设计、ESPHome固件、3D打印外壳和Node-RED自动化方案。开源协议
:CC BY-NC-SA 3.0
(未经作者授权,禁止转载)描述
人体存在传感器 + 小夜灯 - 开源项目
项目概述
本项目是一个集成了多种传感器的智能人体存在检测与小夜灯系统,旨在为家庭灯光自动化提供高精度、低误判的人体存在检测方案。通过毫米波雷达、热释电传感器、麦克风和光照传感器的多传感器融合,结合ESPHome固件与Node-RED自动化流程,实现昼夜自适应、多条件触发的智能照明控制。
功能特点
- 多传感器融合检测:LD2410毫米波雷达 + SR602热释电传感器 + 麦克风声音检测,大幅降低误判率
- 环境光自适应:LTR303光照传感器实时监测环境亮度,智能判断是否需要补光
- 双模式照明:支持主照明灯与小夜灯模式,根据时间段自动切换
- 可调节结构:3D打印外壳支持大角度调节,优化传感器指向性
- 完整开源:硬件设计、固件代码、自动化流程全部开源
开源地址
- 硬件设计和软件说明:
- OSHWHub立创开源硬件平台:人体存在检测+小夜灯
- PCB外壳模型:
项目背景
自2022年接触HomeAssistant和ESPHome后,我通过智能家居DIY交流群了解到海凌科LD2410B雷达传感器,并成功将其应用于家庭灯光自动化场景。在实际使用过程中总结出以下经验:
- LD2410B蓝牙调试功能便于参数调节,可实现精准人体存在检测
- 雷达模块指向性强,安装角度对检测效果影响显著
- 单一雷达传感器在部分场景容易误判(如窗帘飘动)
- 需要区分日常使用和夜间起夜的不同灯光场景
- 环境光传感器能显著提升自动化智能化程度
硬件设计
主控制器
- 型号: ESP32-C3-Super-Mini
- 选择理由:
- 成本优势(8-10元)
- 内置蓝牙功能,支持:
- BLE追踪器和蓝牙代理功能(将BTHOME设备接入HA)
- 直连低功耗蓝牙,可实现低功耗蓝牙设备接入HA
- 通过配置Tasmota固件支持Matter协议(理论上可行,但当前暂无该固件计划)
- 集成USB Type-C接口,便于烧录和供电
核心传感器模块
雷达传感器(必选)
兼容以下4款海凌科雷达模块:
| 型号 | 特点 | 接口 | 焊接难度 |
|---|---|---|---|
| LD2401 | 带蓝牙版本中最便宜 | 邮票孔或PH2.0排针 | 简单 |
| LD2410C | 易焊接 | 2.54排针 | 简单 |
| LD2412 | 广角+远距离增强 | 2.54排针 | 简单 |
| LD2410B | 体积小巧 | 1.2mm排针 | 中等(易连锡) |
红外热释电传感器(推荐)
- 型号: SR-602
- 作用: 减少误判,与雷达传感器协同工作提高检测精度
麦克风模块(可选)
兼容型号:
- ICS-43434模块
- INMP441模块
- 某宝"INMP441国产兼容芯片"
功能: 环境噪声检测,支持声控灯功能和环境信息补充
照度传感器(可选)
- 型号: LTR-303ALS
- 接口: I2C
- 注意: 芯片焊接难度较大
小夜灯电路
- 驱动: AO3400A MOS管
- 灯珠: 6个3V/120mA 26mm LED陶瓷灯珠 (起夜推荐暖色灯)
- 建议: 仅焊接2、4、6位三个灯珠即可满足起夜需求
- 警告:
- 6灯珠全亮时PCB温度可达56°C+
- 使用不同规格灯珠需重新计算限流电阻值
- 限流电阻R3-R8为1206封装1/4W 18Ω电阻,只适配3V/120mA灯珠
焊接完成效果图

ESPHome固件配置
主配置文件 (human-presence-night-light.yaml)
主配置文件作为项目核心,实现以下功能:
- 设备基础配置:设备名称、WiFi连接、OTA升级、Web服务器
- 总线配置:
- I²C总线(LTR303光传感器)
- UART总线(LD2410毫米波雷达)
- I²S音频总线(ICS43434麦克风)
- 蓝牙支持:启用BLE代理,方便BTHOME设备接入Home Assistant
- 包集成:通过
packages节点引用和配置功能包,实现按需引用特定的传感器配置 - on_boot配置说明:
- 部分传感器无法设置默认开启/关闭状态,只能在主文件中使用
on_boot配置主动设置开机后任务实现 - 麦克风功能已设置开机后主动开启(此功能必须在引用
ics43434_mic.yaml包,且ics43434_mic_id配置必须为ics43434_mic时才能编译通过) - LD2410蓝牙已设置开机后3S主动关闭(此功能必须在引用
ld2410.yaml包,且ld2410_id配置必须为ld2410b时才能编译通过)
- 部分传感器无法设置默认开启/关闭状态,只能在主文件中使用
包引用方式优点
- 模块化设计:各功能独立封装,便于维护和复用,可根据硬件配置选择需要的功能包
- 配置灵活:通过
vars参数传递硬件配置 - 命名统一:
prefix_name统一实体名称前缀 - 多语言支持:通过
substitutions切换中英文实体名
功能包说明
功能包设计特点
- 各包文件头部提供标准引用方法(
!include指令) prefix_name作为实体名称前缀(Home Assistant显示)xx_id作为组件内部ID前缀(确保ID唯一性)- 默认开启中文实体名格式,可通过修改包内
substitutions切换英文
1. 毫米波雷达 (ld2410.yaml)
- 兼容硬件:LD2410B, LD2410C, LD2401, LD2412
- 注意事项:LD2412需通过蓝牙APP配置波特率为256000
- 安全提示:使用时建议关闭蓝牙(若未更改默认密码,有隐私泄露的风险)
- 功能包括:
- 运动/静止目标检测
- 目标距离/能量值测量
- 工程模式开关
- 蓝牙控制
2. 热释电传感器 (sr602.yaml)
- SR-602红外人体运动检测
- 支持消抖延迟配置(
delay_on/delay_off) - 组件类型:GPIO二进制传感器
3. PWM调光LED (pwmLED.yaml)
- PWM控制的单色LED灯
- 支持渐变效果(
default_transition_length) - 上电恢复默认关闭状态
4. 麦克风模块 (ics43434_mic.yaml)
- 兼容硬件:ICS43434麦克风、INMP441麦克风、某宝购买的"INMP441国产兼容芯片"
- 高级音频处理功能:
- 实时环境噪声监测
- 声音突增检测(ΔdB)
- 声控触发阈值设置
- 麦克风校准补偿
- 声控触发核心:
- 提供声音强度二进制传感器
- 当ΔdB超过阈值时触发
- 内置防抖滤波(20ms开启延迟/200ms关闭延迟)
5. 光传感器
- 注意:两个光传感器包无法同时引用,只能选择其中一个
- 基础版 (
ltr_sensor.yaml):- LTR303环境光传感器
- 环境光照度检测(lux)
- 自动增益模式
- 主动测量按钮
- 增强版 (
ltr_led_filter.yaml):- 解决板载LED对光传感器的干扰
- 动态过滤LED开启时的光照值
- 必须同时引用
pwmLED.yaml包(用于干扰过滤) - 提供滤波后的真实环境光数据
6. 状态指示灯 (statusLED.yaml)
- 配置板载状态LED
- 支持信号反转(
inverted: true) - 组件类型:
status_led
7. 安全控制 (safe_controls.yaml)
- 提供设备安全操作按钮:
- 安全模式重启
- 恢复出厂设置
- 设备关机
- 设备重启
8. WiFi信号监测 (wifi_signal.yaml)
- WiFi信号强度传感器(dBm)
- 默认禁用,需手动启用
- 60秒间隔更新
esphome和homeassistant网页前端效果图

PCB外壳模型
项目简介
为了让传感器模块安装部署时可随意调节指向,以覆盖主要人员运动区域,设计了此外壳模型。
模型特性
- 安装方式可选:提供"可调节外壳"和"不可调节外壳"两个主要版本
- 供电接口可选:支持三种供电方式
- 功能模块可选:根据PCB焊接情况提供三种版本
最终效果展示
可调节外壳版本

不可调节外壳版本

更多详细装配示意图和效果图请移步thingiverse或makerworld开源地址查看
Node-RED灯光自动化控制
概述
本Node-RED流实现了一个智能家居灯光自动控制系统,通过多种传感器(环境光传感器、毫米波雷达、声音传感器)和时间条件,智能判断环境状态并自动控制灯光开关,提供昼夜自适应照明解决方案。
功能特性
- 环境光检测:通过LTR303传感器监测环境亮度变化
- 多传感器融合:结合LD2410毫米波雷达、SR602运动传感器和声音传感器进行人体检测
- 昼夜模式切换:基于时间和环境光条件自动切换白天/黑夜模式
- 智能灯光控制:根据时间段自动选择开启大灯或小夜灯
- 手动/自动模式切换:通过Home Assistant辅助元素控制自动模式开关

硬件要求
传感器设备
- 环境光传感器:LTR303(实体:
sensor.human_presence_night_light_ltr303_filtered_ambient_light) - 毫米波雷达:LD2410(实体:
binary_sensor.human_presence_night_light_ld2410_presence) - 运动传感器:SR602(实体:
binary_sensor.human_presence_night_light_sr_602) - 声音传感器:麦克风声音触发(实体:
binary_sensor.human_presence_night_light_mic_sound_controlled_light_trigger)
执行设备
- 主照明灯:Sonoff开关(实体:
switch.sonoff_1001655d3a_1) - 小夜灯:LED灯(实体:
light.human_presence_night_light_led)
核心逻辑说明
1. 环境光检测模块
- 监控 LTR303 环境光传感器数值
- 当光照度 ≤ 5 lux 持续 2 分钟时触发
- 将光照度二值化为"环境光变亮"或"环境光变暗"状态
2. 时间触发模块
- 06:00: 触发"黑夜-白天临界时间"
- 08:30: 触发"白天时间"
- 16:00: 触发"白天-黑夜临界时间"
- 19:00: 触发"黑夜时间"
3. 状态机模块
实现了一个四状态状态机:
- 白天
- 白天-黑夜临界
- 黑夜
- 黑夜-白天临界
状态转换规则:
- 时间事件可直接切换到对应状态
- 环境光变暗 + 白天-黑夜临界状态 → 黑夜状态
- 环境光变亮 + 黑夜-白天临界状态 → 白天状态
4. 传感器融合模块
使用位运算算法融合三个传感器状态,采用主从式触发逻辑:
- 位1 (最高优先级): LD2410 毫米波雷达 (主传感器)
- 位2: SR602 运动传感器 (辅助传感器)
- 位3: 声音传感器 (辅助传感器)
传感器融合逻辑:
- 开灯条件: 当主传感器(LD2410)检测到有人(
位1 = 1),并且至少有一个辅助传感器(位2或位3)也检测到活动时触发开灯- 对应二进制状态:
0b011(毫米波雷达+运动传感器) 、0b101(毫米波雷达+声音传感器)或0b111(三个传感器都触发)
- 对应二进制状态:
- 关灯条件: 当主传感器(LD2410)未检测到有人(
位1 = 0)时,无论辅助传感器状态如何,都触发关灯- 对应二进制状态:
0b000,0b010,0b100,0b110
- 对应二进制状态:
真值表:
| LD2410(位1) | SR602(位2) | 声音(位3) | 二进制 | 动作 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0b000 | 关灯 |
| 0 | 0 | 1 | 0b100 | 关灯 |
| 0 | 1 | 0 | 0b010 | 关灯 |
| 0 | 1 | 1 | 0b110 | 关灯 |
| 1 | 0 | 1 | 0b101 | 开灯 |
| 1 | 1 | 0 | 0b011 | 开灯 |
| 1 | 1 | 1 | 0b111 | 开灯 |
这样的设计确保了:
- LD2410毫米波雷达作为主传感器,具有最高决策权
- 避免了因单一辅助传感器的误报导致错误触发
- 提高了系统的可靠性和抗干扰能力
5. 灯光控制模块
- 23:30-08:30: 触发时开启小夜灯
- 其他时间: 触发时开启主照明灯
- 只在"黑夜"模式下启用自动控制
- 通过
input_boolean.deng_guang_zi_dong_kong_zhi_kai_guan实体控制自动模式开关
安装与配置
前置要求
- 已安装Home Assistant和Node-RED
- 已安装Node-RED的Home Assistant节点
- 所有传感器和设备已在Home Assistant中正确配置
必要配置
在 Home Assistant 中创建辅助元素:
方法一,ha的设置->设备与服务->辅助元素->添加->创建开关:

方法二,编辑homeassistant 配置文件:
input_boolean:
deng_guang_zi_dong_kong_zhi_kai_guan:
name: "灯光自动控制开关"
icon: mdi:lightbulb-auto
导入流程
- 将提供的JSON内容复制到剪贴板
- 在Node-RED界面中点击菜单→导入→剪贴板
- 粘贴JSON内容并确认导入
- 部署流程
自定义配置
时间调整
根据需要修改以下节点的时间设置:
黑夜-白天临界时间:当前设置为06:00白天时间:当前设置为08:30白天-黑夜临界时间:当前设置为16:00黑夜时间:当前设置为19:00大灯和小夜灯切换时间:当前设置为23:30-08:30
设备实体ID
修改以下服务调用节点中的实体ID以匹配您的设备:
开启房间灯/关闭房间灯:修改为您的照明开关实体开启小夜灯/关闭小夜灯:修改为您的小夜灯实体
光照阈值
在环境光亮度节点中调整ifState值来修改触发光照阈值(当前为5lux)
在环境光照度二值化节点中调整比较值来区分环境光的亮暗(当前为1lux,需比环境光亮度节点中的ifState小)
故障排除
- 传感器无响应:检查Home Assistant中传感器实体状态是否正常
- 灯光不自动开关:确认
灯光自动控制开关辅助元素处于开启状态 - 时间触发不准:检查Node-RED服务器时区设置
如遇到问题,请检查:
- Home Assistant与Node-RED连接状态
- 所有传感器实体ID是否正确配置
- 时间相关节点的时区设置
此流程为智能家居自动化提供了一个完整的灯光控制解决方案,可根据实际需求进行进一步定制和扩展。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论