Hloubková integrace HLK-LD2450: Ovládání milimetrového radaru přes ESPHome a Home Assistant
Milimetrový radar HLK-LD2450 je navzdory své cenové dostupnosti výkonným senzorem přítomnosti, který dokáže detekovat nejen pohyb, ale i přesné souřadnice, rychlost a úhel až tří cílů současně. Jeho potenciál však často zůstává nevyužitý kvůli omezením standardních řešení. Tento článek popisuje přístup k plné integraci LD2450 do ekosystému chytré domácnosti založeného na ESPHome a Home Assistant, poskytující hlubokou kontrolu nad všemi hardwarovými parametry radaru prostřednictvím jeho binárního protokolu, bez jakýchkoli mezivrstev.
Možnosti a omezení HLK-LD2450 ve standardních scénářích
Senzor LD2450 pracuje na frekvenci 24 GHz, což zajišťuje detekční dosah od 0,5 do 8 metrů a široký horizontální úhel záběru ±60°. Komunikace s ním probíhá přes UART rychlostí 256000 baudů pomocí binárního protokolu, což jej odlišuje od zařízení ovládaných AT příkazy. Jednou z klíčových hardwarových funkcí jsou tři konfigurovatelné zóny, které lze definovat jako obdélníky v milimetrech. Radar je schopen samostatně filtrovat cíle a poskytovat data pouze o těch, které se nacházejí uvnitř těchto zón.
Hlavní problém, se kterým se uživatelé potýkají při práci s LD2450 „z krabice“, spočívá v omezeném přístupu k jeho rozšířeným funkcím. Většina hotových řešení se soustředí výhradně na čtení datového toku a ignoruje možnosti dynamického nastavení. Hardwarové zóny buď zůstávají nedotčeny, nebo jsou konfigurovány jednorázově pomocí specializovaného nástroje HLK-LD2450_TOOL, který je často dostupný pouze pro Windows. Kriticky důležité parametry, jako je citlivost, energetický práh, provozní režim (Normal, High Sensitivity, Low Power, High Precision) a doba udržení cíle, jsou uloženy v registrech zařízení, ale obvykle nejsou dostupné pro změnu ze systémů domácí automatizace. To výrazně snižuje flexibilitu použití senzoru ve složitých scénářích, kde je vyžadována adaptivní reakce na měnící se prostředí.
Cíle hloubkové integrace:
Pro plné využití potenciálu LD2450 byly formulovány následující klíčové úkoly, které nelze vyřešit standardními metodami:
- Dynamická správa zón: Možnost měnit souřadnice a velikosti hardwarových zón přímo z Home Assistant. To umožňuje přizpůsobit detekční oblast různým scénářům, například pro noční režim nebo při změně uspořádání nábytku.
- Jemné nastavení citlivosti: Regulace citlivosti radaru, energetického prahu, doby udržení cíle a rychlostního filtru pro minimalizaci falešných poplachů a optimalizaci detekce v konkrétních podmínkách.
- Přepínání provozních režimů: Změna režimů Normal, High Sensitivity, Low Power, High Precision pro přizpůsobení požadavkům na spotřebu energie nebo přesnost.
- Správa frekvence aktualizace: Nastavení frekvence získávání dat pro rovnováhu mezi rychlostí odezvy a zatížením systému.
- Uložení konfigurace: Možnost zápisu změněných nastavení do interní paměti radaru pro jejich zachování po odpojení napájení.
- Monitorování více cílů: Získávání dat o třech cílech současně s jejich souřadnicemi v reálném čase, což je kriticky důležité pro složité scénáře přítomnosti.
Výhody nativního komponentu ESPHome a přechodu na ESP-IDF
Pro realizaci uvedených možností byl vyvinut nativní komponent ld2450 pro ESPHome. Tento přístup umožňuje přímou interakci s UART senzoru, odesílání binárních příkazů a zpracování odpovědí bez jakýchkoli mezilehlých protokolů nebo abstrakcí. Přímý přístup k registrům zajišťuje plnou kontrolu nad zařízením a mění jej z „černé skříňky“ na plně ovladatelný senzor.
Klíčovým aspektem stabilního provozu při vysokých rychlostech UART (256000 baudů) se stala migrace z frameworku Arduino na ESP-IDF. Framework Arduino, ačkoliv je vhodný pro rychlé prototypování, často vykazuje nestabilitu při práci s UART na takových rychlostech, což vede ke ztrátě dat nebo chybám v komunikaci. Přechod na ESP-IDF přinesl následující výhody:
- Zvýšená stabilita UART: ESP-IDF zajišťuje spolehlivější a předvídatelnější práci s periferiemi, což je kriticky důležité pro vysokorychlostní přenos dat z radaru.
- Optimalizace zdrojů: Firmware postavený na ESP-IDF zabírá méně místa ve flash paměti (přibližně o 17 %) a spotřebovává méně operační paměti. To uvolňuje zdroje ESP32 pro plnění dalších úkolů a zvyšuje celkový výkon systému.
- Perspektiva do budoucna: ESPHome aktivně přechází na ESP-IDF jako výchozí pro své komponenty, což činí tuto volbu strategicky správnou a zajišťuje kompatibilitu s budoucími aktualizacemi platformy.
Detailní analýza binárního protokolu a správa registrů
Interakce s HLK-LD2450 probíhá prostřednictvím odesílání specifických binárních příkazů. Každý příkaz má striktně definovanou strukturu:
Header: FD FC FB FA
Length: 2 bajty (little-endian)
Command: 2 bajty
Data: N bajtů
Footer: 04 03 02 01
Příklady příkazů pro nastavení klíčových parametrů:
- Nastavení citlivosti (příkaz 0x64): Tento parametr umožňuje regulovat odezvu radaru na detekci objektů v osmi různých rozsazích vzdálenosti. Flexibilní nastavení citlivosti minimalizuje falešné poplachy a optimalizuje práci senzoru v závislosti na okolním prostředí.
```c
uint8_t cmd_sensitivity[] = {
0xFD, 0xFC, 0xFB, 0xFA,
0x0A, 0x00,
0x64, 0x00,
sens, sens, sens, sens, sens, sens, sens, sens, // 8 hodnot citlivosti
0x04, 0x03, 0x02, 0x01
};
```
- Nastavení energetického prahu (příkaz 0x60): Energetický práh slouží k filtrování slabých odrazů, které mohou být způsobeny drobnými rušeními nebo velmi malými objekty. Zvýšení tohoto prahu snižuje pravděpodobnost falešných poplachů.
```c
uint8_t cmd_energy[] = {
0xFD, 0xFC, 0xFB, 0xFA,
0x04, 0x00,
0x60, 0x00,
(uint8_t)(energy & 0xFF),
(uint8_t)((energy >> 8) & 0xFF),
0x04, 0x03, 0x02, 0x01
};
```
Obdobně se prostřednictvím binárního protokolu nastavují i další kriticky důležité parametry:
- Doba udržení cíle (příkaz 0x61): Určuje, jak dlouho bude radar hlásit přítomnost cíle poté, co zmizí z detekční zóny.
- Rychlostní filtr (příkaz 0x62): Umožňuje ignorovat objekty pohybující se rychlostí pod stanoveným prahem, což je užitečné pro odfiltrování pomalých, irelevantních pohybů.
- Provozní režim (příkaz 0x65): Přepínání mezi režimy Normal, High Sensitivity, Low Power, High Precision pro optimalizaci pro konkrétní úkoly.
- Frekvence aktualizace (příkaz 0x66): Nastavení frekvence, s jakou radar předává data o cílech.
Všechna tato nastavení jsou integrována do Home Assistant a lze je měnit prostřednictvím uživatelského rozhraní. Po provedení změn stačí stisknout tlačítko „Zapsat konfiguraci do radaru“, aby se nové parametry uložily do EEPROM senzoru a byly platné i po restartu.
Rozšířená konfigurace hardwarových zón a Multi-Target Tracking
LD2450 nabízí možnost definovat až tři hardwarové detekční zóny. Každá zóna představuje obdélník definovaný souřadnicemi (X1, Y1, X2, Y2) v milimetrech vzhledem k senzoru, a také časovým limitem přítomnosti. Radar zpracovává data na hardwarové úrovni, odfiltrovává cíle, které se nacházejí mimo definované zóny, což snižuje zatížení mikrokontroléru a zvyšuje přesnost detekce.
Příklad kaskádové konfigurace zón podle hloubky:
- Zóna 1 (blízká): Pokrývá oblast 2 m × 0,75 m v hloubce 250–1000 mm. Ideální pro detekci objektů v bezprostřední blízkosti.
- Zóna 2 (střední): Rozšiřuje pokrytí na 4 m × 2 m v hloubce 1000–3000 mm. Používá se pro širší kontrolu prostoru.
- Zóna 3 (vzdálená): Zahrnuje 6 m × 3 m v hloubce 3000–6000 mm. Umožňuje monitorovat vzdálené oblasti.
Souřadnice a časové limity zón jsou plně dostupné pro nastavení přes Home Assistant jako number-entity. K dispozici jsou tlačítka pro aplikaci výchozích zón a pro jejich uložení s následným restartem radaru.
Ve výchozím nastavení může LD2450 poskytovat data pouze o jednom cíli. Pro sledování více objektů je nutné aktivovat režim Multi-Target speciálním příkazem. Po zapnutí tohoto režimu začne radar přenášet informace o třech samostatných cílech. Je důležité si uvědomit, že v režimu Multi-Target je frekvence aktualizace dat omezena na 10 Hz a minimální interval dotazování senzorů je 100 ms. Konfigurace ESPHome zahrnuje kontroly, které zabraňují porušení těchto limitů při aktivním režimu Multi-Target.
Pro každý detekovaný cíl jsou k dispozici následující data:
- X, Y: Souřadnice cíle v milimetrech.
- Speed: Rychlost pohybu cíle.
- Angle: Úhel k cíli.
- Resolution: Rozlišení detekce.
Všechny tyto parametry jsou přenášeny do Home Assistant jako samostatné senzory, což umožňuje detailní analýzu polohy a pohybu objektů v prostoru.
Vizualizace a praktické využití v Home Assistant
Integrace s Home Assistant se neomezuje pouze na nastavení. Pro názornou prezentaci dat se používá karta Plotly (dostupná přes HACS), která umožňuje vizualizovat detekované cíle jako body a nakonfigurované zóny jako průsvitné obdélníky. Oblast pokrytí radaru je zobrazena přerušovanou čarou, což poskytuje úplný přehled o aktuálním stavu senzoru. Aktualizace vizualizace probíhá každých několik sekund, což si uživatel může nastavit.
Seznam nastavitelných parametrů z Home Assistant:
- Citlivost radaru: Rozsah 0–9.
- Energetický práh: Rozsah 100–10000.
- Doba udržení cíle: Rozsah 0–60 sekund.
- Rychlostní filtr: Rozsah 0–100 cm/s.
- Provozní režim: Normal, High Sensitivity, Low Power, High Precision.
- Frekvence aktualizace: 1–20 Hz (v režimu Multi-Target až 10 Hz).
- Souřadnice a časové limity tří zón.
- Zapnutí/vypnutí režimu Multi-Target a Bluetooth (v případě potřeby).
Dále jsou implementována tlačítka pro pohodlné ovládání: „Použít výchozí zóny“, „Zapsat konfiguraci do radaru“, „Restartovat radar“ a „Obnovit tovární nastavení“. To zajišťuje plnou kontrolu nad senzorem prostřednictvím intuitivního rozhraní Home Assistant.
Pomocné nástroje a fyzická integrace
Před konečnou instalací a připojením k ESP32 lze HLK-LD2450 předem nakonfigurovat nebo otestovat pomocí USB-UART adaptéru. Oficiální HLK-LD2450_TOOL je k dispozici pro Windows. Pro uživatele Linuxu/WSL byl vyvinut skript connect_radar.sh (používající usbipd) a Python skript radar.py, který umožňuje monitorovat datový tok a analyzovat binární protokol. Je důležité poznamenat, že datový protokol používá markery AA FF a souřadnice jsou přenášeny jako signed 16bitové hodnoty.
Pro fyzickou integraci senzoru do projektu jsou k dispozici hotová řešení. V repozitáři projektu jsou dostupné STL soubory pro 3D tisk pouzder a krytů, což výrazně zjednodušuje vytvoření úhledného a funkčního zařízení. Podrobné doporučení pro tisk a montáž naleznete v souboru README ve složce case_stl.
Co je důležité
- Plná kontrola nad HLK-LD2450: Nativní komponent ESPHome umožňuje ovládat všechny registry radaru prostřednictvím binárního protokolu a odhaluje tak jeho plný potenciál.
- Stabilita s ESP-IDF: Přechod na ESP-IDF je kriticky důležitý pro spolehlivý provoz UART při vysokých rychlostech (256000 baudů), nabízí lepší stabilitu a optimalizaci zdrojů ve srovnání s frameworkem Arduino.
- Dynamické hardwarové zóny: Možnost nastavení a změny až tří hardwarových detekčních zón přímo z Home Assistant výrazně zvyšuje flexibilitu použití senzoru v různých scénářích.
- Multi-Target Tracking: Radar je schopen sledovat až tři cíle současně, poskytuje jejich přesné souřadnice, rychlost a úhel, což otevírá nové možnosti pro komplexní systémy přítomnosti.
- Bezproblémová integrace s Home Assistant: Všechny parametry a data senzoru jsou dostupné a konfigurovatelné prostřednictvím uživatelského rozhraní Home Assistant, včetně vizualizace zón a cílů pomocí Plotly.
— Editorial Team
Zatím žádné komentáře.