Files
esphome-configs/mcu-echo.yaml

163 lines
3.3 KiB
YAML

substitutions:
device: echo
name: Echo
name_short: Echo
area: Office R
comment: "${area} | Speaker"
esphome:
name: mcu-${device}
area: ${area}
comment: ${comment}
esp32:
board: m5stack-atom
framework:
# type: arduino
type: esp-idf
version: 5.3.1
platform_version: 6.9.0
external_components:
- source: components
# - source:
# type: git
# url: https://github.com/gnumpi/esphome_audio
# ref: dev-next
# components: [ adf_pipeline, i2s_audio ]
# refresh: 0s
packages:
common: !include common/common_esp8266.yaml
# api:
# services:
# # https://github.com/granadaxronos/120-SONG_NOKIA_RTTTL_RINGTONE_PLAYER_FOR_ARDUINO_UNO/blob/master/RTTTL_PLAYER/songs.h
# - service: play_rtttl
# variables:
# song: string
# then:
# - rtttl.play:
# rtttl: !lambda 'return song;'
i2c:
sda: 26
scl: 32
scan: true #false
frequency: 100kHz
binary_sensor:
# - platform: gpio
# name: ${name} On-Board Button
# id: button_buildin
# pin:
# number: 39
# inverted: true
- platform: gpio
name: ${name} Button
id: button_ext
pin:
number: 12
inverted: true
mode:
input: true
pullup: true
on_click:
- media_player.toggle:
id: media_out
light:
# - platform: neopixelbus
# type: GRB
# pin: 27
# variant: WS2812
# num_leds: 1
# name: "${name} On-Board LED"
# id: neo_buildin
- platform: rgb
name: "${name} Light"
id: led_light
red: led_red
green: led_green
blue: led_blue
- platform: status_led
id: led_status
pin:
number: 23
allow_other_uses: true
output:
- platform: ledc
id: led_red
pin: 21
- platform: ledc
id: led_green
pin: 25
- platform: ledc
id: led_blue
pin:
number: 23
allow_other_uses: true
i2s_audio:
i2s_lrclk_pin: 33
i2s_bclk_pin: 19
speaker:
- platform: i2s_audio
id: speaker_id
dac_type: external
i2s_dout_pin: 22
channel: mono
sample_rate: 48000
- platform: mixer
id: mixer_speaker_id
output_speaker: speaker_id
source_speakers:
- id: announcement_spk_mixer_input
- id: media_spk_mixer_input
- id: rtttl_spk_mixer_input
- platform: resampler
id: media_spk_resampling_input
output_speaker: media_spk_mixer_input
- platform: resampler
id: announcement_spk_resampling_input
output_speaker: announcement_spk_mixer_input
- platform: resampler
id: rtttl_spk_resampling_input
output_speaker: rtttl_spk_mixer_input
media_player:
- platform: speaker
id: media_out
name: ${name} Player
media_pipeline:
speaker: media_spk_resampling_input
announcement_pipeline:
speaker: announcement_spk_resampling_input
on_play:
- light.turn_on: led_light
on_idle:
- light.turn_off: led_light
rtttl:
id: my_rtttl
speaker: rtttl_spk_resampling_input
# microphone:
# - platform: i2s_audio
# i2s_din_pin: 23
# http_request:
# useragent: esphome/${device}
# timeout: 5s
# # Example configuration entry
# interval:
# - interval: 1min
# then:
# # - script.execute: say_hello_server
# - http_request.get:
# url: https://esphome.io
# verify_ssl: false