Stue mmWave Tilstedeværelsessensor
Præcis detektering af både bevægelse og mikro-bevægelser (stillesiddende tilstedeværelse) kombineret med Bluetooth tracking i stuen.
Projektoverblik & Status
Formålet med dette projekt er at opnå pålidelig tilstedeværelsesdetektering i stuen uden de begrænsninger, traditionelle passive infrarøde (PIR) sensorer har. Projektet befinder sig i øjeblikket i en prototype-/testfase, hvor sensorens følsomhed og distance gates finjusteres, før der 3D-printes et endeligt kabinet eller evalueres et skift til en dedikeret Zigbee-løsning.
Hvorfor mmWave Radar frem for PIR?
En traditionel PIR-sensor reagerer kun på temperaturændringer i bevægelse og vil slukke lyset, hvis man sidder stille i sofaen. HLK-LD2410 mmWave-sensoren løser dette problem:
- Detektering af Stillesiddende Tilstedeværelse: 24GHz FMCW-radaren kan registrere mikro-bevægelser som åndedræt og små kropsbevægelser, når man sidder helt stille og ser TV.
- Adskilte Bevægelses- & Stillestående Zoner: Gør det muligt at adskille hurtig bevægelse (gåtur gennem stuen) fra stillesiddende tilstedeværelse.
- Indbygget Bluetooth Proxy: ESP32-C3 mikrokontrolleren fungerer samtidig som Home Assistant Bluetooth Proxy via
esp32_ble_tracker, hvilket udvider husets BLE-netværksdækning.
Hardware & Wiring Diagram
Sensoren kommunikerer med ESP32-C3 via en høj-hastigheds UART-forbindelse (256.000 baud) på dedicatede GPIO-pins.
- Mikrokontroller: ESP32-C3 DevKitM-1 (kører ESP-IDF framework)
- Radar Sensor: Hi-Link HLK-LD2410 (24GHz mmWave radar modul)
- UART Kommunikationsforbindelse:
ESP32-C3 GPIO4 (TX)→HLK-LD2410 RXESP32-C3 GPIO3 (RX)→HLK-LD2410 TX
- Baud Rate: 256.000 baud for hurtig rapportering af distance-gates og signalenergi.
- Strømforsyning: 5V DC via micro-USB / pin header (HLK-LD2410 kræver stabil 5V for optimal antenneydelse).
Skematisk Diagram (UART Pinout)
[ ESP32-C3 DevKitM-1 ] [ HLK-LD2410 Radar Modul ]
+----------------------+ +------------------------+
| 5V (VCC) -----------+---------->| VCC (5V) |
| | | |
| GPIO4 (TX) -----------+---------->| RX |
| | | |
| GPIO3 (RX) <---------+-----------| TX |
| | | |
| GND ----------+---------->| GND |
+----------------------+ +------------------------+
HLK-LD2410 Datasheet Højdepunkter
Nøgledata uddraget direkte fra Hi-Link HLK-LD2410 tekniske datablad:
- Frekvensbånd: 24GHz ISM-bånd (FMCW modulationsprincip).
- Detekteringsrækkefølge: Op til 0,75m – 6m justerbar rækkevidde med opdelte distance-gates (0,75m pr. gate).
- Detekteringsvinkel: ±60° horisontalt og vertikalt strålemønster.
- Følsomhedskonfiguration: Uafhængig justering af tærskelværdier for bevægelsesenergi og stillestående energi pr. distance-gate.
- Kommunikation: UART serie-interface samt direkte GPIO-udgang.
ESPHome YAML Konfiguration
Firmware-konfigurationen flashet til ESP32-C3 boardet under ESP-IDF frameworket. Koden eksponerer radarens target-stater, energiniveauer per zone, Bluetooth Proxy og direkte konfigurationsknapper til Home Assistant:
esphome:
name: motion-stuen
friendly_name: Motion Stuen
esp32:
board: esp32-c3-devkitm-1
framework:
type: esp-idf
# Aktiverer logging
logger:
# Aktiverer Home Assistant API (kryptografisk nøgle)
api:
encryption:
key: "!secret api_key"
ota:
- platform: esphome
password: "!secret ota_password"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Captive Portal fallback i tilfælde af manglende Wi-Fi forbindelse
ap:
ssid: "Motion-Stuen Fallback Hotspot"
password: "!secret ap_password"
captive_portal:
web_server:
port: 80
# High-speed UART konfiguration til HLK-LD2410 radaren
uart:
id: uart_bus
tx_pin: GPIO4
rx_pin: GPIO3
baud_rate: 256000
ld2410:
id: my_ld2410
binary_sensor:
- platform: ld2410
has_target:
name: "Presence Detected"
has_moving_target:
name: "Moving Target"
has_still_target:
name: "Still Target"
# Sensorer til afstand og signalstyrke (velegnet til fintuning)
sensor:
- platform: ld2410
moving_distance:
name: "Moving Target Distance"
still_distance:
name: "Still Target Distance"
moving_energy:
name: "Moving Target Energy"
still_energy:
name: "Still Energy"
detection_distance:
name: "Detection Distance"
- platform: internal_temperature
name: "ESP32-C3 Internal Temperature"
- platform: wifi_signal
name: "WiFi Signal"
id: wifi_rssi
update_interval: 60s
# Switches og talværdier til konfiguration direkte fra Home Assistant
number:
- platform: ld2410
timeout:
name: "Presence Timeout"
max_move_distance_gate:
name: "Max Move Distance Gate"
max_still_distance_gate:
name: "Max Still Distance Gate"
switch:
- platform: ld2410
engineering_mode:
name: "Engineering Mode"
# BLE Tracker og Bluetooth Proxy til udvidelse af husets Bluetooth-dækning
bluetooth_proxy:
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms