Blog - Home Assistant 12 pic 1920x1080 px
|

Home Assistant seriál s Jakubem: Díl 12: Room Presence Radar aneb senzor přítomnosti

Úvod

V dnešním díle si vlastnoručně vyrobíme senzor přítomnosti, který se výborně hodí například pro automatické rozsvěcení a zhasínání světel v místnosti.

Co budeme potřebovat

Instalace ESPHome na desku

V minulém dílu jsme si již ukazovali, jak se instaluje základní ESPHome. Jako desku použijeme NodeMCU ESP32 Development Board, pro kterou jsem vytvořil i tisknutelnou krabičku. Odkaz na model najdete na zde.

Pro instalaci použijeme webový tool, který je za mě nejrychlejší a nejjednodušší. Otevřeme si tedy tuto stránku, připojíme desku přes microUSB do počítače a na webu klikneme na Connect.


Otevře se nám dialogové okno, kde bychom měli vidět naši desku. Pokud ji tam nevidíte, zkuste si pročíst předchozí článek, kde je popsáno, v čem by mohl být problém (ovladače, kabel, který není datový apod.). V dialogovém okně vybereme naši desku.


Pokud vše proběhlo v pořádku, objeví se nám další nabídka s modrým textem PREPARE FOR FIRST USE, na který klepneme.

Pokud se vám v další nabídce dlouho točí kolečko s nápisem Connecting, zkuste následující postup:

  1. Desku odpojte od USB kabelu (web se vám automaticky vrátí do předchozí nabídky s Connect)
  2. Držte pravé tlačítko vedle microUSB portu (to kde není napsáno EN)
  3. Připojte USB kabel, znovu klepněte na Connect a PREPARE FOR FIRST USE, a tlačítko pusťte až v momentě, kdy začne instalace.

Tento postup je někdy potřeba zkusit vícekrát, ale většinou je potřeba jen u desek, na kterých už je ESPHome nainstalován a chcete dát desku do „továrního“ nastavení s čerstvým ESPHome. Postupem popsaným výše přepnete desku do bootovacího módu.


Po úspěšné instalaci odklepneme dialogové okno a klepneme na CHANGE WI-FI.


V nabídce vyberte svou Wi-Fi síť a vyplňte heslo k Wi-Fi.


Pokud nás uvítá dialogové okno Provisioned, tak máme napůl vyhráno a deska se základním ESPHome je připravena.

Přidání a nastavení desky v HA

Nyní se přesuneme do našeho HA a to konkrétně do ESPHome Builderu.

V horní části by se nám měla objevit nabídka Discovered 1 device, kde klepneme na SHOW vpravo.


Deska se nám přidá do menu k ostatním zařízením (pokud již nějaká máme) a my klepneme na TAKE CONTROL.


Desku si libovolně pojmenujeme a klepneme znovu na TAKE CONTROL.

Pokud nám vyskočí chyba, ve většině případů stačí doplnit údaje k Wi-Fi, tj. u desky klepneme na EDIT, doplníme následující kód:

a v pravém rohu klepneme na INSTALL. Poté by se měla konfigurace zkompilovat a nainstalovat.

My tuto opravu můžeme přeskočit a rovnou si tam doplníme celý kód, který budeme potřebovat k našemu radaru:

Ve svém konfiguračním kódu upravte následující čtyři části podle vlastních údajů:

Friendly name si můžete nastavit libovolně, ale hodnota name musí přesně odpovídat názvu, který jste zadali ve webovém klientovi při první instalaci. Jinak se deska nenačte správně. Alternativně můžete do kódu přidat statickou IP adresu a bránu – a v routeru tuto IP přiřadit trvale k MAC adrese desky.

Zde nahraďte key: "" vlastním klíčem, který si můžete vygenerovat například zde.

Tato sekce definuje záchranný hotspot, který deska začne vysílat, pokud se nepřipojí ke známé Wi-Fi síti. Díky tomu se k ní budete moci připojit a opravit konfiguraci.

Sem zadejte heslo, které budete potřebovat při OTA (Over-the-Air) aktualizacích firmware.

Až budete mít vše připraveno, klikněte v pravém horním rohu na INSTALL a v nabídce zvolte možnost Wirelessly.

Kompilace může chvíli trvat – v některých případech i deset minut, tak se neděste 🙂

3D tisk krabičky

Celý projekt s krabičkou a držákem naleznete zde. Na podložkách je několik variant – jak pro NodeMCU desku, tak i pro klasický ESP32 DevKit. Včetně verze bez držáku pro obě desky.

