首页/新闻资讯/正文详情

LD2410 24GHz毫米波雷达人体存在检测:接线、协议、调参与误报排查

发布时间:2026/11/4 5:42:17 来源:云帆数科 栏目:资讯中心
LD2410 24GHz毫米波雷达人体存在检测:接线、协议、调参与误报排查
做人体存在检测最让人头疼的从来不是“检测到人”而是“人还在它却以为人走了”。用 PIR 红外的场景大家都熟人一坐下改代码灯灭了人稍微动一下灯又亮来回折腾。我前后换过四五套方案最后落到 LD2410 这颗 24GHz 毫米波雷达传感器上现在家里三个房间、办公室两个会议室都在用最长的一台连续跑了十四个月没重启过。这篇就把从接线、读协议、调参到长期踩坑的全过程摊开写一遍。LD2410 是一颗基于 FMCW 调频连续波原理的 24GHz 人体存在雷达传感器模块串口直接输出目标状态、距离和能量同时还能给一路 GPIO 高低电平做最简单的开关量输出。它最核心的价值是能认出“静止不动但还活着的人”——靠的是呼吸时胸腔起伏带来的毫米级位移这一点 PIR 和超声波都做不到。这篇文章适合三类人看刚买回来不知道怎么接线的硬件新手、想把它接进自己系统里的开发者、以及已经能读出数据但被误报折磨到想扔掉的倒霉蛋。全文按原理、硬件、协议、代码、调参、排障六条线走代码都能直接抄。1. 先把 LD2410 到底在测什么搞清楚很多人拿到模块第一件事就是插上电看串口有没有数据看到一堆十六进制就懵了其实问题出在没理解它在测什么。LD2410 输出的不是一个“有人/没人”的布尔值而是“每个距离区间里的运动能量和微动能量”人只是这些能量的一种常见来源。理解这一层后面所有的误报、漏检、调参问题都会变得有逻辑可循而不是玄学。1.1 它和红外、超声波的根本差别在哪PIR 红外的工作原理是检测视场内红外辐射的变化注意关键词是“变化”。人只要静止辐射不变化它就认为没人这是物理原理决定的不是产品做得差。所以 PIR 天生适合“走廊过道”不适合“书房工位”。超声波测距靠声波反射软性材料比如衣物、窗帘、地毯吸声严重回波弱而且超声波对气流极其敏感空调一吹就飘测距范围也短。毫米波雷达走的是另一条路。它发射一个频率随时间线性变化的连续波遇到物体反射回来接收信号和发射信号之间会产生一个频率差这个频差和距离成正比于是能算出目标在多远。更关键的是相位目标只要发生哪怕零点几毫米的位移回波相位就会变化雷达能把这种变化提取出来。人坐着不动胸口随着呼吸起伏大约 3~8 毫米这个量级对 24GHz 的毫米波来说完全够用。这就是 LD2410 能测“静止人体存在”的物理基础也是它区别于前两者的根本原因。它也有明显的软肋。风扇叶片、摆动的窗帘、鱼缸里的水流、空调出风口的飘带这些都在“动”雷达分不清是人还是物。所以实际部署时误报的大头往往不是雷达本身不行而是安装位置选错了。另外毫米波穿透力有限得很具体塑料、亚克力、玻璃、木板、石膏板能穿金属和大面积水体穿不过去。这几个特性后面会反复用到。1.2 距离门、能量值这些数字的真实含义LD2410 把探测空间按距离切成若干“门”每个门宽 0.75 米编号 0 到 8一共九档。这个 0.75 米不是随便定的它和雷达的调频带宽直接相关带宽决定了距离分辨率也就是“两个目标靠多近还能分开”。九档乘以 0.75 米覆盖到 6.75 米左右这就是为什么规格书里静止检测距离标 6 米上下——再远就没有对应的门了。距离门覆盖范围约实际部署时的典型情况00~0.75m贴着模块的位置噪声最大最容易误报10.75~1.5m桌面正前方、办公位常见区21.5~2.25m沙发前沿、常见座位区32.25~3.0m房间中部43.0~3.75m房间中部偏后53.75~4.5m大房间后半区64.5~5.25m边缘区能量衰减明显75.25~6.0m边缘区容易漏检86.0~6.75m极限距离基本靠运气规格书里运动目标标称能到 8 米这个 8 米说的是雷达的作用距离不是距离门的编号上限。超过 6.75 米的目标模块能告诉你“有人”但给不出可靠的门号这个区别在实际写代码时很重要——如果你拿距离做逻辑判断超出范围的值不能直接信。能量值范围是 0 到 100可以理解成“这个门里的回波有多强”。运动中的人能量通常很高六七十属于常见静止坐着的人能量低得多十几到三十几都正常没人时基线一般在个位数。能量不是固定的它跟人的体型、朝向、衣着、甚至衣服厚薄都有关系——穿羽绒服坐着和穿短袖坐着回波强度能差一截。这一点后面调参时必须考虑进去。1.3 型号怎么挑带蓝牙和不带蓝牙的区别市面上常见的几个版本基础版只有串口和 GPIO带 B 的版本多了一路蓝牙可以用手机端配置工具直接改参数不用接电脑带 C 的版本体积更小、引脚定义略有调整适合空间紧的场合。功能核心是一样的区别主要在调试便利性和尺寸。我的建议很直接第一次玩就买带蓝牙的版本。不是因为它性能更好而是因为调参这件事你必须反复试插着 USB 转串口线拖一根线到电脑上来回改一次参数要拔插一次效率低到让人暴躁。有蓝牙你坐在房间里人肉测试“我坐这里能检测到吗”手机上改完立刻看效果调参时间能省掉一大半。供电方面要留意模块标称 5V 供电但串口 IO 是 3.3V 电平。这两件事不矛盾很多新手在这里翻车以为 5V 供电就得配 5V 串口结果把 RX 打坏了。天线那一面是陶瓷天线或者板载天线正面必须裸露贴着金属板装上去等于给雷达戴了个铁帽子探测距离会掉得莫名其妙。买回来先看丝印和配套资料确认版本别凭记忆接线。2. 硬件落地供电、走线、安装的三个死穴我见过太多“雷达不准”的案例最后查下来根本不是雷达的问题而是供电脏、地没共、装错位置。这一章讲的都是看起来最没技术含量、但最容易翻车的地方。硬件基础没打好后面代码写得再漂亮也是白搭。2.1 供电不稳是误报的头号元凶LD2410 工作电流不大典型几十毫安但它是射频器件对电源纹波非常敏感。如果你把它和 LED 灯带、继电器、电机共用一个 5V 电源那些负载开关瞬间产生的尖峰会直接耦合进雷达的供电轨表现出来就是“灯一亮雷达就报有人”。这个现象特别迷惑人因为逻辑上完全说不通。三个处理办法按成本从低到高。第一单独走一路电源至少不要和开关类负载共用同一组线从电源出口就开始分叉。第二在模块供电脚旁边并一颗 100μF 电解电容加一颗 0.1μF 陶瓷电容前者应付低频波动后者滤高频噪声两颗一起上才有意义只焊一颗效果有限。第三如果条件允许用一颗低压差线性稳压器单独给雷达供电把开关电源的纹波彻底隔开。注意模块的地和主控的地必须共地这不是可选项。我遇到过用两路独立电源分别供主控和雷达、结果忘了共地的情况串口收到的全是乱码查了两个小时。还有一点容易被忽略电源线长度。线拉得太长、太细压降和天线效应都会出来。超过 30 厘米就考虑加粗线径或者就近加电容别图省事拿杜邦线拉一米。2.2 串口连线与电平匹配默认通信参数是 256000 波特率、8 数据位、1 停止位、无校验。这个波特率比常见的 9600、115200 高不少有几个坑要提前说。第一USB 转串口模块要支持这个速率。FT232、CP2102、CH340 这些主流芯片一般都支持但市面上有些极便宜的模块标称支持、实测丢包。如果你接上电脑打开串口工具只看到零星乱码先换一个转换器试试别怀疑模块坏了。第二主控和雷达的 TX/RX 要交叉接主控 TX 接雷达 RX主控 RX 接雷达 TX。这个基础错误每次都能坑到人。雷达的 TX 是 3.3V 电平接 ESP32 的 RX 可以直接连雷达的 RX 也是 3.3V 电平所以 ESP32 的 3.3V TX 直接接没问题。但如果你的主控是 5V 逻辑比如某些老式开发板TX 输出 5V 直接怼进雷达 RX 会超规格加个电阻分压或者用双向电平转换芯片两个电阻分压的成本最低。第三能不用软件串口就不用。256000 这个速率对软件模拟串口来说压力很大容易丢字节丢一个字节整帧就废了。ESP32 有多个硬件串口随便挑一个用。2.3 安装位置决定了一大半的成败雷达的视场角大约正负 60 度也就是说它像一个手电筒的光锥不是全向的。装的时候脑子里要有一个锥形把要检测的区域罩进去。高度上1.2 到 1.5 米之间比较合适大概是人坐着时胸口的高度。装太高向下俯视近处的地面会进视场走动的人会频繁进出不同距离门装太低桌面和椅背会遮挡。角度上如果装在墙角建议斜 45 度朝向房间中心这样能最大化覆盖如果装在正对区域的墙面上稍微向下压 10 到 15 度能减少天花板方向的无效回波。遮挡物这块必须讲清楚。模块正面能穿塑料外壳、亚克力面板、玻璃、木板、石膏板所以你可以把它藏在吊顶里、装在塑料配电箱里、甚至贴在木质柜门后面这属于它的优势。但金属绝对不行铝扣板、铁皮箱、金属网都会把信号挡死。大面积的水也会吸收鱼缸后面、水管密集的墙边都不是好位置。提示玻璃能穿透这件事是个双刃剑。装在窗户边它能检测到窗外的行人、马路上的车你会以为是自己房间在误报。装之前先想想视场锥里除了人还有什么。另外提一个反直觉的点不要贴着墙装。模块正后方如果有大面积反射面会产生多径反射回波绕一圈回来被当成目标表现是“明明没人但一直报有人”而且距离值飘忽不定。至少离墙面留出几厘米或者干脆装在离墙的位置。3. 串口协议拆解从一串十六进制里读出人协议本身不复杂但要写得健壮得理解帧的边界在哪、长度字段怎么算、粘包怎么处理。这一章把帧结构掰开讲配合第 4 章的代码基本能覆盖九成以上的应用场景。3.1 帧结构逐字节说明所有数据帧和命令帧都是同一个外壳帧头四个字节FD FC FB FA接着是两个字节的数据长度小端序低字节在前然后是数据段最后是固定的帧尾04 03 02 01。[FD FC FB FA] [len_lo len_hi] [data...] [04 03 02 01]关键在于长度字段的含义它统计的是数据段的字节数不含帧头六字节也不含帧尾四字节。所以一整帧的总长度等于 6 加数据长度加 4。这个定义看起来简单但它是解析代码的核心算错一个字节后面全乱。在字节流里找帧不能只看帧头就认为是一帧的开始因为数据段内部完全可能出现FD FC FB FA这样的巧合字节。稳妥的写法是只在缓冲区开头匹配帧头匹配上就按长度字段等够整帧帧尾校验通过才处理。这个思路比状态机好写也好调试第 4 章的代码就是这么做的。3.2 目标数据帧长什么样目标数据帧的数据段第一个字节是帧类型值为0x02。后面跟着目标状态和距离、能量字段偏移字段说明0帧类型固定0x021目标状态0 无目标1 运动2 静止3 运动加静止2运动目标距离距离门编号乘 0.75 米得实际距离3运动目标能量0~1004静止目标距离距离门编号5静止目标能量0~1006探测距离当前判定有效的最大门号状态字段的值 3 很常见意思是模块同时检测到运动目标和静止目标通常是同一个人的身体在动、但整体位置没大变化。写业务逻辑时不要只判 1 或 2把 3 也算进“有人”。探测距离这个字段值得单独说。它是模块综合判断后给出的“目标最远到哪”比单独看运动距离或静止距离更接近真实情况。做灯光联动时我一般用这个值做区域判断而不是用运动距离因为人静下来之后运动距离会归零但探测距离还在。工程模式下数据段会在这七个字节之后追加内容包括最大运动门、最大静止门以及九个门的运动能量和九个门的静止能量。这部分的长度在不同固件版本上存在差异我踩过一次坑按网上找的固定长度去切结果每个门的能量全错位。正确做法是第一次接上电先把原始十六进制整帧打印出来数一遍字节然后按自己手上的固件来写。第 5 章的调参方法完全依赖这部分数据所以值得花十分钟确认清楚。3.3 命令帧与参数读写命令帧的数据段第一个字节是命令码常用的几个命令码作用数据段0x00进入配置模式01 000x01退出配置模式01 000x02读取当前参数02 000x03写入参数参数内容0xFE开/关工程模式01 00开00 00关0xFF读取固件版本01 00改参数有个绕不开的规则必须先发0x00进入配置模式改完发0x01退出否则改了不生效。这个规则文档里写了但很多人扫一眼就跳过然后对着“参数改了没反应”抓头发。我自己的习惯是在封装函数里把进出配置模式做进去调用方只管传数值。写参数命令0x03的数据段结构按常见固件的排布是两个保留字节然后最大运动门、最大静止门、无人持续时间两个字节小端单位秒接着九个字节的运动灵敏度再九个字节的静止灵敏度。这里我要分享一个真正省事的方法不要凭记忆去拼这个字节串。先用0x02把当前参数读回来你会拿到一串完整的、格式肯定正确的字节然后在内存里改掉想改的那几个位置把0x02改成0x03发回去。这样格式问题和固件差异问题一次性绕开比对着文档一个字节一个字节对齐靠谱得多。这种“读回来改再写回去”的手法在很多串口设备调参上都通用值得记下来。读参数命令的返回帧数据段第一个字节是0x02后面跟着的就是上面那套参数的当前值。要注意返回帧和主动上报的目标数据帧都是类型0x02靠数据长度区分——参数的返回帧长度和上报帧不一样。所以解析的时候不能只看类型字节还得看长度。4. 上手实操三套代码直接抄下面三套代码覆盖三种典型场景想自己完全掌控逻辑的用 ESP32 手写解析想快速接进智能家居系统的用现成组件想在电脑上先摸清楚模块行为的用 Python 脚本。三套可以并行不冲突。4.1 ESP32 手写帧解析这套代码的核心思路是环形缓冲加帧头扫描重点处理了粘包和半帧等待。bufLen sizeof(buf)那个判断是兜底防止缓冲区溢出之后一直在错误状态里打转。#include Arduino.h HardwareSerial RadarSerial(1); static const int PIN_RX 16; // 接雷达 TX static const int PIN_TX 17; // 接雷达 RX uint8_t buf[128]; uint16_t bufLen 0; struct Target { uint8_t state; uint8_t moveDist; uint8_t moveEnergy; uint8_t stillDist; uint8_t stillEnergy; uint8_t detectDist; } t {0}; void handleFrame(const uint8_t *p, uint16_t len) { if (p[0] 0x02 len 7) { t.state p[1]; t.moveDist p[2]; t.moveEnergy p[3]; t.stillDist p[4]; t.stillEnergy p[5]; t.detectDist p[6]; } } void parseBuf() { while (bufLen 4) { // 只从缓冲区开头匹配帧头不是就丢一个字节继续找 if (!(buf[0] 0xFD buf[1] 0xFC buf[2] 0xFB buf[3] 0xFA)) { memmove(buf, buf 1, --bufLen); continue; } if (bufLen 6) return; // 长度字段还没收全 uint16_t plen (uint16_t)buf[4] | ((uint16_t)buf[5] 8); uint16_t total 6 plen 4; if (bufLen total) return; // 整帧还没收全 handleFrame(buf 6, plen); memmove(buf, buf total, bufLen - total); bufLen - total; } } void setup() { Serial.begin(115200); RadarSerial.begin(256000, SERIAL_8N1, PIN_RX, PIN_TX); Serial.println(radar ready); } void loop() { while (RadarSerial.available()) { if (bufLen sizeof(buf)) bufLen 0; // 兜底清空 buf[bufLen] (uint8_t)RadarSerial.read(); } parseBuf(); static uint32_t last 0; if (millis() - last 500) { last millis(); Serial.printf(state%d move%dcm/%d still%dcm/%d detect%dcm\n, t.state, t.moveDist * 75, t.moveEnergy, t.stillDist * 75, t.stillEnergy, t.detectDist * 75); } delay(5); }几个值得解释的细节。距离换算成厘米是门号乘 75因为一门 0.75 米。memmove而不是memcpy因为源和目的内存区域重叠用memcpy是未定义行为虽然在小数据量下往往也能跑但没必要赌。parseBuf里while循环是为了处理一次读到多帧的情况串口一次给你塞三帧是正常的。最后的delay(5)给串口留出时间避免主循环空转太快把 CPU 占满。调试阶段建议把原始帧也打印出来肉眼对着十六进制看比盯着解析结果猜问题快得多。等确认字段都对了再关掉打印。4.2 ESPHome 接智能家居系统如果你的目标就是“人来自动开灯”不想自己写业务逻辑用现成的组件最省事。串口配置好之后各类实体声明出来剩下的交给自动化规则。uart: id: uart_radar tx_pin: GPIO17 rx_pin: GPIO16 baud_rate: 256000 parity: NONE stop_bits: 1 ld2410: id: radar binary_sensor: - platform: ld2410 has_target: name: 有人 has_moving_target: name: 有运动目标 has_still_target: name: 有静止目标 sensor: - platform: ld2410 moving_distance: name: 运动距离 still_distance: name: 静止距离 detection_distance: name: 探测距离 moving_energy: name: 运动能量 still_energy: name: 静止能量 number: - platform: ld2410 max_move_distance_gate: name: 最远运动门 max_still_distance_gate: name: 最远静止门 timeout: name: 无人判定延时 button: - platform: ld2410 factory_reset: name: 恢复出厂参数这套配置最实用的地方是timeout这个数字实体它能直接在界面上滑动改无人延时不用重启也不用重新烧录调灯光联动体验的时候非常方便。max_move_distance_gate和max_still_distance_gate也是同理装在 3 米宽的房间里把门号设到 4 就够多余的远距离门关掉能明显减少窗外误触发。提示改这些参数后要等几秒让模块写入改得太快会丢。我一般是改一项、等两秒、看一眼行为、再改下一项。4.3 电脑端 Python 调试脚本调参之前先在电脑上把数据流看明白比直接上单片机省时间。下面这段可以直接跑装了 pyserial 就行。import serial HEAD b\xfd\xfc\xfb\xfa TAIL b\x04\x03\x02\x01 def frames(ser): buf b while True: buf ser.read(64) while True: i buf.find(HEAD) if i 0: buf buf[-3:] break buf buf[i:] if len(buf) 6: break plen buf[4] | (buf[5] 8) if len(buf) 6 plen 4: break payload buf[6:6 plen] if buf[6 plen:6 plen 4] TAIL: yield payload buf buf[6 plen 4:] else: buf buf[1:] # 帧尾不对丢一个字节重找 def build_frame(cmd, datab): payload bytes([cmd]) data return HEAD len(payload).to_bytes(2, little) payload TAIL ser serial.Serial(/dev/ttyUSB0, 256000, timeout1) # 打开工程模式开始输出逐门能量 ser.write(build_frame(0x00, b\x01\x00)) import time; time.sleep(0.1) ser.write(build_frame(0xFE, b\x01\x00)) time.sleep(0.1) for p in frames(ser): if p[0] 0x02 and len(p) 7: state, md, me, sd, se, dd p[1], p[2], p[3], p[4], p[5], p[6] print(fstate{state} move{md*0.75:.2f}m/{me} fstill{sd*0.75:.2f}m/{se} detect{dd*0.75:.2f}m)这个脚本跑起来之后屏幕上会持续滚出目标状态。让它跑着你做几个动作站着不动十秒、走动、坐下、离开房间观察状态字段和距离字段怎么变。这个过程大概五分钟你对模块行为的直觉就建立起来了比看任何文档都管用。Windows 上串口名改成COM3这种形式。5. 调参把误报压到接近零的方法调参这件事没有万能参数因为每个房间的反射环境都不一样。但有方法论先看清能量分布再逐门设灵敏度最后调延时。乱设参数的结果往往是“误报少了但漏检变多”来回横跳。5.1 用工程模式看清每个门的能量分布工程模式是调参的唯一正确入口。打开之后每一帧都会带上九个门的运动能量和静止能量你就有了完整的画面。具体步骤我按实际操作顺序写。第一步把房间清空人离开门窗关好让风扇空调都停掉然后观察每个门的能量数值。这时候看到的数字就是背景噪声基线通常都在个位数个别门可能到十几。如果某个门在完全没人的情况下常年二三十那这个门对应的区域一定有干扰源——可能是窗帘、可能是鱼缸、可能是隔壁房间透过来的。先把干扰源找出来或者把这个门关掉而不是靠调数字去硬压。第二步人坐在预期位置上保持正常坐姿不动观察能量。这时候你关注的是这个人所在的门能量应该明显高于基线比如基线 5、人坐着 25。如果只有十几说明距离偏了或者角度不对可以考虑挪模块位置。第三步人站在房间各个角落分别测画一张粗糙的覆盖图。哪些位置能量够、哪些位置不行一目了然。这一步花二十分钟能省掉后面无数次“为什么这个角落检测不到”的返工。5.2 逐门灵敏度应该怎么设灵敏度的理解有个反直觉的地方数值调高是更容易触发不是更不容易。出厂默认九个门全部是 100等于所有门全开、门槛最低这就是很多人一装上去就疯狂误报的原因——把窗帘飘动、远处走廊的行人都算进来了。合理的设法是逐门递减近处低、远处高因为近处干扰多、远处信号弱。距离门运动灵敏度建议静止灵敏度建议理由020~300~20贴身处噪声大尽量压低140~5030~40主用区适度灵敏250~6040~50主用区核心350~6040~50主用区核心445~5535~45覆盖区稍降540~5030~40边缘区630~4020~30弱信号区靠灵敏度补720~300~20极限区多数场景可关80~200一般建议关掉静止灵敏度整体要比运动灵敏度低一档因为静止检测本来就靠微弱的呼吸信号门槛设太高会把真人漏掉设太低会把风扇的微动也算进来这个平衡点只能靠实测找。表格里的数字是起点不是终点实际调试在这个基础上上下调十到二十都正常。还有个实用技巧先用最大距离门做粗调再用逐门灵敏度做精调。比如房间只有 3.5 米深把最大运动门和最大静止门都设到 5超出的门直接不参与判断这一步往往就能砍掉一半误报比逐门调灵敏度省事得多。5.3 无人延时和响应速度怎么权衡无人延时指的是“目标消失之后等多久才判定为无人”。这个参数在灯光联动里比灵敏度重要得多。延时设太短人只是屏住呼吸看手机几秒钟后灯就灭了设太长人走了灯还亮着浪费电也影响体验。我的经验值书房、卧室这类人会长时间静坐的场景设 30 到 60 秒玄关、走廊这类人停留时间短的场景设 10 到 20 秒卫生间可以设到 60 到 120 秒因为人在里面确实可能长时间不动。响应速度这一端没有直接参数可调靠的是灵敏度加上模块固件本身的行为。需要注意的是不要用降低灵敏度来换取“不误报”那是用漏检换的最后会变成“人在那儿它死活不认”。正确顺序永远是先清干扰源再关多余距离门再逐门降灵敏度最后调延时。这个顺序反过来做你会一直在原地打转。6. 常见问题与排查技巧实录下面这些坑我几乎全踩过一遍有些是硬件问题有些是理解偏差。整理成速查表遇到问题先对号入座能省不少时间。6.1 收不到数据、乱码、只上报一次现象最可能的原因排查动作完全无数据TX/RX 没交叉或没共地交换 TX/RX万用表测两地是否导通全是乱码波特率不是 256000串口工具改速率逐档试偶尔乱码用了软件串口或转换器不支持高速率换硬件串口换转换器只上报几帧就停主程序阻塞串口缓冲溢出检查主循环里有没有长延时上电一会才有数据模块初始化需要时间等待 1 到 2 秒再判断“无数据”关于乱码有个细节如果你看到的是“有周期性的、间隔规律的无意义字节”十有八九是波特率错了如果是“偶尔冒出来一个错字节”那是丢包查线路和地。这两种情况处理方式完全不同先分清。还有个小概率事件主控刚上电时串口引脚电平不稳定会在雷达的 RX 上产生一段噪声极端情况下把模块的配置搞乱。稳妥的做法是主控上电后延时 500 毫秒再初始化串口或者干脆先发一个退配置命令让模块回到默认状态。6.2 频繁误触发和该检测不到误触发是问得最多的。按出现频率从高到低排第一是风扇和空调出风口第二是窗帘和百叶窗第三是窗外的行人车辆第四是附近走动的宠物第五是供电干扰。风扇的判断方法很简单把风扇关掉观察十分钟如果误报消失就确认了。解决方式是调整安装角度避开风扇所在的门或者把那个门的灵敏度压低。风扇的旋转是周期性运动能量稳定且有节奏而人不是所以在软件层面也能做一层过滤——比如要求能量持续超阈值超过两秒才认这个简单的时间窗过滤能砍掉大量偶发误报。窗帘的处理更简单把窗帘所在的距离门灵敏度降下来或者装的时候让视场避开。漏检的花样少一些。最常见是安装位置正对着床、沙发但角度太偏人的轮廓没有正对天线其次是灵敏度整体压得太低再次是衣服太厚、人和模块之间隔着棉被之类的软材料回波衰减严重。排查时打开工程模式让人坐在实际位置看那个门的能量到底是多少数字会直接告诉你真相。宠物误报是绕不开的。猫狗也在动、也在呼吸雷达从物理上区分不了。如果你的场景必须排除宠物只能从距离上做文章——把猫狗活动的高度对应的距离门关掉或者把模块装高

