智能家居这套东西玩久了你会发现家里最难伺候的传感器不是温湿度计也不是门磁而是人体存在检测。前几年大家习惯用PIR红外传感器结果晚上躺在沙发上看手机只要不动灯“啪”一下就灭了去卫生间上厕所蹲久了灯也灭了。后来有人换了摄像头方案人是能识别了可卧室、卫生间这种地方谁愿意放个摄像头盯着自己我就是在这种来回折腾的过程中把24G毫米波雷达列进了智能家居人体存在检测的首选方案。这篇文章不是给你晒产品评测而是把24G毫米波雷达在智能家居里到底怎么用、为什么能解决PIR解决不了的问题、接入Home Assistant和STM32时有哪些坑一次性讲透。如果你正在折腾智能家居自动化或打算自己做一个人体存在传感器这篇应该能帮你少走不少弯路。1. 为什么智能家居需要“人体存在检测”而不是“人体感应”先搞清楚一个概念传统的人体感应和人体存在检测根本不是一回事。1.1 PIR太“能灭灯”摄像头太“吓人”PIR红外传感器的工作原理是探测人体发出的红外热辐射变化它的本质是“动”只有人移动时热释电元件上的红外能量才会产生变化才能触发信号。人一旦坐定、睡着、蹲坑不动红外信号就消失了传感器默认“无人”于是灯灭、空调关、场景切换。这就是“躺着玩手机被关灯”的根源。摄像头方案在“准”上确实没问题能识别有没有人、人在哪个位置甚至能识别姿态。但问题也很明显隐私、存储、功耗、算力每一样都是家庭场景的负担。尤其卧室、卫生间、更衣间产品再安全心理这关过不去就是不合适。我不是反对摄像头而是说它不该是大面积铺在每个房间的选择。1.2 24G毫米波雷达真正解决的是“静止的人”24G毫米波雷达不一样。它发射毫米波频段的电磁波通过检测人体反射波来判断目标是否存在。哪怕是坐在沙发上刷手机、躺在床上睡觉人体胸腔依然会因为呼吸产生细微起伏这个起伏足够被雷达捕捉到。也就是说它能判断“房间里有人且相对静止”这是PIR做不到的。这也是“人体存在检测”和“人体感应”的本质区别。前者回答“人在不在”后者回答“人动没动”。智能家居的自动化逻辑想要做得聪明前提就是“人在不在”这个信号足够准、足够稳。2. 24G毫米波雷达的原理与选型逻辑聊原理不是为了掉书袋而是因为你只有理解了它怎么工作后面调试参数时才知道自己在调什么。2.1 FMCW雷达是怎么“看见”人的现在市面上做存在检测的24G雷达模块大多采用FMCW体制也就是调频连续波。简单说雷达模块发射频率随时间线性变化的电磁波遇到人体后反射回来接收到的回波和当前发射信号之间会有一个频率差这个差频大小与目标距离直接相关。通过计算差频雷达就能知道“人离我多远”。但在存在检测这个场景里距离知道还不够还得判断“这个目标是不是活的”。这里靠的是微多普勒效应。人体即便坐着不动呼吸时胸腔也会产生毫米级位移这个位移会让回波产生极其微小的相位变化雷达通过分析相位变化提取出呼吸微动信号于是得出结论目标存在且在微弱运动。你可以把雷达想象成一个一直在喊“有人吗”的复读机正常人会回答“有”而PIR只有等你挥手时才会应一声。这就是24G雷达在原理层面领先PIR的地方。2.2 运动能量、静止能量和目标状态怎么读我建议你拿到一个24G存在检测模块后先把这几个关键数据搞清楚目标存在状态、运动能量、静止能量、目标距离。目标存在状态模块自己综合判断后给出的结果通常是0或1表示无人/有人。运动能量范围内目标的动态反射强度人走动的摆动幅度越大这个值越高。静止能量静止目标的微动反射强度主要来自呼吸带来的胸腔起伏。目标距离检测到的目标离模块有多远单位一般是厘米。判断逻辑很多人搞反了。有人只看存在状态发现误报后一头雾水。正确做法是看运动能量和静止能量的数值变化结合距离去判断目标是否真实、是否在设定范围内。比如半夜没有人但静止能量一直在40以上跳可能是窗帘被风吹动也可能是空调出风口扰流而不是真的有人。2.3 24G和60G怎么选很多人在选型时纠结到底是24G还是60G。我的看法是智能家居常规存在检测24G足够性价比也更高。24G波段的波长约12.5mm穿透性更好对木墙、石膏板、塑料外壳都有不错的穿透能力安装时可以藏在家具或装饰面板后面。60G波段的波长只有5mm对微小动作的感知更细腻适合做呼吸波形、心跳检测等更精细的医疗级应用但探测距离相对受限对遮挡更敏感模块成本和设计难度也更高。一句话总结家庭自动化追求的是稳定、经济、易部署24G是正解。60G强在精度但也贵在精度除非你有特殊需求否则没必要上。3. 核心优势它比传统方案强在哪把24G雷达的各项优势和传统方案放在一起看差距非常直观。对比维度PIR红外摄像头视觉24G毫米波雷达能否检测静止人体不能能能通过呼吸微动检测隐私风险低高采集图像低不采集图像光线影响无弱光环境表现差无完全不受光线影响温度/水汽影响受环境影响较大一般影响很小卫生间可用穿墙/遮挡基本不穿墙无法穿墙对非金属薄墙有穿透性设备体积与功耗小大小适合隐藏安装成本低高目前已经到可接受区间这张表基本回答了“为什么智能家居会转向24G毫米波雷达”。三个关键词静止检测、隐私、环境适应性。这些正是家庭自动化场景最看重的。PIR在成本上确实还有优势但它解决不了“人不动灯灭”的痛点。摄像头在性能上强悍但隐私和部署成本劝退大部分家庭用户。24G雷达正好夹在中间定位精准做一个能感知人存在但又不“看见”人的传感器。另外一个容易被忽视的优势是部署位置。PIR必须对着人活动的方向安装摄像头更是对角度有硬性要求而24G雷达可以藏进吊顶、藏在柜体里甚至嵌在桌面上。这对追求室内美观的人来说是刚需。4. 典型应用场景与自动化联动设计雷达本身只是感知层真正体现价值的是它和智能家居系统的联动。4.1 灯光与空调有人才开无人即关最常见的场景就是灯光和空调节能控制。传统PIR容易在“人静止阅读”时误关灯24G雷达则稳定得多。我在书房做了一个自动化雷达检测到有人开桌灯和顶灯人离开后延时3分钟关灯。播放音乐时还会自动进入“离席暂停”逻辑人走就暂停回来继续播放体验相当自然。空调和地暖同理。晚上睡觉时人躺在床上基本不动普通传感器根本撑不住24G雷达则能持续判断“床上有人”。我在卧室的自动化逻辑是晚上10点后检测到人上床空调自动进入睡眠模式彻底无人后新风和除湿机自动关闭。4.2 卫生间和书房高隐私场景的“无人值守”卫生间是摄像头的禁区却是雷达的主场。洗澡时高湿度、高温环境会让摄像头起雾、PIR误报24G雷达不受水汽影响隔着磨砂玻璃门也能正常判定。我家的浴霸换气和卫生间的灯是联动的雷达无人后延时3分钟关换气扇5分钟关灯。以前用PIR洗澡不动的时候灯一会儿亮一会儿灭换气扇还经常忘记关现在全自动实测几个月没有一次误触发。书房场景更典型。以前我在书桌前写东西只要脚不动PIR就判定无人灯灭了整个人在黑暗里凌乱。换雷达后这个问题彻底消失了。因为人坐定后胸腔的呼吸起伏会被雷达识别为“有人”整个时段灯光稳定如一。4.3 老人看护中的边界和想象很多人对雷达看护有期待觉得能检测摔倒、能识别姿态。这里要泼一盆冷水24G存在检测只能告诉你“房间有人没人”不适合做跌倒检测和姿态识别。跌倒检测需要更高频段的雷达配合多普勒特征分析和算法模型已经超出存在检测的范畴。不过它依然能在看护场景里做一些事。比如老人如果长时间在卫生间没有离开可以设置一个“超时提醒”自动化超过30分钟就推送到家人手机既不打扰隐私又给了家属一个安心感。你也可以配合其他传感器做交叉逻辑比如雷达显示有人在但门窗传感器和光照度传感器长时间没有变化就判断可能异常。这类应用不是雷达本身有多“聪明”而是智能家居系统的联动逻辑赋予了它更多可能性。关键还是底层感知信号要足够准否则后端自动化全是空中楼阁。5. 把24G雷达接入Home Assistant的实操参考说到智能家居开源系统必然绕不开Home Assistant简称HA。这里给出我实测可用的接入思路和配置示例。5.1 模块选型建议目前DIY社区最常用的是LD2410系列24G毫米波雷达模块型号不同细节有差异。选型时注意三点第一选择支持串口输出的版本方便接入MCU第二确认模块是真正的存在检测方案而不是只支持高速移动检测的廉价微波多普勒模块第三尽量选择有上位机配置工具的型号方便调门限和延时。我个人不太建议用RCWL-0516这类微波多普勒模块去做存在检测它本质上还是“动则触发静则关闭”和PIR的体验是一样的白白浪费了毫米波雷达的名头。5.2 使用ESPHome配置雷达传感器把LD2410这类模块接入HA最省事的方案是用ESP32开发板跑ESPHome模块的TX、RX接到ESP32的串口然后在YAML里声明。esp32: board: esp32dev framework: type: arduino uart: rx_pin: GPIO16 tx_pin: GPIO17 baud_rate: 115200 sensor: - platform: ld2410 moving_distance: name: Moving Distance still_distance: name: Still Distance moving_energy: name: Moving Energy still_energy: name: Still Energy binary_sensor: - platform: ld2410 has_target: name: Presence烧录后HA里会自动出现一个人体存在实体这个实体就是自动化联动的核心。配置里我特别关注了moving_energy和still_energy两个值它们是调试门限时最重要的依据。5.3 自动化YAML有人开灯、无人延时关灯接入HA后最基础的自动化是人在开灯、人走关灯。有一点要注意关灯之前一定要有延时并且要再确认一次无人状态否则雷达信号短暂抖动就会造成误关灯。automation: - alias: 书房无人延时关灯 trigger: platform: state entity_id: binary_sensor.presence to: off action: - delay: 00:02:00 - condition: state entity_id: binary_sensor.presence state: off - service: light.turn_off target: entity_id: light.study这个自动化的逻辑是先等2分钟再确认雷达依然处于无人状态最后才关灯。这样可以避免“人只是走出去拿杯水就又回来”时灯光频繁切。HA里还能做更复杂的场景联动比如结合时间条件、光照度条件、门窗状态做多条件自动化。核心思路是雷达作为感知信号HA作为决策大脑不要让单一信号直接决定所有动作。6. 基于STM32的雷达模块接入与数据解析如果你不想用ESP32和HA而是想基于STM32做一个独立的智能家居控制器接入24G雷达也不难核心就是处理串口数据。6.1 硬件接线与电平问题雷达模块和STM32之间通常走UART串口通信接线很简单模块的TX接STM32的RX模块的RX接STM32的TXGND共地VCC供电。这里有一个新手非常容易踩的坑电平不匹配。有些雷达模块是5V供电TX输出是5V电平而STM32的GPIO耐压是3.3V直连可能烧引脚。稳妥的做法是加电平转换电路或者用支持5V容忍的引脚再或者直接选3.3V供电的模块版本。我建议优先选3.3V模块省掉额外的电平转换电路更干净。另外雷达模块的电源要求一般比单片机的其他外设高上电瞬间可能拉低电压导致系统重启。实测下来给雷达单独加一个100uF以上的电解电容并靠近模块放置能显著减少供电波动。6.2 UART数据帧解析思路雷达模块输出的数据帧格式通常由帧头、长度、数据段和校验位组成不同模块细节不一样但解析思路是通用的。以LD2410系列为例数据帧以固定字节为帧头后面跟着目标状态、运动距离、运动能量、静止距离、静止能量等字段最后是校验字节。解析时不要一次性读完就解析建议用状态机方式处理// 伪代码简单帧头状态机 if (data FRAME_HEAD_1) { state WAIT_HEAD_2; } else if (state WAIT_HEAD_2 data FRAME_HEAD_2) { state WAIT_LENGTH; } else if (state WAIT_LENGTH) { frame_len data; state WAIT_DATA; }用状态机的好处是即使串口数据流中间断了、多了、乱了也能靠帧头重新同步不会因为一次丢帧导致整条数据解析错误。工程上强烈不建议用阻塞式延时去等完整的帧一旦数据量变大或者系统被中断打断丢帧率会非常高。6.3 工程化处理要点如果只是做验证串口中断里把数据丢进环形缓冲区主循环里解析就够用了。如果要做成稳定产品建议用DMA加空闲中断接收接收效率高且不占用CPU。雷达存在状态读取的周期不用太快。存在检测的物理过程本身就比较慢100ms到200ms读一次一足够没必要把系统时间耗费在串口读取上。读回来后可以做一次简单的滤波连续几次都判定有人才真正确认有人连续几次都判定无人才彻底认为离开。这个滞回逻辑可以减少很多边缘误判。7. 调试实录常见问题与排查技巧这部分是我实际踩坑后的心得比任何理论都值钱。7.1 安装位置带来的误报24G雷达有一定穿透性安装位置直接影响误报率。我最初把雷达装在客厅角落结果阳台有人走动、走廊有人经过时客厅灯时不时亮一下。后来把检测距离缩短到3米以内才压住了隔壁空间的人体信号。雷达安装有几个基本原则尽量不要正对门口、窗户和走廊不要直接贴地安装建议离地2米左右安装在房间中央区域的高处不要紧贴金属物体金属会产生强反射干扰。安装后一定要实测各个角落特别是门边和窗边。7.2 灵敏度与门限调整节奏很多人拿到模块默认参数上去就用结果要么人坐着灯灭要么人走了灯还亮。核心问题是没调静止能量门限。我的调试流程是先让房间空置5分钟记录无人状态下的运动能量和静止能量基线再让人进入房间静止坐定记录有人状态的静止能量。门限取两者中间偏上一点的数值。这样既能滤掉环境噪声又能保留呼吸微动信号。如果人走了灯还亮多半是“无人确认延时”太短或者静止门限太低导致残留回波被当成目标。我的经验是宁可把延时调长到3分钟也不要让灯在空房间里耗一晚上。7.3 三个容易忽略的坑金属、风机、窗帘第一个是金属。雷达旁边放一个铁艺置物架或者金属垃圾桶反射信号会异常容易产生固定目标造成“鬼影”。第二个是风机和空调内机。空调的导风板在转动时会产生微动反射静止能量可能会持续偏高。我遇到过半夜空调开着雷达判定卧室一直有人的情况排查了很久才发现是空调内机叶片抖动造成的。第三个是窗帘。薄窗帘被风吹动时反射面积很大极容易被判断为目标。解决方式是限制检测距离或者调整雷达朝向避开窗户。故障现象可能原因处理建议人静止时灯光熄灭静止门限过高或模块不支持存在检测降低门限更换真存在检测模块无人房间偶尔点亮窗边窗帘飘动、空调气流干扰调整朝向缩短检测距离隔壁经过触发本房间雷达穿墙或安装位置太靠门口挪位置缩小检测范围金属物件导致的鬼影雷达附近有金属反光体移开金属物或调整安装位置上电后持续有人供电不足或自动校准未完成加电容等待模块稳定后重新观察最后说一个我自己的建议如果你正在折腾智能家居人体存在检测不必一上来就买很贵的设备。先买一个20块左右、支持串口输出的24G雷达模块配合一块ESP32开发板跑通HA接入把书房落地灯自动化做起来体验一圈之后你自然就知道家里哪些场景真正需要存在检测哪些地方用门磁加PIR就足够了。这套东西上手难度不算高但玩明白之后家里的自动化会从“能联动”变得“有感知”。很多你以前觉得智障的关灯逻辑、空调整夜运行、风扇忘关这些问题都会开始自己消失。24G毫米波雷达就是那个让智能家居从“会执行命令”进化到“知道你在不在”的关键拼图。