Erfahrung mit 24 GHz HLK-LD2410S Radarsensor 0,1 mA 3,3 V (mit pico2) gefragt

Hallo zusammen,

ich suche aktuell ein zuverläßige Bewegungssensor für die Bewegungserkennung.
Ich teste aktuell den HC-SR501 und habe damit mäßige Erfahrung gesammelt, deswegen wollte ich fragen, ob jemand mit dem Sensor HLK-LD2410S ggf. etwas Erfahrung gesammelt hat und diese teilen möchte?

Ich habe ein Artikel gefunden, wo auch gewisse Schwirigkeiten mit HLK-LD2410 beschrieben werden. Da war es aber ganz andere Microkontroller verwendet
Als MC verwende ich Raspi pico2, wo auch paar andere Sensoren wie z. B. emfondliches Mikro zwecks Schärfung der Ergebnise, BME280 o.ä. angeschlossen werden.

Was mich an dieser Lösung interessiert, sind folgende Aspekte:

  1. Welche reichweite haben solche Sensoren?
  2. In der Beschreibung wird empfohlen es auf 1,5 bis max 2m Höhe zu platzieren. Meine Sensoren werden aber etwas höher sein. Lässt sich es mit entsprechende Neigung korrigieren? Wie funktoniert es dann wenn er durch die Neigung durch Fußboden “strahlen” wird?
  3. Ansonsten nutzte ich schon zwei (von zwei) UART Kanäle von Pico für andere Zwecke. Wenn ich ein drittes UART-Gerät anschließen werde, kann es zu Problemen kommen?
  4. Da die Frequenz von 24GHz recht hoch ist, kennt jemand Verweise/Hinweise im Bezug auf die gesundheitliche Aspekte dieser Frequenz? Ein kurze Blick in die Dokumente von WHU war leider nicht wirklich erfolgreich.

Quellen:
https://community.simon42.com/t/hat-jemand-erfahrungen-mit-dem-praesenzsensor-hlk-ld2410-und-esphome/55729
https://www.elektronik-kompendium.de/sites/praxis/bauteil_hlkld2410s.htm

VG, Bauherr

Servus
Ich habe hier eine ganze Hand voll LD2450 bei mir verbaut. Allerdings über ESPHome mit ESP32 Node MCUs.
zu 1.) Der LD2450 reicht etwa 5m, abhängig natürlich ob etwas dazwischen ist und auch ein wenig vom Winkel
zu 2.) Im Datenblatt siehst du eh genau die Reichweite vs. Winkel.
Durch die Decke oder Boden geht kaum was. Hängt aber stark vom Material ab. Hab im Badezimmer eine Glastüre, durch die sieht er locker hinduch. Hingegen ist er durch die benachbarte Gipskartonwand blind.
zu 3.) Eher nein, evtl. reagiert er etwas langsamer da ja alle Sensoren abgearbeitet werden müssen, mußt ausprobieren.
zu 4.) Das ist wohl eine Glaubensfrage. - Aluhutträger, du verstehst …- Fakt ist jedenfalls das je höher die Frequenz, desto geringer die Eindringtiefe ins menschliche Gewebe. Bei 24Ghz sollet eigentlich alles in den obersten Hautschichten absorbiert werden dazu kommt das die Sensoren ja nur wenige mWatt Sendeleistung haben. Ohne es exakt zu wissen würde ich sagen das ein Handy oder Wifi zig mal mehr Risiko birgt als so ein kleiner Radarsensor. Aber wie gesagt, bei dem Thema sind wir sehr schnell im Okulten.

Grundsätzlich bin ich sehr zufrieden mit der Lösung, kein Vergleich zu den IR Bewegungsmeldern die hier früher rumhingen.

gruß
bb

1 „Gefällt mir“

Danke für die ausführliche Hinweise!
Dann werde ich es ausprobieren :slight_smile:

VG, Bauherr

Ergänzend zu den super Ausführungen von @bbernhard hier noch was, meiner Meinung nach, Sehenswertes zum Thema Strahlung.

Moin!

Ich habe mich länger nicht gemeldet aber bin endlich zur Lösung des Problem gekommen.

Ich habe für die Analyse auch ein HLK-LD2410C und ESP32 gekauft. Wie am Ende rausgekommen ist, war es gr nicht nötig. Dafür könnte ich aber einige Erfahrungen sammeln.

