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