1. Hardver Bekötési Rajz (Pinout)
A stabil működéshez 5V-os (vagy 5.2V-os) tápegység javasolt, közös testtel.
- I2S Hangszóró (PCM5102 / MAX98357):
BCK(BCLK) -> GPIO25LCK(LRCK) -> GPIO26DIN(DOUT) -> GPIO27GND-> ESP32 GNDVIN-> 5V / 5.2V (külső táp)
- WS2812B LED Gyűrű (12 LED):
DI(Data In) -> GPIO13GND-> ESP32 GND (Közös test elengedhetetlen!)5V-> 5.2V (külső táp)
2. ESPHome YAML Konfiguráció
Ez a fájl tartalmazza a hardvervezérlést, de az automatizmust már a Home Assistantra bízzuk a rugalmasság miatt.
YAML
esphome:
name: okos-hangszoro
friendly_name: Okos Hangszoro
esp32:
board: esp32dev
framework:
type: arduino
wifi:
ssid: "XXXXXX" # Álcázott SSID
password: "XXXXX" # Álcázott jelszó
ota:
- platform: esphome
logger:
level: DEBUG
api:
reboot_timeout: 0s
# --- HANGSZÓRÓ ---
i2s_audio:
- id: i2s_bus
i2s_lrclk_pin: GPIO26
i2s_bclk_pin: GPIO25
media_player:
- platform: i2s_audio
name: "Okos Hangszoro"
id: okos_media_player
i2s_audio_id: i2s_bus
i2s_dout_pin: GPIO27
dac_type: external
# --- LED GYŰRŰ (Stabil NeopixelBus platform) ---
light:
- platform: neopixelbus
type: GRB
variant: WS2812
pin: GPIO13
num_leds: 12
name: "Hangszóró LED Gyűrű"
id: led_ring
method: bitbang # A hang és LED ütközés elkerülése végett
effects:
- pulse:
name: "Lélegző Fény"
- addressable_rainbow:
name: "Szivárvány"
- addressable_flicker:
name: "Gyertyafény"
3. Home Assistant Scriptek (Effekt gyűjtemény)
A scriptekkel hozhatod létre a bonyolultabb villogásokat. (A HA scripts.yaml fájljába vagy a kezelőfelületen):
YAML
# Kéken lüktető effekt zenéhez
speaker_music_active:
alias: "Zene Aktivitás Fény"
sequence:
- service: light.turn_on
target:
entity_id: light.hangszoro_led_gyuru
data:
effect: "Lélegző Fény"
rgb_color: [0, 0, 255]
brightness_pct: 80
# Gyors piros villogás hiba vagy riasztás esetén
speaker_alarm:
alias: "Riasztás Effekt"
sequence:
- repeat:
count: 10
sequence:
- service: light.turn_on
target:
entity_id: light.hangszoro_led_gyuru
data:
rgb_color: [255, 0, 0]
brightness_pct: 100
- delay: "00:00:00.3"
- service: light.turn_off
target:
entity_id: light.hangszoro_led_gyuru
- delay: "00:00:00.3"
4. Hol keress további effekteket?
Ha újabb trükköket szeretnél, ezeket a kulcsszavakat és helyeket használd:
- HA Blueprints: A Home Assistant felületén: Beállítások -> Automatizmusok -> Blueprints -> Explore. Keress rá:
Media player light sync. - Google/GitHub kulcsszavak: *
Home Assistant LED ring script examplesESPHome addressable light effects libraryWLED effect patterns for ESPHome
- Fórumok: Home Assistant Community – Scripts exchange
3. Összetett effekt: Szivárvány és lüktetés kombinálva
A HA-ból is hivatkozhatsz az ESP-ben megírt effektekre (pl. Szivárvány), de paraméterezheted is:
alias: "Party_Mode"
sequence:
- service: light.turn_on
target:
entity_id: light.hangszoro_led_gyuru
data:
effect: "Szivárvány"
brightness_pct: 100
- delay: "00:00:10"
- service: light.turn_off
target:
entity_id: light.hangszoro_led_gyuru
2. Script: „Bejelentés előtt” (Lágy felúszás)
Ezt érdemes a TTS (beszéd) elé tenni:
alias: "TTS_Pre_Effect"
sequence:
- service: light.turn_on
target:
entity_id: light.hangszoro_led_gyuru
data:
rgb_color: [0, 255, 0]
brightness_pct: 100
transition: 2 # 2 másodperc alatt úszik fel a fény
- delay: "00:00:02"
1. Script: „Riasztás” (Piros-kék villogás)
Ez a script addig fut, amíg le nem állítod, és váltogatja a színeket.
alias: "Speaker_Alarm_Effect"
sequence:
- repeat:
while:
- condition: state
entity_id: script.speaker_alarm_effect
state: "on"
sequence:
- service: light.turn_on
target:
entity_id: light.hangszoro_led_gyuru
data:
rgb_color: [255, 0, 0]
brightness_pct: 100
- delay: "00:00:00.5"
- service: light.turn_on
target:
entity_id: light.hangszoro_led_gyuru
data:
rgb_color: [0, 0, 255]
brightness_pct: 100
- delay: "00:00:00.5"
Hogyan tedd bele az automatizmusba?
Ha megvannak a scriptek, az automatizmusod pofonegyszerű lesz:
- Trigger: Hangszóró állapota
playing-re vált. - Action:
script.turn_on->Speaker_Alarm_Effect.