ESP32-Audio-Kit

ESP32-Audio-Kit

8.8 out of 10
afbeelding_2023-08-05_154549580

ESP32-Audio-Kit is een kleine audio development board gebaseerd op ESP32-A1S module. Meest audio randapparatuur zijn verdeeld over beide zijden van de ontwikkeling boord, ondersteuning TF card, hoofdtelefoon uitgang, twee microfoon ingangen en twee speaker uitgangen. Het is handig voor ontwikkelaars ontwikkelen snel. Geschikt voor thuis slimme apparaten, smart speaker oplossingen, kinderen verhaal machine prototypes, enz., is een ideale oplossing voor IoT toepassingen.

Mogelijkheden
9 out of 10
Prijs
9 out of 10
Geluidskwaliteit
8.5 out of 10

Voordelen

Makkelijk te koppelen doormiddel van ESPHome

Goede prijs

Leuk formaat

Werkt goed

Werkt met Home Assistant en ESPHome

Nadelen

Geen behuizing

Iets kennis nodig , ivm esphome.

Bad color combination

ESP32-Audio-Kit
Binnenkort komt op deze website een leuke handleiding om hem te koppelen aan home assistant. voor het gebruik als tts en multiroom audio. en dit bord werkt ook met esphome ( voor de assist functie) Code voor esphome staat hieronder.

Deze werkt ook perfect als software op dit bord https://github.com/sle118/squeezelite-esp32

Kenmerken;

  • Low-power dual-core 32-bit CPU voor toepassing processors
  • Belangrijkste frequentie tot 240MHz, rekenkracht tot 600 DMIPS
  • Ingebouwde 520 KB SRAM, 8M
  • Ondersteunt interfaces zoals UART/SPI/I2C/PWM
  • Hoofdtelefoon poort: Insert 3.5mm hoofdtelefoonaansluiting om ondersteuning linker en rechter kanaal
  • Links en rechts kanaals luidsprekers: ondersteuning output 4Ω 3W luidspreker uitgang, en ondersteuning dual channel output
  • Twee analoge microfoons, respectievelijk als audio-ingang; ondersteuning voor headset microfoon ingang
  • Ondersteuning 3.7V lithium batterij-ingang; ondersteuning 5V 2A power input, ondersteuning gelijktijdige lithium batterij opladen
  • Ondersteuning 64G sd-kaart lezen en schrijven
  • Ondersteuning meerdere slaapstand
  • Embedded Lwip en FreeRTOS
  • Ondersteuning STA/AP/STA + AP werkmodus
  • Ondersteuning Smart Config/AirKiss Een klik distributie netwerk

Esphome code:

esphome:
  name: esp32-audio-kit

esp32:
  board: esp-wrover-kit
  framework:
    type: arduino

logger:

api:

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "esp32-audio-kit Fallback Hotspot"

captive_portal:

web_server:
  port: 80

i2c:
  sda: GPIO33
  scl: GPIO32
 
external_components:
  - source: github://pr#3552
    components: [es8388]
    refresh: 0s

  - source: github://pr#4775
    components: [adc, i2s_audio, microphone]
    refresh: 0s
 
es8388:
media_player:
  - platform: i2s_audio
    name: "ESPAudioKit"
    id: AudioKit
    i2s_dout_pin: GPIO26
    dac_type: external
    mode: stereo

i2s_audio:
  i2s_lrclk_pin: GPIO25
  i2s_bclk_pin: GPIO27

microphone:
  - platform: i2s_audio
    i2s_din_pin: GPIO35
    id: mic1
    adc_type: external
    pdm: false

switch:
  - platform: gpio
    pin: GPIO21
    name: "AMP Switch"
    restore_mode: ALWAYS_ON

voice_assistant:
  microphone: mic1
    
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO39
      inverted: true
      mode:
        input: true
    name: "Jack Status"

  - platform: gpio
    pin:
      number: GPIO036
      inverted: true
    name: "Key 1"
    filters:
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO013
      inverted: true
    name: "Key 2"
    filters:
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO019
      inverted: true
    name: "Key 3"
    filters:
      - delayed_off: 10ms
      
  - platform: gpio
    pin:
      number: GPIO023
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Key 4"
    filters:
      - delayed_off: 10ms
      
  - platform: gpio
    pin:
      number: GPIO018
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Key 5"
    filters:
      - delayed_off: 10ms
      
  - platform: gpio
    pin: 
      number: GPIO005
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Key 6"
    filters:
     - delayed_off: 10ms

    on_press:
      - voice_assistant.start:
    on_release:
      - voice_assistant.stop:
    on_click:
      - media_player.toggle: AudioKit  

