ESP32 ትምህርት 41/55 - ማይክሮ ኤስዲ ካርድ በመጠቀም MP3 ማጫወቻ | SunFounder የESP32 IoT መማሪያ ኪት
በዚህ መማሪያ ውስጥ፣ ESP32 ማይክሮ መቆጣጠሪያ እና ማይክሮ ኤስዲ ካርድ በመጠቀም MP3 ማጫወቻ እንፈጥራለን። ESP32 በማይክሮ ኤስዲ ካርድ ላይ የተከማቹ የድምጽ ፋይሎችን ያነባል እና ድምጹን በድምጽ ማጉያ እና ድምጽ ማጉያ ድምጽ ያሰማል። ይህ ፕሮጀክት ESP32ን፣ የድምጽ ማጉያን እና ማይክሮ ኤስዲ ካርድን ጨምሮ የተለያዩ ክፍሎችን ያጣምራል፣ ይህም ሙዚቃን በቀላል መንገድ እንዲጫወቱ ያስችልዎታል።
በሂደቱ ውስጥ፣ አስፈላጊውን የሽቦ አያያዝ፣ ኮድ እና የተለመዱ ችግሮችን እንዴት መፍታት እንደሚቻል እንነጋገራለን። ለበለጠ ምስላዊ መመሪያ፣ ተያያዥ ቪዲዮውን መመልከትዎን ያረጋግጡ (በቪዲዮ 00:00)።
ሃርድዌር ተብራርቷል
በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ የዋሉት ዋና ዋና ክፍሎች ESP32 ማይክሮ መቆጣጠሪያ፣ ማይክሮ ኤስዲ ካርድ፣ የድምጽ ማጉያ እና ድምጽ ማጉያ ያካትታሉ። ESP32 አብሮ የተሰራ ዋይ ፋይ እና ብሉቱዝ አቅም ያለው ኃይለኛ ማይክሮ መቆጣጠሪያ ነው፣ ለአይኦቲ ፕሮጀክቶች ተስማሚ ያደርገዋል። የድምጽ መልሶ ማጫወትን ሂደት እና ቁጥጥርን ይቆጣጠራል።
ማይክሮ ኤስዲ ካርድ የድምጽ ፋይሎችን በMP3 ቅርጸት ለማከማቸት ያገለግላል። ከESP32 ጋር ይገናኛል እና ፕሮግራሙ ፋይሎቹን እንዲያነብ እና የድምጽ ውሂብን ወደ ማጉያው እንዲልክ ያስችለዋል። የድምጽ ማጉያው ከESP32 የዲጂታል ምልክትን ወስዶ ድምጽ ማጉያውን ለማንቀሳቀስ ያጎላል፣ ይህም ድምጽ እንዲሰማ ያስችላል።
የዳታሼት ዝርዝሮች
| አምራች | SunFounder |
|---|---|
| የክፍል ቁጥር | ESP32 |
| ሎጂክ/አይኦ ቮልቴጅ | 3.3 ቪ |
| የአቅርቦት ቮልቴጅ | 5 ቪ |
| የውጤት ጅረት (በአንድ ቻናል) | 2 ኤ ከፍተኛ |
| ከፍተኛ ጅረት (በአንድ ቻናል) | 3 ኤ ከፍተኛ |
| የPWM ድግግሞሽ መመሪያ | እስከ 40 ኪሎሄርትዝ |
| የግቤት ሎጂክ ገደቦች | 0.3 x ቪሲሲ (ዝቅተኛ)፣ 0.7 x ቪሲሲ (ከፍተኛ) |
| የቮልቴጅ ጠብታ / RDS(on) / ሙሌት | 0.15 ቪ |
| የሙቀት ገደቦች | 85 °ሴ |
| ፓኬጅ | WROOM-32 |
| ማስታወሻዎች / ልዩነቶች | ከተለያዩ የድምጽ ቤተ-መጻሕፍት ጋር ተኳሃኝ |
- ማይክሮ ኤስዲ ካርዱ እንደ FAT32 መቅረጹን ያረጋግጡ።
- መዛባትን ለመከላከል የድምጽ ማጉያውን ለማገናኘት ተከላካይ ይጠቀሙ።
- መቆራረጥን ለማስወገድ የኃይል አቅርቦት ግንኙነቶችን የተረጋጋ ያድርጉ።
- ስርዓቱን ከማብራት በፊት ለተላላ ግንኙነቶች ሽቦውን ይፈትሹ።
- ለማረም መረጃ ተከታታይ ውጤቱን ይቆጣጠሩ።
- ለተሻለ የድምጽ ጥራት ዝቅተኛ-እክል ያላቸውን ድምጽ ማጉያዎች ይጠቀሙ።
- ለተሻለ አፈጻጸም፣ ድምጽ በሚጫወትበት ጊዜ ESP32 በተግባሮች እንዳልተጫነ ያረጋግጡ።
SD_MMC ለማይክሮ ኤስዲ መዳረሻ ጥቅም ላይ ይውላል፣ እና AudioOutputI2S ለድምጽ ውጤት ጥቅም ላይ ይውላል።
የሽቦ መመሪያዎች


