mmWave Sensor LD2450 einbinden

Hat jemand Erfahrung mit dem esp32 und dem LD2450?
hab viele ansätze Probiert aber bisher ohne Erfolg

mit dem Ansatz von dem github projekt von uncle-yura bin ich bisher am weitesten gekommen.

hab es geschafft zu flashen und ihn einzubinden. bekomme aber keine werte überliefert.

wenn ich die HLK Radar app nutze dann sehe ich aber das es funktioniert.
Hab es mit GPIO 1 un3 versucht und mit GPIO 16 und 17 und diese auch mal getauscht

würde mich über einen denkanstoß freuen. versuch es schon seit 3 tagen.

im ESP Builder die Log

[09:27:20][W][component:237]: Component esphome.coroutine took a long time for an operation (99 ms).
[09:27:20][W][component:238]: Components should block for at most 30 ms.
[09:27:21][V][sensor:043]: 'P0X': Received new state 0.000000
[09:27:21][D][sensor:094]: 'P0X': Sending state 0.00000 cm with 1 decimals of accuracy
[09:27:21][V][sensor:043]: 'P0Y': Received new state 0.000000
[09:27:21][D][sensor:094]: 'P0Y': Sending state 0.00000 cm with 1 decimals of accuracy
[09:27:21][V][sensor:043]: 'S0': Received new state 0.000000
[09:27:21][D][sensor:094]: 'S0': Sending state 0.00000 cm/s with 0 decimals of accuracy
[09:27:21][V][sensor:043]: 'R0': Received new state 0.000000
[09:27:21][D][sensor:094]: 'R0': Sending state 0.00000 mm with 0 decimals of accuracy
[09:27:21][V][sensor:043]: 'P1X': Received new state 0.000000
[09:27:21][D][sensor:094]: 'P1X': Sending state 0.00000 cm with 1 decimals of accuracy
[09:27:21][V][sensor:043]: 'P1Y': Received new state 0.000000
[09:27:21][D][sensor:094]: 'P1Y': Sending state 0.00000 cm with 1 decimals of accuracy
[09:27:21][V][sensor:043]: 'S1': Received new state 0.000000
[09:27:21][D][sensor:094]: 'S1': Sending state 0.00000 cm/s with 0 decimals of accuracy
[09:27:21][V][sensor:043]: 'R1': Received new state 0.000000
[09:27:21][D][sensor:094]: 'R1': Sending state 0.00000 mm with 0 decimals of accuracy
[09:27:21][V][sensor:043]: 'P2X': Received new state 0.000000
[09:27:21][D][sensor:094]: 'P2X': Sending state 0.00000 cm with 1 decimals of accuracy
[09:27:21][V][sensor:043]: 'P2Y': Received new state 0.000000
[09:27:21][D][sensor:094]: 'P2Y': Sending state 0.00000 cm with 1 decimals of accuracy
[09:27:21][V][sensor:043]: 'S2': Received new state 0.000000
[09:27:21][D][sensor:094]: 'S2': Sending state 0.00000 cm/s with 0 decimals of accuracy
[09:27:21][V][sensor:043]: 'R2': Received new state 0.000000
[09:27:21][V][sensor:043]: 'Target count': Received new state 0.000000
[09:27:21][D][sensor:094]: 'Target count': Sending state 0.00000  with 0 decimals of accuracy

Update:
hab beim locken die baudrate auf 0 gesetzt somit ist schonmal der fehler mit der zeit weg

Ich habe bisher nur mit einem LD2410 an einem D1 Mini (ESP8266) experimentiert und als Basis die Beispiele
LD2410 Sensor — ESPHome und UART Bus — ESPHome verwendet.

Bei einem ESP8266 gibt es nur zwei Pin-Kombinationen über die man den Sensor anschließen kann und zusammen mit dem Sensor läuft das Logging nicht.
Die ganze Sache ware relativ aufwendig. Für eine praktische Anwendug konfiguriere ich den LD2410 glaube ich vor und verwende nur noch den Detection-PIN, wenn das möglich ist, da muss ich noch weitere Tests machen. Über UART belastet mir der Sensor den ESP zu stark und ohne Logging gefällt mir das auch nicht, da ich noch weitere Sensoren anschließen möchte…

