Dátum: 2026. február 12.
Kategória: Smart Home / DIY Elektronika
Projekt áttekintése
A cél egy olyan offline is működő vezérlőegység készítése volt, amely mozgás (jelenlét) alapján kapcsolja a konyhai LED szalagot, miközben folyamatosan méri a helyiség hőmérsékletét egy analóg NTC szenzorral.
Főbb funkciók:
- Jelenlét érzékelés: LD2410 mmWave radarral (nem csak mozgást, hanem az álló embert is érzékeli).
- Hőmérséklet mérés: 10k-s NTC ellenállással, feszültségosztó kapcsolásban, szoftveres simítással.
- Offline Hotspot mód: Az eszköz saját Wi-Fi hálózatot szór (AP mód), így internet és központi szerver nélkül is elérhető böngészőből.
- Script-alapú időzítés: Megoldás arra, hogy a LED ne kapcsoljon le, amíg valaki a helyiségben tartózkodik.
Hardver felépítés és bekötés
| Alkatrész | ESP32-C3 Pin | Megjegyzés |
| LD2410 Radar (TX) | GPIO4 | UART kommunikáció |
| LD2410 Radar (RX) | GPIO5 | UART kommunikáció |
| NTC Szenzor | GPIO1 | Feszültségosztó közös pontja |
| LED Szalag | GPIO10 | Tranzisztoros PWM vezérlés |
NTC Bekötés (Downstream):
3.3V -> 10k fix ellenállás -> GPIO1 -> NTC -> GND.
ESPHome Konfiguráció (YAML)
YAML
esphome:
name: krisztz-konyha
friendly_name: "Konyha Világítás"
esp32:
board: esp32-c3-devkitm-1
variant: esp32c3
framework:
type: arduino
# Wi-Fi: Stabil Offline Hotspot mód
wifi:
ap:
ssid: "Konyha-LED-Vezerlo"
password: ""
reboot_timeout: 0s
captive_portal:
web_server:
port: 80
# --- SZENZOROK ---
sensor:
- platform: uptime
name: "Uzemido"
# NTC Hőmérő lomhított méréssel
- platform: adc
pin: GPIO1
id: ntc_voltage
attenuation: 11db
update_interval: 10s
filters:
- moving_average:
window_size: 15
send_every: 1
- platform: resistance
sensor: ntc_voltage
id: ntc_resistance
configuration: DOWNSTREAM
resistor: 10kOhm
reference_voltage: 3.3V
- platform: ntc
sensor: ntc_resistance
name: "Konyha Homerseklet"
unit_of_measurement: "°C"
accuracy_decimals: 1
calibration:
- 10.0kOhm -> 25°C
- 4.1kOhm -> 45°C
- 25.0kOhm -> 5°C
# --- PERIFÉRIÁK ---
uart:
tx_pin: GPIO5
rx_pin: GPIO4
baud_rate: 256000
id: uart_bus
ld2410:
uart_id: uart_bus
output:
- platform: ledc
pin: GPIO10
id: tranzisztor_pwm
frequency: 1000Hz
light:
- platform: monochromatic
name: "Konyha LED"
output: tranzisztor_pwm
id: led_szalag
default_transition_length: 1.5s
binary_sensor:
- platform: ld2410
has_target:
name: "Jelenlet"
id: presence
on_press:
then:
- script.stop: lekapcsolo_timer
- light.turn_on: led_szalag
on_release:
then:
- script.execute: lekapcsolo_timer
# --- LOGIKA ---
script:
- id: lekapcsolo_timer
mode: restart
then:
- delay: 30s
- light.turn_off: led_szalag
api:
ota:
- platform: esphome
Fontos tanulságok (Emlékeztető)
1. A „Script Restart” technika
Az egyszerű delay használata az on_release ágban hibás működéshez vezetett: ha a mozgás megszűnése után (visszaszámlálás alatt) újra mozgás történt, a lámpa akkor is lekapcsolt a korábbi folyamat miatt. A megoldás a Script használata mode: restart beállítással, ami minden újabb érzékelésnél nullázza az időzítőt.
2. Wi-Fi és mDNS korlátok
Offline módban a .local címek bizonytalanok. Az eszközt legbiztosabban a fix 192.168.4.1 IP-címen lehet elérni, miután csatlakoztunk a hotspotjára. Ékezeteket az SSID-ben és az ID-kben kerülni kell.
3. Analóg jel simítása
Az NTC alapból hajlamos a tizedfokos ugrálásra a környezeti zajok miatt. A moving_average: window_size: 15 szűrő beiktatása tette „lomhává” és stabillá a mérést, így elkerülhető a felesleges kapcsolgatás a határértékeken.
Kapcsolási rajz vázlat (Vizuális segédlet)
A rajzon jól látható, hogyan oszlanak meg a feladatok az ESP32-C3 lábai között. Külön érdemes figyelni a feszültségosztó és a tranzisztoros LED meghajtás elválasztására.
A bekötés részletei:
- Hőmérséklet (Analóg): A 10k ellenállás a „felhúzó”, az NTC pedig a „lehúzó”. A GPIO1-en mérjük a kettő közötti feszültséget.
- Jelenlét (Digitális/Soros): Az LD2410 UART-on beszélget az ESP-vel. Fontos, hogy a tápellátása stabil legyen, mert a radar modul csúcsidőben sokat fogyaszthat.
- Világítás (PWM): A GPIO10 egy logikai szintű MOSFET-et vagy tranzisztort hajt meg, ami a 12V/24V-os LED szalagot kapcsolgatja nagy sebességgel.
Amit még érdemes megjegyezni (WordPress „Pro Tips” szekció)
- Az LD2410 hangolása: Ha a LED túl hamar vagy túl későn kapcsol le, nem csak a YAML-ben a 30 másodperccel játszhatsz. A radar érzékenysége külön állítható a „Gate” paraméterekkel az ESPHome felületén (vagy a gyári appal Bluetooth-on), ha túl sok a téves riasztás (pl. a függöny mozgása miatt).
- Tápellátás: Mivel a radar és a Wi-Fi (még AP módban is) áramtüskéket okozhat, javasolt egy 100uF-os kondenzátor elhelyezése az ESP32-C3 3.3V és GND lábai közé, ha instabilitást tapasztalnál.