ESP32-audioI2S-masterライブラリを使って PCM5102A I2S DAC によるWebラジオを再生しましたが音が途切れます。 下記サイト参考にスケッチしました。
参考サイト
●ESP32-S3-DevKitC-1とPCM5102もインターネットラジオになりました
●ESP32 でインターネットラジオ(Web Radio)を作る(ハマったこと)
PCM5102A - 32ビットDAC
アマゾン購入
【SCK】ブリッジ(内部クロック)【H1L】(FLT) L側 ブリッジ
【H2L】(DEMP) L側 ブリッジ
【H3L】(XSMT) H側 ブリッジ
【H4L】(FMT) L側 ブリッジ
ボードマネージャ
追加ボードマネージャーURLを変更【https://raw.githubusercontent.com/espressif/arduino-esp32/ghpages/package_esp32_dev_index.json】
【esp 32】
【バージョン3.2.0】インストール
ライブラリマネージャー
【バージョン3.2.1】インストール
WIFI識別番号
const char* ssid = "********";
const char* password = "********";
ボードマネージャ
●【ESP32S3 Dev Module】をボードにする。
●パーテーション変更
メモリ不足のエラーが出るのでPartition Scheme【Huge APP(3MB OTA/1MB SPIFFS)】を選択してプログラム書込み
プログラム Arduino IDE【ボード:ESP32 Dev Module】
# include "Arduino.h"
# include "WiFi.h"
// Librarry zip install from: https://github.com/schreibfaul1/ESP32-audioI2S
# include "Audio.h"
// Digital I/O used
# define I2S_DOUT 25 // DIN connection
# define I2S_BCLK 27 // Bit clock
# define I2S_LRC 26 // Left Right Clock
//Wi-Fi network identifier
const char* ssid = "*********";
const char* password = "***************";
Audio audio;
//Internet Radio List
String stations[] ={
"https://ice1.somafm.com/illstreet-128-mp3", // SomaFM / Illinois Street Lounge
"https://ais-sa2.cdnstream1.com/b22139_128mp3", // 101 SMOOTH JAZZ
"https://relax.stream.publicradio.org/relax.mp3", // Your Classical - Relax
"https://16963.live.streamtheworld.com/SAM03AAC226_SC", // #1980s Zoom
"https://ice1.somafm.com/secretagent-128-mp3", // SomaFM / Secret Agent
"https://ice1.somafm.com/seventies-128-mp3", // SomaFM / Left Coast 70s
"https://ice1.somafm.com/bootliquor-128-mp3", // SomaFM / Boot Liquor
"https://musicbird.leanstream.co/JCB032-MP3", // 84.3 FM Edogawa (FMえどがわ, JOZZ3AS-FM, Edogawa City,...
"https://musicbird.leanstream.co/JCB093-MP3", // Dreams FM (ドリームスエフエム, JOZZ0AI-FM, 76.5 MHz, Kurume...
"https://musicbird.leanstream.co/JCB104-MP3", // Kyoto Living FM (京都リビング FM/きょうと りびんぐ FM)
"https://musicbird.leanstream.co/JCB015-MP3", // FM Blue Shonan (FM・ブルー湘南 , JOZZ3AD-FM, 78.5 MHz, Y...
};
uint8_t cur_station = 0; // current station No.
void setup() {
Serial.begin(115200);
WiFi.disconnect();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid , password );
while (WiFi.status() != WL_CONNECTED) delay(500);
Serial.println("WiFi start");
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(15); // 0...21
// audio.connecttospeech("Wenn die Hunde schlafen, kann der Wolf gut Schafe stehlen.", "de");
// audio.connecttospeech("When the dogs sleep, the wolf is good at stealing sheep.", "en");
audio.connecttohost(stations[cur_station].c_str());
}
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_showstreaminfo(const char *info){
Serial.print("streaminfo ");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);
}
.png)
.png)
.png)
0 件のコメント:
コメントを投稿