ክፍሎቹን አንድ ላይ ለማገናኘት፣ የኃይል አቅርቦቱን በማገናኘት ይጀምሩ። 5 ቪን ከESP32 ወደ የድምጽ ማጉያው የቪሲሲ ፒን ያገናኙ። በመቀጠል የመሬት ፒንን ከESP32 ወደ ማጉያው የመሬት ፒን ያገናኙ። ከESP32 የድምጽ ውጤት ፒን፣ ብዙውን ጊዜ GPIO25፣ በ10 kΩ ተከላካይ በኩል ከማጉያው የግቤት ፒን ጋር መገናኘት አለበት።
ለድምጽ ማጉያው፣ ከድምጽ ማጉያው የውጤት ፒኖች ጋር ያገናኙት። ድምጽ ማጉያው ፖላሪቲ እንደሌለው ልብ ይበሉ፣ ስለዚህ በሁለቱም መንገድ ማገናኘት ይችላሉ። ማይክሮ ኤስዲ ካርዱን በESP32 ላይ በተወሰነው ቀዳዳ ውስጥ ያስገቡ። ስርዓቱን ከማብራት በፊት ሁሉንም ግንኙነቶች ሁለቴ መፈተሽዎን ያረጋግጡ።
የኮድ ምሳሌዎች እና ጉዞ
በተሰጠው ኮድ ውስጥ፣ ለድምጽ መልሶ ማጫወት እና ለኤስዲ ካርድ መዳረሻ አስፈላጊ የሆኑትን ቤተ-መጻሕፍት በማካተት እንጀምራለን። ዋናዎቹ መለያዎች mp3፣ file እና out ናቸው፣ እነዚህም የMP3 ጀነሬተርን፣ የድምጽ ፋይል ምንጭን እና የድምጽ ውጤትን ይወክላሉ።
AudioGeneratorMP3 *mp3;
AudioFileSourceSD_MMC *file;
AudioOutputI2S *out;
እዚህ፣ ለMP3 ጀነሬተር እና ለድምጽ ፋይል ምንጭ ጠቋሚዎችን እናውጃለን። በsetup() ተግባር ውስጥ፣ ተከታታይ ግንኙነትን እና የኤስዲ ካርዱን እንጀምራለን።
void setup() {
Serial.begin(115200);
if (!SD_MMC.begin()) {
Serial.println("የኤስዲ ካርድ መጫን አልተሳካም!");
}
file = new AudioFileSourceSD_MMC("/To Alice.mp3");
out = new AudioOutputI2S(0, 1);
}
በዚህ ክፍል ውስጥ፣ የኤስዲ ካርዱ በተሳካ ሁኔታ መጫኑን እንፈትሻለን። ካልተሳካ፣ የስህተት መልእክት ይታተማል። ከዚያ የMP3 ፋይሉን እና የድምጽ ውጤት ሁነታን እናዘጋጃለን።
void loop() {
if (mp3->isRunning()) {
if (!mp3->loop()) mp3->stop();
} else {
Serial.println("MP3 ተጠናቋል");
delay(1000);
}
}
ይህ ዑደት የMP3 ፋይሉ አሁንም እየተጫወተ መሆኑን ይፈትሻል። ካልሆነ፣ መልሶ ማጫወት መጠናቀቁን የሚያመለክት መልእክት ያትማል። ሙሉ ኮዱ ለተጨማሪ ማጣቀሻ ከጽሑፉ በታች ይጫናል።
ማሳያ / ምን እንደሚጠበቅ
ሁሉም ነገር ከተገናኘ እና ኮዱ ከተጫነ በኋላ፣ ማይክሮ ኤስዲ ካርዱ ሲገባ ድምጹ በድምጽ ማጉያው ሲጫወት መስማት አለብዎት። ካርዱን ካስገቡ በኋላ ESP32ን እንደገና ማስጀመርዎን ያረጋግጡ። ድምጹ ካልተጫወተ፣ ሽቦውን ይፈትሹ እና የድምጽ ፋይሉ በኮዱ ውስጥ በትክክል መሰየሙን ያረጋግጡ (በቪዲዮ 05:00)።
የተለመዱ ወጥመዶች ማይክሮ ኤስዲ ካርዱን በትክክል አለመቅረጽ ወይም የማይደገፉ የድምጽ ፋይል ቅርጸቶችን መጠቀም ያካትታሉ። ፋይሎቹ በMP3 ቅርጸት መሆናቸውን እና በስር ማውጫ ወይም እንደ አስፈላጊነቱ በተጠቀሰው አቃፊ ውስጥ መቀመጣቸውን ሁልጊዜ ያረጋግጡ።
የቪዲዮ ጊዜ ምልክቶች
- 00:00 መጀመሪያ
- 2:19 ለፕሮጀክቱ መግቢያ
- 4:27 የሰነድ ገጽ
- 5:32 ለድምጽ ማጉያ ሽቦ
- 8:00 ለESP32 ማይክሮ ኤስዲ ካርድ መቅረጽ
- 10:16 ቤተ-መጻሕፍት እና ኮድ
- 15:16 በArduino IDE ውስጥ የESP32 ቦርድ እና የCOM ወደብ መምረጥ
- 16:58 ከማይክሮ ኤስዲ ካርድ ESP32 በመጠቀም ዘፈን መጫወት
- 19:14 የ18650 ባትሪ በመጠቀም ሁለተኛ ማሳያ
#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
ምንጮች እና ምንጮች
-
ሰነዶችESP32 Tutorial 41/55 - SunFounder doc page for playing music from memory carddocs.sunfounder.com
ፋይሎች📁
አንድ ፋይል የለም።