[ESP32]ESP32-2432S028 音声ファイル再生 with Arduino IDE

ESP32
スポンサーリンク

ESP32-2432S028 音声ファイル再生

はじめに

Cheap Yellow Display とも言われている ESP32-2432S028 で音声ファイルを再生してみます。Audio amp SC8002B を搭載しているので、期待しています。

が、結果から言うと、おそらく基盤の設計ミスで音が歪んでしまって使えるようなものではありません。
解決策はこちら。
https://github.com/hexeguitar/ESP32_TFT_PIO?tab=readme-ov-file#2-audio-amp-gain-mod

抵抗を変更することで改善されるようですが、手持ちがないので試していません。

開発環境

OS : Windows 11 Pro
ESP32:ESP32-2432S028
統合開発環境 : Arduino IDE 2.3.2
Arduino core for the ESP32:2.0.17
使用ライブラリ:ESP32-audioI2S(3.0.12)

使用パーツ

ESP32-2432S028

KY-006

ジャンパーワイヤー(オスーメス)

作業内容

配線図

2PINのコネクタがスピーカー用です。
このコネクタは、Molex picoblade 1.25mm 2PIN だと思いますが、手持ちがないので試せていません。今回は無理やりジャンパーワイヤーのオスを手で固定しました。
圧電ブザーとダイソーのスピーカーで再生してみました。

ライブラリインストール

ESP32-audioI2S

こちらは Arduino IDE のライブラリマネージャーに対応していないため、GitHubからダウンロードして、所定の場所へ配置します。
https://github.com/schreibfaul1/ESP32-audioI2S/

ダウンロードしたファイルを解凍してライブラリフォルダに格納します。

配置場所(「ファイル」→「基本設定」でスケッチブックの場所を確認)

スケッチブックの場所\libraries\ESP32-audioI2S」

スケッチ作成

#include "Audio.h"
#include "SPIFFS.h"

Audio audio(true, I2S_DAC_CHANNEL_LEFT_EN);

void setup() {
  Serial.begin(115200);

  SPIFFS.begin();
  audio.forceMono(true);
  audio.setVolume(5); // default 0...21

  audio.connecttoFS(SPIFFS, "/sample.mp3"); // SPIFFS
}

void loop()
{
  audio.loop();
}

// optional
void audio_info(const char *info){
    Serial.print("info        "); Serial.println(info);
}
void audio_id3data(const char *info){  //id3 metadata
    Serial.print("id3data     ");Serial.println(info);
}
void audio_eof_mp3(const char *info){  //end of file
    Serial.print("eof_mp3     ");Serial.println(info);
}
void audio_showstation(const char *info){
    Serial.print("station     ");Serial.println(info);
}
void audio_showstreamtitle(const char *info){
    Serial.print("streamtitle ");Serial.println(info);
}
void audio_bitrate(const char *info){
    Serial.print("bitrate     ");Serial.println(info);
}
void audio_commercial(const char *info){  //duration in sec
    Serial.print("commercial  ");Serial.println(info);
}
void audio_icyurl(const char *info){  //homepage
    Serial.print("icyurl      ");Serial.println(info);
}
void audio_lasthost(const char *info){  //stream URL played
    Serial.print("lasthost    ");Serial.println(info);
}
void audio_eof_speech(const char *info){
    Serial.print("eof_speech  ");Serial.println(info);
}

SPIFFS に「sample.mp3」という名称で音声ファイルを置いて試しています。
SPIFFS へのファイルアップロードについてはこちら👇

コード説明

ESP32-audioI2S と SPIFFS をインクルードしています。

#include "Audio.h"
#include "SPIFFS.h"

内蔵DAC使用の場合はその指定を第一引数に true を設定して、第二引数に DAC_CHANNEL を指定します。
ESP32-2432S028 の場合、DAC_CHANNEL は 2です。

Audio audio(true, I2S_DAC_CHANNEL_LEFT_EN);

強制的にモノラルにしてボリュームを指定しています。

  audio.forceMono(true);
  audio.setVolume(5); // default 0...21

SPIFFS にアップロードしたmp3ファイルを読み込みます。

  audio.connecttoFS(SPIFFS, "/sample.mp3"); // SPIFFS

ループの中で再生しています。

  audio.loop();
動作確認

音が歪んで聞けたものじゃないですねぇ。
非常に残念です。

おわりに

いつか抵抗を交換して再トライしてみます。

コメント

タイトルとURLをコピーしました