(Meine UART Einstellungen waren (vielleicht hilft es):

uart:
  id: uart_terasse1
  tx_pin: TX  # TX tx_pin: GPIO1 - Alternativ: GPIO15  #D8  
  rx_pin: RX  # RX rx_pin: GPIO3 Alternativ: GPIO13  #D7
  baud_rate: 256000   # 2400, 9600, 38400, 57600, 115200, 256000, 512000, 921600
  parity: NONE
  stop_bits: 1

)

…Das uncle-yura Beispiel sieht meinem Beispiel recht ähnlich (genau habe ich es nicht verglichen). Du musst wahrscheinlich nur herausfinden, wie du die UART-Schnittstelle beim ESP32 passend konfigurierst.

wie meinst du das ?

bei dem ESP 32 gibt es auch 2 pin kombinationen. einmal 1 und 3 und 16 und 17
hab alle durchprobiert und auch mal getauscht.
hab mir den Code auch mal lokal runtergeladen da ich eigentlich dann noch ein paar änderungen machen wollte. Wie ein Trashhold für die Signalstärke um die Katzen zu ignorieren.
Aber noch komm ich nicht soweit.

Meine UART einstellungen wären

uart:
  id: uart_bus
  rx_pin: 
    number: GPIO3
    mode:
      input: true
      pullup: true
  tx_pin: 
    number: GPIO1
    mode:
      input: true
      pullup: true
  baud_rate: 256000
  parity: NONE
  stop_bits: 1
  data_bits: 8

Wobei ich da einige sachen noch nichtmal verstehe.

Sowas wie pullup würde ich erst einmal weglassen. Wenn man fertige Komponenten anschließt, dann kümmern die sich normalerweise um definierte Pegel (haben eingebaute Pullup- oder Pulldown-Widerstände). Ich würde auch input nicht angeben. Bei TX (Transmit=Senden) sollte von der Logik her Input eigentlich auf false stehen (und bei RX (Receive=Empfangen) auf true). Ich gehe davon aus, dass wenn man RX und TX Pins definiert, intern der korrekte Wert eingestellt wird, daher würde ich es nicht setzen oder eben beide Pins unterschiedlich.

Bei meinem D1 Mini haben aktives Logging und der Sensor nicht zusammen funktioniert daher musste ich das Logging mit

# Disable logger 
logger:
  baud_rate: 0
  level: DEBUG

abschalten (habe ich im Internet gefunden).

Und an das Kreuzen der Leitungen hast Du hoffentlich gedacht (RX vom Sensor an TX vom ESP und TX vom Sensor an RX vom ESP).

Ja an das Kreuzen hab ich natürlich gedacht. in allen Varianten.

hab jetzt mal die Log datei deaktiviert wie du es vorgeschlagen hast und den UART Part angepasst.

uart:
  id: uart_bus
  rx_pin: 
    number: GPIO3
  tx_pin: 
    number: GPIO1
  baud_rate: 256000

Leider immer noch Ohne erfolg. wenn ich die HLK Radar App öffne sehe ich aber das der Sensor funktioniert.

also muss noch irgendwas in der Yaml oder mit dem Github Projekt nicht stimmern.
Ich weiß nicht ob eventuell der Unterschied des ESP boards einen unterschied macht denn uncle-yura hat das d1 mini board angegeben. das hab ich bei mir angepasst.

folgende Yaml hab ich bei mir

esphome:
  name: "ld2450-ld2450"
  friendly_name: LD2450-test

esp32:
  board: esp32dev

# Disable logger 
logger:
  baud_rate: 0
  level: DEBUG

# Enable Home Assistant API
api:
  encryption:
    key: "Y/uFMu83nZDrixW6Zxd8Lv/sNOkh1zCqbQwkFkaWUiU="

ota:
  - platform: esphome
    password: "d3acfd08100710ff3c68679b67178ae4"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Ld2450-Test Fallback Hotspot"
    password: "akFS0svi1h8A"

captive_portal:

external_components:
  - source:
      type: git
      url: https://github.com/uncle-yura/esphome-ld2450
      ref: master
    components: [ ld2450 ]

uart:
  id: uart_bus
  rx_pin: 
    number: GPIO3
  tx_pin: 
    number: GPIO1
  baud_rate: 256000


ld2450:
  uart_id: uart_bus
  update_interval: 1s
  invert_y: false
  invert_x: false