light:
  - platform: binary
    name: "Test LED 1"
    output: light_output_1
  - platform: binary
    name: "Test LED 2"
    output: light_output_2
 
output:
  - id: light_output_1
    platform: gpio
    pin: GPIO22
    inverted: true
  - id: light_output_2
    platform: gpio
    pin: GPIO19
    inverted: true

Met Sendspin voor music assistant

# ESP32-A1S Audio Kit - Sendspin Configuration
# Working config for ESPHome 2026.3.x with Music Assistant Sendspin support
# Board: AI-Thinker ESP32-A1S Audio Kit (ES8388 codec)
#
# GitHub: https://github.com/el-bakkali/esp32-a1s-sendspin
#
# Requirements:
#   - ESPHome 2026.3.x or later
#   - Music Assistant 2.7.0 beta 19 or later
#
# Setup:
#   1. Copy secrets.yaml.example to secrets.yaml
#   2. Fill in your WiFi and API credentials
#   3. Flash with: esphome run esp32-a1s.yaml

esphome:
  name: esp32-a1s
  friendly_name: ESP32-A1S
  on_boot:
    priority: -100
    then:
      - select.set:
          id: dac_output_select
          option: "BOTH"

esp32:
  board: esp-wrover-kit
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:



ota:
  - platform: esphome


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-A1S Fallback Hotspot"


captive_portal:

psram:

# ===== ES8388 Audio Codec Configuration =====
# Reference: https://esphome.io/components/audio_dac/es8388/

i2c:
  sda: GPIO33
  scl: GPIO32
  frequency: 100kHz
  id: bus_a

audio_dac:
  - platform: es8388
    id: es8388_dac

select:
  - platform: es8388
    es8388_id: es8388_dac
    dac_output:
      id: dac_output_select
      name: "DAC Output"
    adc_input_mic:
      name: "ADC Input MIC"

i2s_audio:
  id: i2s_output
  i2s_lrclk_pin: GPIO25
  i2s_bclk_pin: GPIO27
  i2s_mclk_pin: GPIO0

# ===== Amplifier Control =====
switch:
  - platform: gpio
    pin: GPIO21
    id: mute_switch
    name: "AMP Switch"
    restore_mode: ALWAYS_ON

# ===== Microphone =====
microphone:
  - platform: i2s_audio
    i2s_din_pin: GPIO35
    id: mic1
    adc_type: external
    pdm: false
    sample_rate: 16000
    bits_per_sample: 16bit

# ===== Hardware Buttons & Sensors =====
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO39
      inverted: true
      mode:
        input: true
    name: "Jack Status"

  - platform: gpio
    pin:
      number: GPIO036
      inverted: true
    name: "Key 1"
    filters:
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO013
      inverted: true
    name: "Key 2"
    filters:
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO019
      inverted: true
    name: "Key 3"
    filters:
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO023
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Key 4"
    filters:
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO018
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Key 5"
    filters:
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO005
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Key 6"
    filters:
      - delayed_off: 10ms

# ===== Status LED =====
light:
  - platform: status_led
    name: "Red LED"
    pin:
      number: GPIO22
      inverted: true

# --- SendSpin & Media Player Logic (Standard) ---
# ===== Sendspin External Components =====
external_components:
  - source: github://pr#14933
    components: [const, generic_image, media_source, sendspin]
    refresh: 1h

# ===== Speaker Configuration =====
speaker:
  - platform: i2s_audio
    i2s_audio_id: i2s_output
    sample_rate: 48000
    id: i2s_speaker_output
    i2s_dout_pin: GPIO26
    bits_per_sample: 16bit
    dac_type: external
    channel: stereo
    timeout: never
    buffer_duration: 100ms
    audio_dac: es8388_dac

# ===== Sendspin Configuration =====
sendspin:
  id: sendspin_hub
  task_stack_in_psram: true

media_source:
  - platform: sendspin
    id: sendspin_source

media_player:
  - platform: speaker_source
    id: sendspin_media_player
    name: Sendspin Media Player
    media_pipeline:
      speaker: i2s_speaker_output
      sources:
        - sendspin_source

# ===== Track Metadata (Optional) =====
text_sensor:
  - platform: sendspin
    type: title
    name: Track Title

  - platform: sendspin
    type: artist
    name: Artist

  - platform: sendspin
    type: album
    name: Album

  - platform: sendspin
    type: year
    name: Year

  - platform: sendspin
    type: track
    name: Track Number

    # Only necessary for sensor metadata
sensor:
  - platform: sendspin
    type: track_duration
    id: sendspin_track_duration

Vragen & Reacties

Stel een vraag of plaats een reactie

Berichten worden goedgekeurd voor publicatie.

Dit delen:

Was dit artikel nuttig?