相关推荐

HFSS Help工程检索:端口边界与收敛排查
HFSS Help工程检索:端口边界与收敛排查

简介:HFSS Help.pdf 是 ANSYS HFSS 2020 R1 的官方帮助文档,面向高频电磁场仿真工程师、微波与天线设计者以及高校相关专业师生,用于系统查阅软件功能、排查建模与求解中的具体问题。文档围绕几何建模、网格划分、有限元与边界元求解器、材料… · 2026/11/4 5:42:17

BAT文件闪退原因与7种解决方法及调试实践
BAT文件闪退原因与7种解决方法及调试实践

1. 闪退不是玄学,先把BAT文件的执行生命周期搞明白双击一个.bat文件,黑窗口"唰"地一闪就没了,屏幕干干净净,什么都没留下——这个场景几乎每个刚接触 Windows 批处理的人都遇到过。有人以为脚本没跑,有人以为… · 2026/11/4 5:42:17

灰狼优化算法与物理信息神经网络在光伏预测中的应用
灰狼优化算法与物理信息神经网络在光伏预测中的应用

1. 项目背景与核心价值光伏功率预测一直是新能源领域的关键技术难题。传统物理模型受限于天气条件的不确定性,而纯数据驱动方法又缺乏对物理规律的考量。这个项目将灰狼优化算法(GWO)与物理信息神经网络(PINN)相结合&a… · 2026/11/4 5:42:17

