ESP32 Tutorijal 41/55 - MP3 Player koristeći Micro SD karticu | SunFounder's ESP32 IoT Learning komplet
U ovom tutorijalu ćemo napraviti MP3 player koristeći ESP32 mikrokontroler i micro SD karticu. ESP32 će čitati audio datoteke pohranjene na micro SD kartici i emitovati zvuk kroz audio pojačalo i zvučnik. Ovaj projekat kombinuje različite komponente, uključujući ESP32, audio pojačalo i micro SD karticu, kako bi vam omogućio reprodukciju muzike na jednostavan način.
Tokom procesa, razmotrit ćemo potrebno povezivanje, kodiranje i kako riješiti uobičajene probleme. Za više vizualnih uputa, svakako pogledajte prateći video (u videu na 00:00).
Objašnjenje hardvera
Glavne komponente korištene u ovom projektu uključuju ESP32 mikrokontroler, micro SD karticu, audio pojačalo i zvučnik. ESP32 je moćan mikrokontroler s ugrađenim Wi-Fi i Bluetooth mogućnostima, što ga čini idealnim za IoT projekte. On će upravljati obradom i kontrolom reprodukcije zvuka.
Micro SD kartica se koristi za pohranjivanje audio datoteka u MP3 formatu. Povezuje se s ESP32 i omogućava programu čitanje datoteka i slanje audio podataka pojačalu. Audio pojačalo uzima digitalni signal s ESP32 i pojačava ga kako bi pokretalo zvučnik, omogućavajući da se zvuk čuje.
Detalji iz tehničke dokumentacije
| Proizvođač | SunFounder |
|---|---|
| Broj dijela | ESP32 |
| Logički/IO napon | 3.3 V |
| Napon napajanja | 5 V |
| Izlazna struja (po kanalu) | 2 A max |
| Vršna struja (po kanalu) | 3 A max |
| Smjernice za PWM frekvenciju | do 40 kHz |
| Ulazni logički pragovi | 0.3 x VCC (nisko), 0.7 x VCC (visoko) |
| Pad napona / RDS(on) / zasićenje | 0.15 V |
| Toplotna ograničenja | 85 °C |
| Pakovanje | WROOM-32 |
| Napomene / varijante | Kompatibilan s različitim audio bibliotekama |
- Provjerite da je micro SD kartica formatirana kao FAT32.
- Koristite otpornik za povezivanje audio pojačala kako biste spriječili izobličenje.
- Održavajte stabilne veze napajanja kako biste izbjegli prekide.
- Provjerite povezivanje za labave veze prije uključivanja sistema.
- Pratite serijski izlaz za informacije o otklanjanju grešaka.
- Koristite zvučnike niske impedanse za bolji kvalitet zvuka.
- Za najbolje performanse, osigurajte da ESP32 nije preopterećen zadacima dok reproducira audio.
SD_MMC se koristi za pristup micro SD kartici, a AudioOutputI2S se koristi za audio izlaz.
Upute za povezivanje


