Код для поиска

ESP32 Урок 41/55 - MP3-плеер с использованием Micro SD карты | Обучающий набор SunFounder для ESP32 IoT

ESP32 Урок 41/55 - MP3-плеер с использованием Micro SD карты | Обучающий набор SunFounder для ESP32 IoT

В этом руководстве мы создадим MP3-плеер с использованием микроконтроллера ESP32 и micro SD-карты. ESP32 будет считывать аудиофайлы, хранящиеся на micro SD-карте, и выводить звук через аудиоусилитель и динамик. Этот проект объединяет различные компоненты, включая ESP32, аудиоусилитель и micro SD-карту, что позволяет воспроизводить музыку простым способом.

В процессе мы рассмотрим необходимые подключения, программирование и способы устранения распространенных проблем. Для более наглядной инструкции обязательно посмотрите соответствующее видео (на видео в 00:00).

Объяснение аппаратного обеспечения

Основные компоненты, используемые в этом проекте, включают микроконтроллер ESP32, micro SD-карту, аудиоусилитель и динамик. ESP32 — это мощный микроконтроллер со встроенными возможностями Wi-Fi и Bluetooth, что делает его идеальным для проектов Интернета вещей. Он будет обрабатывать и управлять воспроизведением аудио.

Micro SD-карта используется для хранения аудиофайлов в формате MP3. Она подключается к ESP32 и позволяет программе считывать файлы и отправлять аудиоданные на усилитель. Аудиоусилитель принимает цифровой сигнал от ESP32 и усиливает его для управления динамиком, позволяя слышать звук.

Данные из технического описания

ПроизводительSunFounder
Номер деталиESP32
Логическое/IO напряжение3,3 В
Напряжение питания5 В
Выходной ток (на канал)макс. 2 А
Пиковый ток (на канал)макс. 3 А
Рекомендации по частоте ШИМдо 40 кГц
Входные логические пороги0,3 x VCC (низкий), 0,7 x VCC (высокий)
Падение напряжения / RDS(on) / насыщение0,15 В
Тепловые пределы85 °C
КорпусWROOM-32
Примечания / вариантыСовместим с различными аудиобиблиотеками

  • Убедитесь, что micro SD-карта отформатирована в FAT32.
  • Используйте резистор для подключения аудиоусилителя, чтобы предотвратить искажения.
  • Поддерживайте стабильные соединения источника питания, чтобы избежать перебоев.
  • Проверьте соединения на наличие ослабленных контактов перед подачей питания на систему.
  • Следите за последовательным выводом для отладочной информации.
  • Используйте динамики с низким импедансом для лучшего качества звука.
  • Для наилучшей производительности убедитесь, что ESP32 не перегружен задачами во время воспроизведения аудио.

SD_MMC используется для доступа к micro SD, а AudioOutputI2S — для вывода аудио.

Инструкции по подключению

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

Чтобы соединить компоненты, начните с подключения источника питания. Подключите 5 В от ESP32 к контакту VCC аудиоусилителя. Затем подключите контакт заземления от ESP32 к контакту заземления усилителя. Выходной аудиоконтакт ESP32, обычно GPIO25, следует подключить к входному контакту усилителя через резистор 10 кОм.

Для динамика подключите его к выходным контактам аудиоусилителя. Обратите внимание, что динамик не имеет полярности, поэтому вы можете подключить его в любом направлении. Вставьте micro SD-карту в предназначенный для нее слот на ESP32. Перед подачей питания на систему обязательно перепроверьте все соединения.

Примеры кода и пояснения

В предоставленном коде мы начинаем с включения необходимых библиотек для воспроизведения аудио и доступа к SD-карте. Основными идентификаторами являются mp3, file и out, которые представляют генератор MP3, источник аудиофайла и аудиовыход соответственно.

AudioGeneratorMP3 *mp3;
AudioFileSourceSD_MMC *file;
AudioOutputI2S *out;

Здесь мы объявляем указатели на генератор MP3 и источник аудиофайла. В функции setup() мы инициализируем последовательную связь и SD-карту.

void setup() {
  Serial.begin(115200);
  if (!SD_MMC.begin()) {
    Serial.println("Не удалось смонтировать SD-карту!");
  }
  file = new AudioFileSourceSD_MMC("/To Alice.mp3");
  out = new AudioOutputI2S(0, 1);
}

В этом фрагменте мы проверяем, успешно ли смонтирована SD-карта. Если это не удается, выводится сообщение об ошибке. Затем мы настраиваем MP3-файл и режим аудиовыхода.

void loop() {
  if (mp3->isRunning()) {
    if (!mp3->loop()) mp3->stop();
  } else {
    Serial.println("MP3 завершено");
    delay(1000);
  }
}

Этот цикл проверяет, воспроизводится ли MP3-файл. Если нет, выводится сообщение о завершении воспроизведения. Полный код будет загружен ниже статьи для дальнейшего ознакомления.

Демонстрация / Чего ожидать

Когда все будет подключено и код загружен, вы должны услышать воспроизведение аудио через динамик при вставленной micro SD-карте. Обязательно перезагрузите ESP32 после вставки карты. Если аудио не воспроизводится, проверьте подключения и убедитесь, что аудиофайл правильно назван в коде (на видео в 05:00).

Распространенные ошибки включают неправильное форматирование micro SD-карты или использование неподдерживаемых форматов аудиофайлов. Всегда убеждайтесь, что файлы находятся в формате MP3 и размещены в корневом каталоге или указанной папке по мере необходимости.

Временные метки видео

  • 00:00 Начало
  • 2:19 Введение в проект
  • 4:27 Страница документации
  • 5:32 Подключение аудиоусилителя
  • 8:00 Форматирование microSD-карты для ESP32
  • 10:16 Библиотека и код
  • 15:16 Выбор платы ESP32 и COM-порта в Arduino IDE
  • 16:58 Воспроизведение песни с помощью ESP32 с micro SD-карты
  • 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"

 // Объявите указатели для генератора MP3, файла-источника и вывода.
AudioGeneratorMP3 *mp3;
AudioFileSourceSD_MMC *file;
AudioOutputI2S *out;

void setup() {
 // Начните сериализацию.
  Serial.begin(115200);
  delay(1000);

 // Инициализируйте карту памяти SD. Если это не удастся, выведите сообщение об ошибке.
  if (!SD_MMC.begin()) {
    Serial.println("SD card mount failed!");
  }

 // Откройте MP3 файл с карты памяти SD. Замените "/To Alice.mp3" на имя вашего собственного MP3 файла.
  file = new AudioFileSourceSD_MMC("/To Alice.mp3");

 // Настройте выход I2S на внутреннем ЦАП ESP32.
  out = new AudioOutputI2S(0, 1);

 // Установите выход в моно.
  out->SetOutputModeMono(true);

 // Инициализируйте генератор MP3 с файлом и выводом.
  mp3 = new AudioGeneratorMP3();
  mp3->begin(file, out);
}

void loop() {
 // Если MP3 воспроизводится, повторите его. В противном случае остановите.
  if (mp3->isRunning()) {
    if (!mp3->loop()) mp3->stop();
  }
 // Если MP3 не воспроизводится, выведите сообщение и подождите 1 секунду.
  else {
    Serial.println("MP3 done");
    delay(1000);
  }
}

Файлы📁

Нет доступных файлов.