CoreWeave营收两年暴增22倍,借债351亿利息比亏损还高
CoreWeave营收两年暴增22倍,借债351亿利息比亏损还高

CoreWeave营收两年暴增22倍,借债351亿利息比亏损还高 一家年收入两年翻了二十多倍的科技明星,为什么利息支出会超过全年的亏损总额? 翻开 CoreWeave 的账本,2023 年它的营业收入只有 2.29 亿美元,到了 2025 年直接飙升… · 2026/11/4 7:21:34

包月随便用终结,OpenAI从12月起合并ChatGPT与Codex额度
包月随便用终结,OpenAI从12月起合并ChatGPT与Codex额度

包月随便用终结,OpenAI从12月起合并ChatGPT与Codex额度 如果你每个月给 OpenAI 掏二十美元甚至上百美元订阅费,习惯了白天跟 ChatGPT 聊方案、晚上用 Codex 疯狂写代码,那么 12 月开始,你的使用习惯可能得彻底变一变了。过去那张看… · 2026/11/4 7:21:34

12 · 新机部署实录(38.76.188.216,2026-11-02)
12 · 新机部署实录(38.76.188.216,2026-11-02)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:21:34

588克机器人贴肚子上自己扫肝,但它还当不了超声医生
588克机器人贴肚子上自己扫肝,但它还当不了超声医生

588克机器人贴肚子上自己扫肝,但它还当不了超声医生 体检中心里,腹部超声那一队通常最慢。 轮到你,躺上床,撩起衣服,护士在右上腹抹一层凉丝丝的耦合剂。医生把探头压上去,盯一眼屏幕,说"吸… · 2026/11/4 7:21:34

Edge Port边缘端口与BPDU Filter配置:STP协议优化与环路防护实践
Edge Port边缘端口与BPDU Filter配置:STP协议优化与环路防护实践

一、STP协议基础与Edge Port概述 1.1 STP协议的核心作用 生成树协议(STP)通过阻塞冗余链路避免网络环路,确保数据帧不会无限循环。其核心流程包括根桥选举、端口角色分配和状态转换,最终形成无环拓扑。在理想情况下,ST… · 2026/11/4 7:21:34

FastTree v2.2.0安装与使用--生信工具116
FastTree v2.2.0安装与使用--生信工具116

简介 FastTree 可以基于核酸或者蛋白多序列比对结果,构建近似最大似然(Approximately-Maximum-Likelihood)系统发育树。 它可以处理多达百万条序列的比对文件,内存和耗时可控。对于大数据集,比 PhyML、RAxML 快 100–… · 2026/11/4 7:20:34

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码