找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 1|回覆: 0

    毫米波存在感測器接 ESPHome:偵測「有人但沒在動」

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    PIR 的致命缺點:人不動就偵測不到

    坐著看書、躺著睡覺,燈就關了。

    毫米波解決這個問題,但也帶來新的問題。



    原理差別


    • PIR —— 偵測紅外線訊號的變化。不動就沒變化
    • 毫米波 —— 發射微波測反射,能偵測到呼吸造成的胸腔起伏


    所以毫米波是真正的「存在」偵測。

    常見的模組


    • LD2410 / LD2410B / LD2410C —— 最流行,約 150-250 元,
        ESPHome 有原生支援
    • LD2450 —— 可以追蹤多個目標的位置(x, y 座標)
    • DFRobot SEN0395 —— 比較早期,社群資源多
    • 海凌科 / Hi-Link 系列 —— LD2410 就是這家的


    這篇用 LD2410,因為最便宜而且支援最好。

    接線(UART)
    1. LD2410      ESP32
    2. ------      -----
    3. VCC    →    5V       (注意是 5V)
    4. GND    →    GND
    5. TX     →    GPIO16   (ESP32 的 RX)
    6. RX     →    GPIO17   (ESP32 的 TX)
    7. OUT    →    GPIO13   (選配:單純的有人/沒人訊號)
    複製代碼

    TX 接 RX、RX 接 TX —— 這個接反是最常見的錯誤。



    ESPHome 設定
    1. uart:
    2.   id: uart_ld2410
    3.   tx_pin: GPIO17
    4.   rx_pin: GPIO16
    5.   baud_rate: 256000        # LD2410 的預設鮑率很特別
    6.   parity: NONE
    7.   stop_bits: 1
    8. ld2410:
    9.   uart_id: uart_ld2410
    10.   id: ld2410_radar
    11. binary_sensor:
    12.   - platform: ld2410
    13.     ld2410_id: ld2410_radar
    14.     has_target:
    15.       name: "有人"
    16.       device_class: occupancy
    17.     has_moving_target:
    18.       name: "有人在動"
    19.       device_class: motion
    20.     has_still_target:
    21.       name: "有人靜止"
    22.       device_class: occupancy
    23. sensor:
    24.   - platform: ld2410
    25.     ld2410_id: ld2410_radar
    26.     moving_distance:
    27.       name: "移動目標距離"
    28.     still_distance:
    29.       name: "靜止目標距離"
    30.     moving_energy:
    31.       name: "移動能量"
    32.     still_energy:
    33.       name: "靜止能量"
    34.     detection_distance:
    35.       name: "偵測距離"
    36. # 調參數用的(可以在 HA 介面上直接調)
    37. number:
    38.   - platform: ld2410
    39.     ld2410_id: ld2410_radar
    40.     timeout:
    41.       name: "無人延遲"
    42.     max_move_distance_gate:
    43.       name: "最大移動偵測距離"
    44.     max_still_distance_gate:
    45.       name: "最大靜止偵測距離"
    46. select:
    47.   - platform: ld2410
    48.     ld2410_id: ld2410_radar
    49.     distance_resolution:
    50.       name: "距離解析度"
    51. button:
    52.   - platform: ld2410
    53.     ld2410_id: ld2410_radar
    54.     factory_reset:
    55.       name: "恢復原廠設定"
    複製代碼

    鮑率 256000 是關鍵 —— 不是常見的 115200。

    三個狀態的差別


    • has_moving_target —— 有人在動(跟 PIR 類似)
    • has_still_target —— 有人但沒在動(這是毫米波的價值)
    • has_target —— 上面兩個任一成立


    做自動化用 has_target
    要區分「在做事」和「在休息」的話用另外兩個。



    調參數是重點(不調的話會很吵)

    LD2410 把偵測範圍分成「閘(gate)」
    每個閘代表一段距離(預設每個閘 0.75 公尺)。

    每個閘可以各自設定靈敏度。

    最重要的三個參數

    一、timeout(無人延遲)

    偵測不到人之後,要等多久才報告「沒人」。


    • 預設 5 秒
    • 建議調到 30-60 秒
    • 太短的話走過去一下就觸發、又馬上結束


    二、max_move_distance_gate / max_still_distance_gate

    最遠偵測到第幾個閘。

    這個是解決「偵測到隔壁房間的人」的關鍵。


    • 閘 0-8,每個約 0.75 公尺
    • 設成 4 就是只偵測三公尺內
    • 靜止的距離可以設得比移動的短(靜止偵測比較容易誤判)


    三、各閘的靈敏度

    在 HA 的介面上可以逐閘調整(如果你有加對應的 number 元件)。

    調法


    • 人離開房間
    • 看哪個閘的 energy 還是很高 → 把那個閘的靈敏度調低
    • 反覆試


    常見的誤觸發來源




    • 電風扇 —— 最常見。葉片轉動會被當成移動
    • 窗簾飄動
    • 冷氣的擺葉
    • 掃地機器人
    • 隔壁房間或走廊的人(毫米波會穿透木板牆和石膏板)
    • 水管裡的水流(少見但真的會)


    對策


    • 調整安裝角度,避開電風扇和窗簾
    • 縮小最大偵測距離
    • 降低那個方向的閘靈敏度
    • 配合其他訊號(例如「有人 + 電視開著」才算)


    安裝位置


    • 高度 2.5-2.8 公尺,或直接裝天花板
    • 朝向你要偵測的區域(沙發、床、書桌)
    • 避開:電風扇、冷氣出風口、窗簾、水管
    • 不要對著門口(走廊經過的人會被抓到)


    LD2410 的偵測角度大約是水平 60 度、垂直 30 度
    裝在天花板的話涵蓋範圍是一個橢圓。

    實際的自動化寫法

    基本版
    1. alias: 書房存在感應燈
    2. triggers:
    3.   - trigger: state
    4.     entity_id: binary_sensor.study_has_target
    5.     to: "on"
    6. actions:
    7.   - action: light.turn_on
    8.     target: {entity_id: light.study}
    9.   - wait_for_trigger:
    10.       - trigger: state
    11.         entity_id: binary_sensor.study_has_target
    12.         to: "off"
    13.         for: "00:02:00"
    14.   - action: light.turn_off
    15.     target: {entity_id: light.study}
    16. mode: restart
    複製代碼

    進階:區分「在工作」和「在休息」
    1. template:
    2.   - sensor:
    3.       - name: 書房使用狀態
    4.         state: >
    5.           {% if is_state('binary_sensor.study_has_moving_target','on') %}
    6.             活動中
    7.           {% elif is_state('binary_sensor.study_has_still_target','on') %}
    8.             靜止(可能在看書或睡著)
    9.           {% else %}
    10.             沒人
    11.           {% endif %}
    複製代碼

    用途


    • 「靜止超過一小時」→ 可能睡著了,調暗燈光
    • 「活動中」→ 全亮


    誠實的評估:值不值得

    值得的場景


    • 書房 —— 久坐不動,PIR 會一直關燈
    • 沙發區 —— 同上
    • 臥室 —— 偵測有沒有人在睡
    • 廁所 —— 這個滿有用的(笑)


    不值得的場景


    • 走道、玄關 —— PIR 完全夠,而且便宜十倍
    • 廚房 —— 在裡面通常都在動
    • 需要電池供電的地方 —— 毫米波耗電高,幾乎沒有電池款


    成本比較


    • PIR:350-500 元,電池撐一年以上
    • LD2410 DIY:ESP32 + 模組約 400 元,但要插電
    • 成品毫米波感測器:800-2000 元


    我的結論

    「你會久坐但不動」的地方值得買(書房、沙發、床),
    其他地方 PIR 就夠,而且省事很多。


    ---

    下一篇:ESPHome 的 OTA、加密與安全設定
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 11:19 , Processed in 0.079472 second(s), 24 queries .

    快速回覆 返回頂部 返回列表