かれこれ5年ほど前になりますが MiniWebRadio を作成しました。
現在も使用していますが、ブラウザでの設定がもたつくので直接SDカードに書き込みして局の編集などをしていました。
久しぶりに作者のGitHubにお邪魔したところバージョンアップしてV2になっていたので、ブレッドボード上に作成し動作確認をしてみます。
書き込みには VS Code を使用するようです、 VS Code は使ったことがありませんが手順通り行えばなんとかなるでしょう。
使用パーツ
ESP32-WROVER または ESP32 S3
PSRAMが使えるものでないと動作保証されていないようですが、とりあえず手持ちのESP-WROOM32 Sで試してみます
2.8"インチ TFT液晶ディスプレイ タッチパネル、3.5インチも使えるようです
VS1053 MP3 デコードモジュール
SDカードアダプター
8GBのmicroSDと変換アダプターは手持ちの物を使用しました
IR受信モジュール
リモコンを使用しないなら必要ありません、これも手持ちにありましたので付けてみました
リモコン 赤外線受信モジュール付きです
以前リモコンカーに使用した似たようなリモコンがありますので使用しました。
その他 ブレッドボード 配線用ワイヤー 10KΩ 抵抗 など
プログラムの書込準備
プログラムの設定と書込
自分使用の場合、タイムゾーン WiFiのID/Pass などを設定しておくと良いです。
rtime.cpp の設定
258行目を日本のNTPに変更しました char sbuf[20]="ntp.nict.jp";
rtime.h の設定
27行目を日本のタイムゾーンに変更 boolean begin(String TimeZone="Asia/Tokyo");
common.h の設定
7行目で自宅WiFiのSSIDを設定
8行目で自宅WiFiのPassWordを設定します。
その他 使用するモジュールの設定をコメントを参考に設定します。
私の場合 9~14行目までは以下の通り設定しました。
#define DECODER 0 // (0)VS1053 , (1)MAX98357A PCM5102A CS4344... (2)AC101, (3)ES8388, (4)WM8978
#define TFT_CONTROLLER 0 // (0)ILI9341, (1)HX8347D, (2)ILI9486a, (3)ILI9486b, (4)ILI9488, (5)ST7796, (6)ST7796RPI
#define DISPLAY_INVERSION 0 // (0) off (1) on
#define TFT_ROTATION 3 // 1 or 3 (landscape)
#define TFT_FREQUENCY 40000000 // 80000000, 40000000, 27000000, 20000000, 10000000
#define TP_VERSION 0 // (0)ILI9341, (1)ILI9341RPI, (2)HX8347D, (3)ILI9486, (4)ILI9488, (5)ST7796, (3)ST7796RPI
以上を設定して ESP-WROOM32-S に書き込みました。
回路図
回路図は additional_info フォルダーにあります、分かりやすい回路図は ESP32 Internet Radio, MP3 Player, and Alarm Clock の記事内にあります。
回路図と液晶ディスプレイの画像です。※ additional_info フォルダーからの転載
こちらは分かりやすい回路図です。※ ESP32 Internet Radio, MP3 Player, and Alarm Clock からの転載
※ 最初の回路図には10KΩ の抵抗がありません、分かりやすい回路図では赤外線受信モジュールがありません。
※ 分かりやすい回路図ではSDカード変換アダプターの電源3.3Vが5Vに接続されていますので間違です3.3Vに接続します。
※ 液晶ディスプレイに付いているDSカードアダプターや、SDカードアダプターモジュールを使用すると動作しません。
※ SDカードに直接ハンダ付けすることも出来ますが、カードアダプターを使用する事をお勧めします。
動作確認
ESP-WROOM32-S でも動作はします、しかし画像の表示にもたつきがあり、下部に表示される操作アイコンが表示されないときがあります。
PSRAM搭載のESP32 は持っていないので試しておりませんが ESP32-WROVER-E を手に入れたらこの辺が改善されるのか試してみたいと思います。