Tisk krabičky a držáku zabere přibližně dvě hodiny a spotřeba materiálu je minimální. Veškeré důležité informace najdete přímo v projektu na MakerWorldu.

Vůle pro osazení ESP32 desky, radaru i víčka jsou minimální, takže je potřeba při sestavení použít trochu síly. Pokud nemáte perfektně kalibrovanou tiskárnu, doporučuji tisknout pomalu – model je navržen s přesností na setiny milimetru. 🙂

Soubor ve formátu .3mf je optimalizovaný pro tiskárny BambuLab. Pokud by vám nesedělo víčko nebo deska, můžete zkusit zmenšit boční stěny o 0,1 mm z každé strany – nicméně já osobně jsem tiskl několik kusů a všechny seděly bez úprav.

Kompletace

Osazení ESP32 desky a radaru

Nyní můžeme desku odpojit od microUSB kabelu a vložit ji do vytištěné krabičky. Stejně tak následně vložíme i LD2410C radar. Důležité: nejdříve vždy vložte ESP32 desku, a až potom radar. Desku je ideální vkládat mírně šikmo – tedy nejprve zasunout stranu s USB portem a pak druhou stranu mírným zatlačením dorovnat. Pokud deska nesedí rovně, jemně zatlačte na protilehlou stranu, tím se usadí.

Vyjmutí je trochu složitější. U NodeMCU se mi osvědčil malý imbusový klíč – dá se zasunout pod desku a lehce zatáhnout. U klasického ESP32 DevKitu pomáhá malý plochý šroubovák – opatrně jej vsuňte pod USB port a lehce nadzvedněte. Nicméně krabička není konstruovaná na časté výměny desek a ani by to nemělo být potřeba :).

Zapojení konektorů

Pomocí krimpovacích kleští si vyrobíme čtyři Dupont propojky (female to female). Každá bude dlouhá přibližně 4 cm, s konektory cca 6 cm.

Pokud si propojky vyrábět nechcete, můžete použít hotové. Počítejte ale s tím, že uvnitř krabičky nebude tolik místa – bude nutné kablíky smotat, aby bylo vůbec možné krabičku zavřít.

LD2410C pinESP32 pinPoznámka
VCC5Vnapájení
GNDGNDuzemnění
TXGPIO17 (RX)přijímá data z radaru
RXGPIO16 (TX)posílá data do radaru


Poznámka: TX na radaru připojujeme na RX na ESP32 a naopak. Pokud radar nekomunikuje, zkontrolujte zapojení těchto pinů.

Radar nepotřebuje žádné další komponenty ani rezistory – zapojení funguje přímo. Jakmile připojíte všechny 4 duponty a napájíte desku, radar by měl začít komunikovat automaticky přes ESPHome podle konfigurace v YAML kódu.

Složení držáku

Sestavení držáku je jednoduché:

  1. Matici se závitem provlečte skrz tyčku s kulovou hlavou.
  2. Přišroubujte k čtvercové základně.
  3. Zacvakněte tyčku do čtvercového podstavce pro krabičku (opět použijte mírnou sílu).
  4. Nakonec nacvakněte samotnou krabičku do držáku – a je hotovo.


Nyní pouze zacvakneme víčko a máme hotovo. Desku připojíme přes microUSB do 5V/1A zdroje a měla by ožít jak deska, tak radar. Poslední krok je doladit detekční vzdálenosti podle toho, co potřebujeme sledovat.

Přidání radaru do HA a nastavení

Přejdeme do Settings → Devices & Services → ESPHome. Nahoře by se mělo zobrazit nově objevené zařízení. Klikneme vpravo na ADD. Zařízení se přidá do Devices, kde můžeme kliknout na modré 1 device.


Radar má maximální dosah přibližně 6 metrů a v jeho nastavení najdeme 16 posuvníků (slidery), rozdělených podle zón g1–g8. Každá zóna má dvě hodnoty – still (pro detekci nehybné osoby) a move (pro detekci pohybu).

S nastavením je potřeba chvíli experimentovat. Například já používám pouze g1–g3 s nižšími hodnotami, zatímco g4–g8 mám nastavené na hodnotu 100 – což v praxi znamená, že tyto zóny jsou „vypnuté“. U jiného radaru mám ale zcela jiné nastavení. Vždy záleží na konkrétním prostoru a umístění zařízení.

Přehled vzdáleností jednotlivých zón:

OznačeníVzdálenost
g00 m
g10 – 0.75 m
g20.75 – 1.5 m
g31.5 – 2.25 m
g42.25 – 3 m
g53 – 3.75 m
g63.75 – 4.5 m
g74.5 – 5.25 m
g85.25 – 6 m

