Intelligens Konyhai Világítás és Hőmérséklet mérés – ESP32-C3 & LD2410

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észESP32-C3 PinMegjegyzés
LD2410 Radar (TX)GPIO4UART kommunikáció
LD2410 Radar (RX)GPIO5UART kommunikáció
NTC SzenzorGPIO1Feszültségosztó közös pontja
LED SzalagGPIO10Tranzisztoros 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:

  1. 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.
  2. 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.
  3. 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.

Szólj hozzá!