binary_sensor:
- platform: ld2450
  has_target:
    name: Presence
  has_moving_target:
    name: Moving Target
  has_still_target:
    name: Still Target
  presence_regions:
    - name: "Custom Presence Region 0"
      region_id: presence_region_0

text_sensor:
  - platform: ld2450
    version:
      name: "FW"
    mac_address:
      name: "MAC address"

button:
  - platform: restart
    name: "ESP Restart"
  - platform: ld2450
    factory_reset:
      name: "Factory reset"
    reboot:
      name: "Reboot"

switch:
  - platform: ld2450
    single_target:
      name: "Single target"
    bluetooth:
      name: "Bluetooth"

number:
- platform: ld2450
  rotate:
    restore_value: true
    initial_value: 0
    name: "Rotate angle"
  presence_timeout:
    name: "Presence timeout"
  presence_regions:
    - x0: 100
      y0: 100
      x1: 200
      y1: 200
      id: presence_region_0
  entry_points:
    - x: 0
      y: 0
  region_0:
    x0:
      name: R0X0
    y0:
      name: R0Y0
    x1:
      name: R0X1
    y1:
      name: R0Y1

  region_1:
    x0:
      name: R1X0
    y0:
      name: R1Y0
    x1:
      name: R1X1
    y1:
      name: R1Y1

  region_2:
    x0:
      name: R2X0
    y0:
      name: R2Y0
    x1:
      name: R2X1
    y1:
      name: R2Y1

select:
  - platform: ld2450
    baud_rate:
      name: "Baud rate"
    regions_type:
      name: "Regions type"

sensor:
- platform: ld2450
  target_count:
    name: Target count

  person_0:
    position_x:
      name: "P0X"  

    position_y:
      name: "P0Y"  

    speed:
      name: "S0"  

    resolution:
      name: "R0"  

  person_1:
    position_x:
      name: "P1X"  

    position_y:
      name: "P1Y"  

    speed:
      name: "S1"  

    resolution:
      name: "R1"  

  person_2:
    position_x:
      name: "P2X"  

    position_y:
      name: "P2Y"  

    speed:
      name: "S2"  

    resolution:
      name: "R2"

folgende log hab wird mir mit den settings angezeigt