Als erstes was man mit den Sensoren wissen sollte, ist dass die Anschlüße TX,RX bei den LD2410C und LD2410S quer mit den TX,RX Anschlussen des Emfänger verbinden sollte.
D.h. TX (z. B. LD2410S) → RX (Pico2) und RX (z. B. LD2410S) → TX (Pico2). Es ist zwar etwas ungewöhnlich aber in dem Manual des Herstellers steht es auch drin.

Im Bezug auf die Fuktion hatte in mein Test-Code ein Fehler gehabt. Das Output lifert keine ASCII Zeichen sondern reine Bytes und damit die Funktion “rxData.decode(‘utf-8’)” mir einfach nichts geliefert hat.

Hier ein funktionierendes Test-Code:

from machine import UART, Pin
from time import sleep

uart = UART(1, baudrate=256000, tx=Pin(8), rx=Pin(9))
#uart = UART(1, baudrate=115200, tx=Pin(20), rx=Pin(21))

while True:
    if uart.any():
        rxData = uart.read()
        if rxData != None:
            print(rxData.hex())
    sleep(1)

Beispiel Output für LD2410C:

f4f3f2f10d0002aa0256000071006453005500f8f7f6f5f4f3f2f10d0002aa0256000072006455005500f8f7f6f5f4f3f2f10d0002aa0256000072006457005500f8f7f6f5f4f3f2f10d0002aa0256000071006458005500f8f7f6f5f4f3f2f10d0002aa0256000071006459005500f8f7f6f5f4f3f2f10d0002aa025600007100645a005500f8f7f6f5f4f3f2f10d0002aa025600007100645b005500f8f7f6f5f4f3f2f10d0002aa0256000056006458005500f8f7f6f5f4f3f2f10d0002aa0256000056006455005500f8f7f6f5f4f3f2f10d0002aa0256000056006453005500f8f7f6f5
f4f3f2f10d0002aa0256000056006451005500f8f7f6f5f4f3f2f10d0002aa025600005600644f005500f8f7f6f5f4f3f2f10d0002aa025600005600644d005500f8f7f6f5f4f3f2f10d0002aa025600005600644c005500f8f7f6f5f4f3f2f10d0002aa025600005600644b005500f8f7f6f5f4f3f2f10d0002aa025600005600644a005500f8f7f6f5f4f3f2f10d0002aa0256000056006449005500f8f7f6f5f4f3f2f10d0002aa0256000056006448005500f8f7f6f5f4f3f2f10d0002aa0256000056006447005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5
f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5f4f3f2f10d0002aa0256000056006446005500f8f7f6f5

Beispiel Output für LD2410S:

d7f32016820c92f0e0c7d7f32016824c92f0e0c7d7f32016820c92f0e0c7d7f32016820c92f0e0c7d7f32016820c92f0e0c7d7f32016824c92f0e0c7d7f32016824c92f0e0c7d7f32016820c92f0e0c7d7f32016820c92f0e0c7d7f32016820c92f0e0c7
d7f32016820c92f0e0c7d7f32016820c92f0e0c7d7f32016822c928074c7d7f32016822c928074c7d7f320168234128074c7d7f32016823c928074c7d7f320168234128074c7d7f320168234128074c7d7f320168234128074c7d7f320168234928074c7
d7f320168234128074c7d7f320168234928074c7d7f32016823c128074c7d7f32016823c128074c7d7f320368036928074c7d7f320168034928074c7d7f32016803c128074c7d7f32016804c928074c7d7f32016804c128074c7d7f320168044128074c7

Das wesentliche ist aber, dass das vom Hersteller beschriebene Protokoll für LD2410C deckt sich mit Output aus Test-Code ab. Beim LD2410S weicht aber das Output von der Spezifikation des Herstellers ab. Mind. die Header des Frames decken sich nicht ab. Weitere Teile habe ich nicht mehr geprüft.

Ich habe sogar die Treiber für LD2410S nach der Spezifikation geschrieben und war ganze Zeit iritiert warum es nicht funktioniert hat.
Vielleicht habe ich ältere Firmware auf dem Sensor und die Spezifikation damit nicht mehr aktuell ist.
Grundsätzlich lässt sich sicherlich durch Analyse des Outputs aus UART es versuchen zu ermitteln aber der Weg über den Hersteller wird warscheinlich schneller. Ich werde also versuchen den Hersteller zu kontaktieren und fragen, woher die Unterschiede kommen bzw. ob es andere Spezifikation gibt.

Danke an die alle Ideen und die Unterstützung.

VG, Bauherr