MP3ストリームをI2Sデータへデコードできるライブラリを利用した簡単構成のインターネットラジオです。
最小構成でESP32とI2S DACがあれば製作できます。
Webサーバーを搭載しているので、ブラウザから操作できます(タクトスイッチも不要)。
Arduino IDEとESP32開発環境が必要です。
特長
・構成が簡単で安価。
・WiFi接続。
・MP3ストリームのインターネットラジオ局を受信できる。
・ブラウザから操作できる。
・ブラウザにアーティスト名、曲名が表示(日本語可)される(ある場合は表示装置(日本語不可)にも)。
・インターネットラジオ局の設定はプリセットまたはURLを入力設定。
・スリープタイマー(60分)付き。
H/W構成
・ESP32 - ESP WROOM 32 DevKitC (30PINのものを推奨)
・UDA1334 I2S DAC または PCM5102 I2S DAC
・SD1306 128x64 OLED表示装置(オプション)
※赤LEDはPOWER、青LEDはSLEEP ON、音量調整用のタクトスイッチ(2個)は未接続
操作
・プリセットしたインターネットラジオ局の切り替え(ブラウザ/タクトスイッチ)。
・音量調整(ブラウザ/タクトスイッチ)。
・スリープタイマーのON/OFF(ブラウザ/タクトスイッチ)。
・インターネットラジオ局のURL入力、設定と保存(ブラウザ)。
接続
各コンポーネントの接続は以下の通り。
※接続PINはライブラリのオリジナルのものとは変更しているので注意
I2S DAC
I2S DAC(UDA1334) | I2S DAC(PCM5102) | ESP32 |
VIN | VIN | 3V3 |
GND | GND | GND |
WSEL | LCK | D22 |
DIN | DIN | D25 |
BCLK | BCK | D26 |
- | SCK | GND |
I2C 表示装置
I2C | ESP32 |
VCC | 3V3 |
GND | GND |
SCK | D4 |
SDA | D17(TX2) |
タクトスイッチ(ボタン) ※ブラウザから操作できるので無くてもOK。
機能 | ESP32 | 機能 |
SLEEP | D32 | SLEEP機能のON/OFF |
VOL- | D14 | 音量小(最小0) |
VOL+ | D12 | 音量大(最大20) |
STATION | D13 | インターネットラジオ局を「次へ」切り替え |
インストール
- コードを、ZIP形式でダウンロード
- ArduinoIDEにおいてライブラリとして導入(オリジナルのMP3-I2Sのライブラリも取り込んでいる)
- ArduinoIDEからESP32_iradio_srv.inoを開く
- 冒頭のssid = "xxxxxxxx"; と password = "pppppppp"; の2行を
利用しているWiFiポイントのものに書き換える - 「検証・コンパイル」に成功したら、一旦、「名前を付けて保存」を行う
(ライブラリが不足のエラーが出たら、追加する。例えば、SD1306 OLED表示装置) - 上に述べたH/W構成(最小構成として、ESP32とDACが必要)を用意し、配線を接続する
- PCとUSBケーブルで接続する。適当なCOM番号で認識される(USBのドライバが必要な場合あり)
- 「マイコンボードに書き込む」を行う
- 書き込みが成功すれば、動作の状況がシリアルモニタに表示される
- WiFi接続時、IPアドレスがシリアルモニタに表示される。ブラウザから"http://IPアドレス"に
アクセスすると以下の画面が表示される
インターネットラジオ局のURL、アーティスト名、曲名、VOLUMEの値、プリセット済のURLが表示されている
「Operation」をクリックすると以下の操作画面に遷移する
各操作のボタン。「Station URL」に一時的なインターネットラジオ局のURLを指定(「SET」ボタン)でき、
受信OKの場合、「SAVE」をクリックすると保存されて、
次回のパワーオン時に自動接続する。
「STATION」ボタンをクリックすると保存が解消される
注意事項
・回線状況、インターネットラジオ局のデータストリーム形式によっては音が途切れることがあります。
・利用の際は、自己責任でお楽しみください。