Da biste povezali komponente, počnite spajanjem napajanja. Povežite 5 V s ESP32 na VCC pin audio pojačala. Zatim povežite uzemljenje s ESP32 na uzemljenje pojačala. Audio izlazni pin s ESP32, obično GPIO25, treba spojiti na ulazni pin pojačala kroz otpornik od 10 kΩ.
Za zvučnik, povežite ga na izlazne pinove audio pojačala. Imajte na umu da zvučnik nema polaritet, pa ga možete spojiti na bilo koji način. Umetnite micro SD karticu u predviđeni utor na ESP32. Provjerite sve veze prije uključivanja sistema.
Primjeri koda i objašnjenje
U priloženom kodu, počinjemo uključivanjem potrebnih biblioteka za reprodukciju zvuka i pristup SD kartici. Glavni identifikatori su mp3, file i out, koji predstavljaju MP3 generator, izvor audio datoteke i audio izlaz, redom.
AudioGeneratorMP3 *mp3;
AudioFileSourceSD_MMC *file;
AudioOutputI2S *out;
Ovdje deklarišemo pokazivače za MP3 generator i izvor audio datoteke. U funkciji setup(), inicijaliziramo serijsku komunikaciju i SD karticu.
void setup() {
Serial.begin(115200);
if (!SD_MMC.begin()) {
Serial.println("Montiranje SD kartice nije uspjelo!");
}
file = new AudioFileSourceSD_MMC("/To Alice.mp3");
out = new AudioOutputI2S(0, 1);
}
U ovom dijelu provjeravamo je li SD kartica uspješno montirana. Ako ne uspije, ispisuje se poruka o grešci. Zatim postavljamo MP3 datoteku i način audio izlaza.
void loop() {
if (mp3->isRunning()) {
if (!mp3->loop()) mp3->stop();
} else {
Serial.println("MP3 gotov");
delay(1000);
}
}
Ova petlja provjerava da li se MP3 datoteka još uvijek reproducira. Ako nije, ispisuje poruku koja označava da je reprodukcija završena. Kompletan kod će se učitati ispod članka za daljnju referencu.
Demonstracija / Šta očekivati
Kada je sve povezano i kod je učitan, trebali biste čuti audio reprodukciju kroz zvučnik kada je micro SD kartica umetnuta. Obavezno resetirajte ESP32 nakon umetanja kartice. Ako se audio ne reproducira, provjerite povezivanje i osigurajte da je audio datoteka ispravno nazvana u kodu (u videu na 05:00).
Uobičajeni problemi uključuju neispravno formatiranje micro SD kartice ili korištenje nepodržanih audio formata datoteka. Uvijek osigurajte da su datoteke u MP3 formatu i smještene u korijenski direktorij ili navedenu mapu prema potrebi.
Vremenske oznake videa
- 00:00 Početak
- 2:19 Uvod u projekat
- 4:27 Stranica s dokumentacijom
- 5:32 Povezivanje za audio pojačalo
- 8:00 Formatiranje microSD kartice za ESP32
- 10:16 Biblioteka i kod
- 15:16 Odabir ESP32 ploče i COM porta u Arduino IDE
- 16:58 Reprodukcija pjesme koristeći ESP32 s Micro SD kartice
- 19:14 Druga demonstracija koristeći 18650 bateriju
#include "AudioFileSourceSD_MMC.h"
#include "AudioOutputI2S.h"
#include "AudioGeneratorMP3.h"
#include "SD_MMC.h"
#include "FS.h"
// Declare pointers for the MP3 generator, file source, and output.
AudioGeneratorMP3 *mp3;
AudioFileSourceSD_MMC *file;
AudioOutputI2S *out;
void setup() {
// Start the serial communication.
Serial.begin(115200);
delay(1000);
// Initialize the SD card. If it fails, print an error message.
if (!SD_MMC.begin()) {
Serial.println("SD card mount failed!");
}
// Open the MP3 file from the SD card. Replace "/To Alice.mp3" with your own MP3 file name.
file = new AudioFileSourceSD_MMC("/To Alice.mp3");
// Set up the I2S output on ESP32's internal DAC.
out = new AudioOutputI2S(0, 1);
// Set the output to mono.
out->SetOutputModeMono(true);
// Initialize the MP3 generator with the file and output.
mp3 = new AudioGeneratorMP3();
mp3->begin(file, out);
}
void loop() {
// If the MP3 is running, loop it. Otherwise, stop it.
if (mp3->isRunning()) {
if (!mp3->loop()) mp3->stop();
}
// If the MP3 is not running, print a message and wait for 1 second.
else {
Serial.println("MP3 done");
delay(1000);
}
}
Common Course Links
Common Course Files
Resursi i reference
-
DokumentacijaESP32 Tutorial 41/55 - SunFounder doc page for playing music from memory carddocs.sunfounder.com
Datoteke📁
Nema dostupnih datoteka.