Automatizace

Pro vytvoření automatizace se přesuneme do Settings -> Automations & scenes -> Create automation.

V sekci When klikneme na Add Trigger a vyhledáme State.


V políčku Entity vyhledáme Presence a položku vybereme. Tím jsme triggeru řekli, že chceme automatizaci spustit kdykoliv se změní přítomnost (Presence) na senzoru.


Nyní se přesuneme do sekce Then do, klikneme na Add Action a vyhledáme Choose.


Já radar používám například pro rozsvěcení světel v koupelně a v chodbě. V koupelně jsou dvě světla, jedno denní (bílé) a jedno noční (oranžové). Dle času se v automatizaci spouští jednotlivé akce. Na chodbě jsou LED pásky, které umožňují měnit teplotu barvy a opět dle denní doby se mění na celkem tři režimy (den, večer, noc). O chytrých LED páscích budeme určitě mluvit v nějakém z příštích dílů.

Nepřepokládám, že budete senzor využívat stejně jako já, takže si případné akce upravte dle svého využití. Podmínky (Conditions) a automatizaci budete mít ale pravděpodobně stejné.

V bloku Choose klikneme nejprve na Add Option, poté na Add Condition a vybereme Device. V políčku Device vyhledáme podle názvu náš radar a jako podmínka (Condition) by se nám automaticky mělo vybrat Presence is occupied (pokud ne, tuto položku najdeme a vybereme v rolovacím menu). Případně si v duration můžeme nastavit čas po jak dlouhé době chceme, aby se podmínka spustila. Já mám toto políčko prázdné, protože chci, aby se světlo rozsvítilo hned :).


Dále si v políčku Action nastavíme, jaká akce se má provést po splnění podmínky (po detekci osoby). Já mám těch podmínek několik, takže je sem nebudu všechny vypisovat a naleznete je v celém kódu níže.

Nyní klepneme na Add Option a stejným způsobem si nastavíme co se má stát, pokud již nebude detekována žádná osoba. Postup bude úplně stejný, jen v podmínce vybereme Presence is not occupied a nastavíme si příslušnou akci (například vypnutí světla).

Celý kód automatizace pro světla v chodbě

Celý kód automatizace pro světla v koupelně

Závěr

V dnešním díle jsme odvedli pořádný kus práce. Nahráli jsme na naši ESP32 desku ESPHome a připravili kompletní konfiguraci pro radar. Dále jsme vytiskli a sestavili krabičku (případně i držák), osadili desku i radar, připravili dupont propojky a nastavili detekční vzdálenosti.

V příštím díle se pustíme do něčeho složitějšího – zaměříme se na kvalitu vzduchu a začneme měřit hladinu CO₂. A samozřejmě opět s pomocí levné ESP32 desky a tentokrát o něco dražšího senzoru 🙂

Tak pohybu zdar!

Podobné příspěvky

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

2 Komentáře

  1. Dobrý den, je možné použít místo LD2410C 24GHz senzoru jiný – Seed studio 24GHz mmWave Sensor? A je postup pak stejný? Nějak jsem při jeho koupi přecenil své síly a rád bych ho využil podle tohoto návodu. Mám ho propojený s XIAO ESP32-S3. Mnohokrát děkuji za případnou radu.

    1. Dobrý den, jak deska, tak senzor mají jiné rozměry, takže krabička nebude pasovat. Konfigurace v ESPHome bude taky jiná. Nemám osobně s deskou ani senzorem žádné zkušenosti, ale teoreticky by mělo stačit nahradit kód pro senzor tímto kódem:

      sensor:
      - platform: seeed_mr24hpc1
      custom_presence_of_detection:
      name: "Static Distance"
      movement_signs:
      name: "Body Movement Parameter"
      custom_motion_distance:
      name: "Motion Distance"
      custom_spatial_static_value:
      name: "Existence Energy"
      custom_spatial_motion_value:
      name: "Motion Energy"
      custom_motion_speed:
      name: "Motion Speed"
      custom_mode_num:
      name: "Current Custom Mode"

      A typ desky změnit na tu Vaši:


      esphome:
      # Name of the ESP32-S3 device
      name: esp32s3

      # PlatformIO build options
      platformio_options:
      build_flags: -DBOARD_HAS_PSRAM
      board_build.arduino.memory_type: qio_opi
      board_build.f_flash: 80000000L
      board_build.flash_mode: qio

      # Configuration for ESP32
      esp32:
      board: esp32-s3-devkitc-1
      framework:
      type: arduino