ESP32_インターネットラジオでNHK第一を聞く   (2023/02/18)


 ESP32モジュールはWiFi、Bluetooth内蔵にもかかわらず数百円で入手できることから、この数年、リモコンやウェブカメラなどの応用が盛んになっている。ネット・ラジオもその一例で多くの方々が作製例を公開している。こうした情報を頼りに(遅ればせながら)ネット・ラジオを組んでみた。

 

1.ハードウェア

・ESP32モジュール:ESP32-WROOM-32 (ESP32-DEVKITV1)、amazonで購入

・I2Sアンプ:MAX98357A、amazonで購入

・スピーカー:DAISOの300円スピーカー

 ESP32モジュールにはUSB-UART変換チップ:CP2102が付いているので直にPCと接続できて便利だがマイクロUSB端子の出来が悪いようで時々接触不良を起こしUSBが認識されなくなる。秋月のESP32-WROOM-32Eマイコンボード(USB変換なし)とUSB-UART変換モジュールを併せて使うほうが利巧かもしれない。

 ESP32内蔵のDACから直接オーディオ出力を得ることも可能だが、私の場合時々ザ、ザ、というノイズが入り耳障りだったので外付けのI2Sアンプを使うことにした。ソフトでの解決も可能かと思うが深堀りする根性もなく、あっさりと外付けモジュールを購入した(500円程度)。

 お決まりのDAISOスピーカーを買ってみた。APB-3のインピーダンスアナライザで計ってみると、スピーカーの最低共振周波数:f0 は174Hzで、よくある小型スピーカーより低めであった。これくらいであれば少なくともキンキンした音にはならずフラットな音質に感じられるだろう。スピーカーが2個ついているので1個あたり150円以下となる。

 

2.ソフトウェア

 最初はこちら1)に載っているWebRadioESP32.inoをそのままarduino_IDEで書き込み、動作確認した。アメリカのclassical music局を聴いているとたまに日本の”早春賦”などが流れてきたり面白かった。ただ、このソフトで受信できるaudio_streamnoはmp3形式に限られているようで、アクセスできない局も多々あった。 (アクセスできない問題の原因はurlの書式にあった。「追記」を参照のこと。) そこで、比較的新しいこちらのソフト2)を使ってみた。(readme.mdの中にarduino.IDE用のコードが載っている。)選局サンプルurlにもあるように対応形式が aac, mp3, m3u, asx, pls, flac, flac (ogg), opus (ogg), m3u8 (HLS), m3u8 (HLS_ts) と多彩だ。例えば、

    ”https://radio-stream.nhk.jp/hls/live/2023229/nhkradiruakr1/master.m3u8”

を選局すると、NHK第一放送を聴くことができた。urlは定期的に変更される可能性があるのでいつまで使えるかわからないが、少なくともこの2,3日は安定してつながっており目覚まし時計替わりに使っている。

 

3.組立て

 DAISOのスピーカーボックスに少し隙間があったのでそこにパーツを押し込んでみた。USB端子付きの電源コードがDAISOスピーカーに付いていたのでそれも流用した。

 結構コンパクトにまとまった。今は冬なので問題ないが夏場に放熱が十分か不安は残る。

 

Refferences

1) "ESP32 でインターネットラジオ(Web Radio)を作る(ハマったこと)"、https://qiita.com/ynomura/items/e0cab352c90ff4025e59

2) "ESP32-audioI2S github"、https://github.com/schreibfaul1/ESP32-audioI2S

 

【追記】 

 最近、1)と2)のコード(スケッチ)を見比べて見たのだが基本的には同じであることに気づいた。違いは何かというとラジオ局urlの記述の仕方で、1)ではhttp://やhttps://を省略してそれ以下の部分を記述している。シリアルモニタのメッセージを見ていると、どうやらデフォルトでhttp://を付けてラジオ局を呼び出し、うまくいかないときは続けてhttps://をヘッダーにしてコールし直す、ことをやっているようにみえる。NHKインターネットラジオのurlヘッダーはhttps://なので2回目のトライアルでうまく接続できそうなものだがなぜかエラーになってしまう。そこで1)のスケッチのラジオ局url欄にhttps://を省略せずに記述してみたところ接続エラーが出なくなり、1)でもNHK第一が聴けるようになった。 お粗末の一席でした。 (2023.05.18)

 

 戻る