[17:31:31][C][safe_mode:018]: Safe Mode:
[17:31:31][C][safe_mode:020]:   Boot considered successful after 60 seconds
[17:31:31][C][safe_mode:021]:   Invoke after 10 boot attempts
[17:31:31][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[17:31:31][C][api:140]: API Server:
[17:31:31][C][api:141]:   Address: ld2450-ld2450.local:6053
[17:31:31][C][api:143]:   Using noise encryption: YES
[17:31:32][D][sensor:094]: 'P0X': Sending state 0.00000 cm with 1 decimals of accuracy
[17:31:32][D][sensor:094]: 'P0Y': Sending state 0.00000 cm with 1 decimals of accuracy
[17:31:32][D][sensor:094]: 'S0': Sending state 0.00000 cm/s with 0 decimals of accuracy
[17:31:32][D][sensor:094]: 'R0': Sending state 0.00000 mm with 0 decimals of accuracy
[17:31:32][D][sensor:094]: 'P1X': Sending state 0.00000 cm with 1 decimals of accuracy
[17:31:32][D][sensor:094]: 'P1Y': Sending state 0.00000 cm with 1 decimals of accuracy
[17:31:32][D][sensor:094]: 'S1': Sending state 0.00000 cm/s with 0 decimals of accuracy
[17:31:32][D][sensor:094]: 'R1': Sending state 0.00000 mm with 0 decimals of accuracy
[17:31:32][D][sensor:094]: 'P2X': Sending state 0.00000 cm with 1 decimals of accuracy
[17:31:32][D][sensor:094]: 'P2Y': Sending state 0.00000 cm with 1 decimals of accuracy
[17:31:32][D][sensor:094]: 'S2': Sending state 0.00000 cm/s with 0 decimals of accuracy
[17:31:32][D][sensor:094]: 'R2': Sending state 0.00000 mm with 0 decimals of accuracy
[17:31:32][D][sensor:094]: 'Target count': Sending state 0.00000  with 0 decimals of accuracy
[17:31:32][W][component:237]: Component esphome.coroutine took a long time for an operation (98 ms).
[17:31:32][W][component:238]: Components should block for at most 30 ms.

den fehler mit dem Timeout hatte ich schonmal beseitigt und dennoch keinen output in HA.
jetzt ist der Fehler wieder da.

Schon gesehen, es gibt ein neues LD2450 Update für ESPHome. Vieleicht löst das deine Probleme…

Meintest du das

Es ist mein erstes ESP Projekt da ich mit den Aqara FP2 seit kurzen Probleme hab.

Ich verstehe noch nicht ob ich alle Dateien von c++ und *.py bei mir einbinden muss. bei meinen ersten Versuchen hatte ich ja folgenden Code in der Yaml Datei,

external_components:
  - source:
      type: git
      url: https://github.com/uncle-yura/esphome-ld2450
      ref: master
    components: [ ld2450 ]

wenn ich mir die common.yaml von dem projekt ansehe, kann ich noch nicht nachvollziehen wie auf dem Code referenziert wird. und wenn ich den yaml code so nutze und einbinde dann meckert er schon das thottle an,

tests/components/ld2450/common.yaml

Was genau ist dein Problem? Habe 4 Stück am laufen.

Es war wohl ein verständnis Problem.

hab es jetzt zum laufen gebracht. hatte aber selber die kabel angelötet und da ist wohl was schiefgegangen. jetzt bekomm ich gar kein signal mehr nicht mal mehr in der app.
naja hab mit 5 stück mit vernünftigen kabel bei Aliexpress bestellt. dann sollte das jetzt auch endlich klappen.

hab mir jetzt den kompletten Code von den Github projekt bei mir mit eingebunden und dann folgendes in die yaml geschrieben.
dann funktionierte es endlich


# Externe Komponente (HLK-LD2450)
external_components:
  - source:
      type: local
      path: components/  # Pfad zur Komponente
    components: ["ld2450"]            # Name der Komponente

lag wohl daran das ich mit 0 Ahnung gleich so etwas komplexes angefangen hab.

Okay, du brauchst die externen Komponenten nicht. Habe die auch nicht angegeben. Auf der Seite von ESP Home steht ein komplettes Example zum Testen ganz unten auf der Seite. Kann dir da helfen und wenn du keinen 3D Drucker Gehäuse drucken. Melde dich einfach :slight_smile:

Ich Versuche es nochmal ohne wenn die Bestellung von ali Express da ist. Hab diesmal gleich mehrere bestellt.
Aber wenn man die Daten lokal hat kann man doch eventuell noch die Programmierung den eigenen Bedürfnissen anpassen oder?

Wofür ist eigentlich target Resolution? Ich hoffe ja darauf einen Transhold einbauen zu können damit die Katzen ignoriert werden.

Beim Gehäuse hätte ich gerne was dekoratives zum verstecken des sensors.

Fürs Kinderzimmer hab ich mir den mal ausdrucken lassen. Mal schauen ob es klappt.

Was hast du für welche?



Habe dieses Gehäuse :slight_smile:

1 „Gefällt mir“

Grüsst Euch, ich habe mir ein fertiges Modul gekauft, mit einer Esp32-66 und LD2450.
Bekomme aber das Board nicht aktiv bzw. online.
Homeassistant: Esp-Home installiert und es läuft auch schon ein Sensor (Modbus für nen Deyer Wechselrichter)
Laut Aussage des Verkäufers, des selbst gebastelten Sensors, sollter der einfach in HA erscheinen, was er nicht tut.
Ich möchte nun selbst neu flashen, bekomme es aber einfach nicht hin.
Mein HA ist auf einem Dell wyse installiert, die Installation erfolgt aber auf einem anderen Rechner.
Das Modul sehe ich per USB.
würde gerne das uncleyura ausprobieren…
Wie gehe ich nun am besten vor…
sorry für die Einsteigerfragen.

LG
ARmin

Du brauchst kein Uncel Yura esp Home unterstützt den 2450 jetzt komplett.

erstmal frohe Ostern und danke für Deine Antwort.
ich versuchs mal und melde mich dann hier mit der Fehlermeldung.

Wenn du es über einen anderen Rechner installierst, ist es wichtig das du eine https verbindung hast.

Das wusste ich am Anfang auch nicht. Bin immer direkt über die IP drauf.
Hab es dann über den NABU casa Link probiert dann kam ich weiter.

Hier findest du noch die offiziellen Informationen

Und euch auch frohe Ostern