Hallo Bastelfreunde! Ich habe mir mal ein solches Modul bestellt (HLK-LD2450). Das soll ja revolutionär im Bereich der Präsenzmelder sein.
Soweit ich es verstanden habe läuft das Modul grundsätzlich eigenständig nur mit +5V versorgt und kann über eine Android/iOS App per Bluetooth verbunden bereits Ergebnisse liefern. Das würde ich mir jetzt als erstes mal anschauen wollen. Auf dem Board ist eine 4polige JST-1.5 Buchse, ein 8-poliger 1,5mm Header, sowie ein paar Testpoints.
Und tatsächlich - bei 5V zieht der Sensor zwischen 120-150 mA und man kann mittels der HKLRadarApp auf beeindruckende Weise sehen wo man gerade im Raum rumspaziert.
Die Erkennung von bis zu 3 Targets ist allerdings recht lückenhaft, hängt aber vielleicht mit der Position des Sensor zusammen?
Update #1: Verbindung zum ESP8266 ==> Klappt nicht!
Ich habe einen meiner überzähligen “Wemos D1 mini” (mit ESP8266 Modul/Chip) verwendet. Bei diesen muss man etwas mit den Bezeichnungen aufpassen, da die GPIO-Pins der MCU über das Modul zum Board ein paarmal die Namen wechseln, da entsteht schnell Verwirrung. Für den DL2450 brauchen wir eine einfache UART, also RX und TX.
Wemos Pin “D1” (=GPIO5) führe ich an RX vom DL2450
Wemos Pin “D2” (=GPIO4) führe ich an TX vom DL2450
Und noch +5V und GND an das DL2450 Board
Jetzt geht es an die Konfiguration für ESPHome. Ich erstelle ein neues Device und füge folgendes an die Config YAML an um die UART zu initialisieren und den ld2450 Treiber auf die UART zu binden:
uart:
id: uart_pro01_ld2450
tx_pin: GPIO5 # -> an RX des LD2450
rx_pin: GPIO4 # -> an TX des LD2450
baud_rate: 256000
parity: NONE
stop_bits: 1
rx_buffer_size: 512
ld2450:
id: ld2450_pro01
uart_id: uart_pro01_ld2450
Die Baudrate steht im Datenblatt des LD2450, ebenso 8N1 für die Bitübertragung. Damit erstmal geflashed und probiert.
Leider klappt das nicht, der ESP8266 führt immer wieder einen Watchdog-Reset durch, vermutlich ist er mit der Soft-Serial und einer Baudrate von 256k schlichtweg überfordert.
[20:36:57][C][safe_mode:118]: Unsuccessful boot attempts: 1
[20:36:57][I][app:091]: Running through setup()
[20:36:57][D][number:034]: 'Pro01 mmWave Timeout' >> 5.00
[20:37:06] [20:37:06][D][number:034]: ets Jan 8 2013,rst cause:4, boot mode:(3,6)
[20:37:06] [20:37:06]wdt reset
Update #2: Das runtersetzen der Baudrate war leider ebenfalls nicht erfolgreich. Ich probiere es jetzt mit einem stärkeren Chip, einem ESP32-C6.
Update #3: Verbindung mit ESP32-C6
Und tatsächlich, mit einem leistungsstärkeren ESP funktioniert der Sensor auf Anhieb!
Hier die vollständige Konfiguration für ESPHome:
uart:
id: uart_pro01_ld2450
tx_pin: GPIO5 # -> an RX des LD2450
rx_pin: GPIO4 # -> an TX des LD2450
baud_rate: 256000
parity: NONE
stop_bits: 1
rx_buffer_size: 512
ld2450:
id: ld2450_pro01
uart_id: uart_pro01_ld2450
binary_sensor:
# LD2450 Präsenz
- platform: ld2450
ld2450_id: ld2450_pro01
has_target:
id: mmwave_pro01_has_target
name: "Pro01 mmWave Präsenz"
device_class: occupancy
has_moving_target:
name: "Pro01 mmWave Bewegung"
device_class: motion
has_still_target:
name: "Pro01 mmWave Stillstand"
device_class: occupancy
sensor:
# LD2450 Basis-Sensoren (optional, aber fürs Debug super)
- platform: ld2450
ld2450_id: ld2450_pro01
target_count:
name: "Pro01 Targets gesamt"
still_target_count:
name: "Pro01 Targets still"
moving_target_count:
name: "Pro01 Targets bewegend"
target_1:
x:
name: "Pro01 Target1 X"
y:
name: "Pro01 Target1 Y"
speed:
name: "Pro01 Target1 Speed"
angle:
name: "Pro01 Target1 Winkel"
distance:
name: "Pro01 Target1 Distanz"
number:
- platform: ld2450
ld2450_id: ld2450_pro01
presence_timeout:
name: "Pro01 mmWave Timeout"
switch:
- platform: ld2450
ld2450_id: ld2450_pro01
bluetooth:
name: "Pro01 LD2450 Bluetooth"
multi_target:
name: "Pro01 Multi-Target Tracking"
text_sensor:
- platform: ld2450
ld2450_id: ld2450_pro01
version:
name: "Pro01 LD2450 Firmware"
mac_address:
name: "Pro01 LD2450 BT MAC"
Infos: LD2450 Sensor - ESPHome - Smart Home Made Simple
Update 4:
Ich glaube das Hauptproblem ist nicht die CPU-Leistung, sondern die Tatsache das ESPHome beim ESP8266 eine Softserial (UART Emulation per Software) durchführt und erst mit ESP32 Chips einen echten Hardware-UART nutzen kann. Softserial ist für solche Baudraten einfach nicht geeignet.


