Zpět na články

ESP32 + YX5300 / YX6300 MP3 modul (Arduino)

ESP32 a YX5300: přehrávání MP3 z SD karty, zapojení, kód i projekt přehrávače.

ESP32 + YX5300 / YX6300 MP3 modul (Arduino)

V tomto návodu se naučíš, jak připojit MP3 modul YX5300 nebo YX6300 k ESP32 a přehrávat zvukové soubory z microSD karty. Modul komunikuje přes sériovou linku (UART) a umožňuje přehrávat .mp3 nebo .wav soubory pomocí jednoduchých příkazů.

Co je YX5300 / YX6300

YX5300 (nebo novější YX6300) je levný MP3 přehrávač modul:

  • přehrává .mp3 a .wav soubory
  • používá microSD kartu
  • komunikuje přes UART (TX/RX)
  • funguje s ESP32, Arduino i ESP8266

Výhodou je, že:
➡️ samotný modul dekóduje audio (ESP32 to nemusí řešit)

ESP32 Blog image

Zapojení k ESP32

Zapojení je jednoduché – používá se sériová komunikace:

  • TX (modul) → GPIO 16 (RX na ESP32)
  • RX (modul) → GPIO 17 (TX na ESP32)
  • VCC → 5V (doporučeno)
  • GND → GND

Důležité:

  • někdy jsou piny na modulu špatně označené
  • pokud to nefunguje, zkus TX↔TX a RX↔RX
ESP32 Blog image

Parametry modulu (přepsané z tabulky)

  • napájení: cca 3.2 V až 5.2 V
  • doporučeno: 5 V pro stabilitu
  • microSD karta: do 32 GB
  • formát karty: FAT16 nebo FAT32
  • formáty souborů: .mp3 a .wav
  • vzorkovací frekvence: 8 až 48 kHz

Příprava microSD karty

Aby modul fungoval správně, musí být data správně uspořádána:

  • složky musí mít 2 číslice (např. 01, 02)
  • soubory musí mít 3 číslice na začátku

Příklad struktury:

  • složka 01 obsahuje:
    • 001xxx.mp3
    • 002xxx.mp3
    • 003xxx.mp3
  • složka 02 obsahuje:
    • 004xxx.mp3
    • 005xxx.mp3

Omezení:

  • max. 99 složek
  • max. 255 souborů ve složce
ESP32 Blog image

Připojení reproduktoru nebo sluchátek

Modul nemá vlastní reproduktor, ale má jack konektor:

  • můžeš připojit sluchátka
  • nebo externí reproduktor
ESP32 Blog image

Instalace knihovny

Použij knihovnu:

YX5300_ESP32 (bluejunimo)

Postup:

  1. Arduino IDE → Library Manager
  2. vyhledej „YX5300“
  3. nainstaluj knihovnu

Funguje i pro YX6300 bez úprav.

ESP32 Blog image

Testovací kód (přehrání zvuku)

mp3.cpp
1#include <YX5300_ESP32.h> 2 3#define RX 16 4#define TX 17 5 6YX5300_ESP32 mp3; 7 8void setup() { 9 Serial.begin(115200); 10 11 // inicializace modulu 12 mp3 = YX5300_ESP32(Serial2, RX, TX); 13 14 // debug (volitelné) 15 mp3.enableDebugging(); 16 17 // přehraje první track 18 mp3.playTrack(1); 19} 20 21void loop() { 22}

Jak kód funguje

  • vytvoří se objekt mp3
  • použije se Serial2 (UART na ESP32)
  • zapne se debug výpis
  • příkaz playTrack(1) spustí první skladbu

Řešení problémů

Pokud modul nehraje:

  • špatné zapojení TX/RX
  • nedostatečné napájení (použij 5V)
  • špatný formát SD karty
  • špatné názvy souborů
  • nefunkční reproduktor

Projekt: MP3 přehrávač s tlačítky a potenciometrem

Můžeš si postavit vlastní přehrávač:

Co potřebuješ

  • ESP32
  • YX5300 / YX6300 modul
  • microSD karta
  • reproduktor / sluchátka
  • 3× tlačítko
  • potenciometr
  • breadboard + kabely

Zapojení ovládacích prvků (přepsané z tabulky)

  • potenciometr → GPIO 4
  • tlačítko Play/Pause → GPIO 5
  • tlačítko Previous → GPIO 18
  • tlačítko Next → GPIO 19

MP3 modul zůstává:

  • TX → GPIO 16
  • RX → GPIO 17

Kompletní kód – MP3 přehrávač

mp3.cpp
1#include <YX5300_ESP32.h> 2 3#define RX 16 4#define TX 17 5 6const uint8_t pinBtnPlay = 5; 7const uint8_t pinBtnPrev = 18; 8const uint8_t pinBtnNext = 19; 9const uint8_t potVolume = 4; 10 11volatile bool isPlaying = true; 12const unsigned long DEBOUNCE_DELAY = 500; 13volatile unsigned long lastPressTime = 0; 14 15#define MIN_VOLUME 0 16#define MAX_VOLUME 30 17 18int current_volume = 0; 19 20YX5300_ESP32 mp3; 21 22void ARDUINO_ISR_ATTR buttonPlay() { 23 unsigned long now = millis(); 24 if (now - lastPressTime > DEBOUNCE_DELAY) { 25 if(isPlaying) { 26 mp3.pause(); 27 isPlaying = false; 28 } else { 29 mp3.resume(); 30 isPlaying = true; 31 } 32 } 33 lastPressTime = now; 34} 35 36void ARDUINO_ISR_ATTR buttonPrev() { 37 mp3.prev(); 38} 39 40void ARDUINO_ISR_ATTR buttonNext() { 41 mp3.next(); 42} 43 44void setup() { 45 Serial.begin(115200); 46 47 pinMode(pinBtnPlay, INPUT_PULLUP); 48 pinMode(pinBtnPrev, INPUT_PULLUP); 49 pinMode(pinBtnNext, INPUT_PULLUP); 50 51 attachInterrupt(pinBtnPlay, buttonPlay, FALLING); 52 attachInterrupt(pinBtnPrev, buttonPrev, FALLING); 53 attachInterrupt(pinBtnNext, buttonNext, FALLING); 54 55 mp3 = YX5300_ESP32(Serial2, RX, TX); 56 mp3.enableDebugging(); 57 58 mp3.playTrack(1); 59} 60 61void loop() { 62 int raw = analogRead(potVolume); 63 int volume = map(raw, 0, 4095, MIN_VOLUME, MAX_VOLUME); 64 65 if(volume != current_volume) { 66 mp3.setVolume(volume); 67 current_volume = volume; 68 } 69}

Co projekt umí

  • přehrát skladbu
  • pauza / pokračování
  • další / předchozí track
  • regulace hlasitosti potenciometrem

Shrnutí

YX5300 / YX6300:

  • jednoduchý MP3 modul
  • ovládání přes UART
  • ideální pro zvuk v projektech

Použití:

  • alarmy
  • notifikace
  • IoT zařízení
  • vlastní MP3 přehrávač

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.