ኮድ ይፈልጉ

ESP32 ትምህርት 41/55 - ማይክሮ ኤስዲ ካርድ በመጠቀም MP3 ማጫወቻ | SunFounder የESP32 IoT መማሪያ ኪት

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 ለድምጽ ውጤት ጥቅም ላይ ይውላል።

የሽቦ መመሪያዎች

ESP32-40-micro-sd-card-1
esp32-41-play-music-wriing

ክፍሎቹን አንድ ላይ ለማገናኘት፣ የኃይል አቅርቦቱን በማገናኘት ይጀምሩ። 5 ቪን ከESP32 ወደ የድምጽ ማጉያው የቪሲሲ ፒን ያገናኙ። በመቀጠል የመሬት ፒንን ከESP32 ወደ ማጉያው የመሬት ፒን ያገናኙ። ከESP32 የድምጽ ውጤት ፒን፣ ብዙውን ጊዜ GPIO25፣ በ10 kΩ ተከላካይ በኩል ከማጉያው የግቤት ፒን ጋር መገናኘት አለበት።

ለድምጽ ማጉያው፣ ከድምጽ ማጉያው የውጤት ፒኖች ጋር ያገናኙት። ድምጽ ማጉያው ፖላሪቲ እንደሌለው ልብ ይበሉ፣ ስለዚህ በሁለቱም መንገድ ማገናኘት ይችላሉ። ማይክሮ ኤስዲ ካርዱን በESP32 ላይ በተወሰነው ቀዳዳ ውስጥ ያስገቡ። ስርዓቱን ከማብራት በፊት ሁሉንም ግንኙነቶች ሁለቴ መፈተሽዎን ያረጋግጡ።

የኮድ ምሳሌዎች እና ጉዞ

በተሰጠው ኮድ ውስጥ፣ ለድምጽ መልሶ ማጫወት እና ለኤስዲ ካርድ መዳረሻ አስፈላጊ የሆኑትን ቤተ-መጻሕፍት በማካተት እንጀምራለን። ዋናዎቹ መለያዎች mp3file እና 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 ባትሪ በመጠቀም ሁለተኛ ማሳያ

ምስሎች

speaker_pic
speaker_pic
audio_module
audio_module
ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-1
esp32-41-play-music-wriing
esp32-41-play-music-wriing
842-ESP32 Tutorial 41/55- Arduino code for playing music from microSD card
ቋንቋ: C++
#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);
  }
}

ምንጮች እና ምንጮች

ፋይሎች📁

አንድ ፋይል የለም።