Ccmmutty logo
Commutty IT
5 min read

esp32でmp3を再生してみた

https://cdn.magicode.io/media/notebox/e95b691e-fb3a-41c5-b0eb-866ba54936a5.jpeg

はじめに

esp32でmp3再生を試してみた。
基本的にはESP32でGoogle Play Musicを再生するをまねるだけ。

環境

方向性

Arduino IDEでesp32開発環境を整えて、ESP8266Audioというライブラリを用いてmp3ファイルを再生する。

環境構築

Arduino IDEのインストール

公式サイトよりインストーラーをダウンロードし、インストーラーを実行する。

Arduino IDE で esp32の環境構築

Installing using Arduino IDE を参考にArduino IDEにesp32環境をインストールする。
まず、Stable release linkをコピーする。
2022/07/12時点では
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
次にArduinoを起動し、環境設定を開く。(ファイル > 環境設定 もしくは ctrl + カンマ)
環境設定内の 追加のボードマネージャーのURL に先ほどコピーしたリンクをペースト。
OKを押して環境設定を閉じる。
そして、ボードマネージャーを開く。(ツール > ボード > ボードマネージャー)
検索ボックスでesp32と入力し、検索結果のパッケージをインストールする。
注) 私は昔に環境作った時に、ボードマネージャーのURLが別のもの※を使っていた。そのURLでもesp32パッケージは見つかるが、1.0.6までしかなく、今回使うESP8266Audioの実行がエラーになってしまった。
i2c_confit_tのメンバーにない値を入れようとしてコンパイルエラーになったら、versionを確認してみてください。 ※https://dl.espressif.com/dl/package_esp32_index.json

SPIFFSアップローダーのインストール

今回はmp3のファイルをesp32のFlashに書き込んで再生する。
そのための機能がSPIFFS ( SPI Flash File System ) で、そのためのプラグインをインストールする。
ESP32-WROOM-32 SPIFFS アップローダープラグインの使い方 を参考に下記の手順でインストールする。
  1. githubのreleasesページに行き、最新版のzipをダウンロードする。
  2. zipを解凍する
  3. C:\Users\UserName\Documents\Arduino に toolsフォルダを作成する
  4. C:\Users\UserName\Documents\Arduino\tools に2で解凍してできるESP32FSフォルダをコピーする
Arduino IDEを起動して、ツールメニューに ESP32 Sketch Data Upload が表示されていればインストール完了。

ESP8266Audioのインストール

Installationに従ってインストールする。
mkdir -p ~/Arduino/libraries
cd ~/Arduino/libraries
git clone https://github.com/earlephilhower/ESP8266Audio

サンプル実行

配線

参考にした ESP32でGoogle Play Musicを再生する でも配線は別のページを参考にしていて、そのページの配線が書き間違えているので注意。
ESPD級アンプ
GPIO 22Din
GPIO 25LRC
GPIO 26BCLK
3v3 or 5vVin
GNDGND
参考ではBCLKとGNDの間に22pFのコンデンサーを配線している。ひとまずなくても動作確認はできる。

サンプルプログラムの用意

ツール > ボード > ESP32 Arduino > ESP32 Dev Moduleを選択する。※
ファイル > スケッチ例 > ESP8266Audio > PlayMP3FromSPIFFSを選択する。
※ ボードの選択が違うと、スケッチ例で最後の 互換性なし に行ってしまう。
注意) サンプルプログラムでは、AudioOutputI2SNoDACを使っているが、今回はDACを使っているので、該当箇所をAudioOutputI2Sに変更する。

SPIFSアップロード

ctrl + kを押すと、開いている.inoファイルの場所をエクスプローラーで開く。
dataフォルダを作成し、そこにmp3ファイルを置き、ツール > ESP32 Sketch Data Uploadでmp3をFlashに書き込む。

実行

あとは、コンパイルして書き込めば音が再生される。

Discussion

コメントにはログインが必要です。