# ESP32-audioI2S
Plays mp3, m4a and wav files from SD card via I2S with external hardware.
HELIX-mp3 and -aac decoder is included.
Works with MAX98357A (3 Watt amplifier with DAC), connected three lines (DOUT, BLCK, LRC) to I2S.
For stereo are two MAX98357A necessary. AudioI2S works with UDA1334A (Adafruit I2S Stereo Decoder Breakout Board) and PCM5102A.
Other HW may work but not tested. Plays also icy-streams and GoogleTTS. Can be compiled with Arduino IDE. [WIKI](https://github.com/schreibfaul1/ESP32-audioI2S/wiki)
```` c++
#include "Arduino.h"
#include "WiFi.h"
#include "Audio.h"
#include "SD.h"
#include "FS.h"
// Digital I/O used
#define SD_CS 5
#define SPI_MOSI 23
#define SPI_MISO 19
#define SPI_SCK 18
#define I2S_DOUT 25
#define I2S_BCLK 27
#define I2S_LRC 26
Audio audio;
String ssid = "*******";
String password = "*******";
void setup() {
pinMode(SD_CS, OUTPUT); digitalWrite(SD_CS, HIGH);
SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI);
Serial.begin(115200);
SD.begin(SD_CS);
WiFi.disconnect();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid.c_str(), password.c_str());
while (WiFi.status() != WL_CONNECTED) delay(1500);
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(21); // 0...21
// audio.connecttoFS(SD, "/320k_test.mp3");
// audio.connecttohost("http://www.wdr.de/wdrlive/media/einslive.m3u");
// audio.connecttohost("http://macslons-irish-pub-radio.com/media.asx");
// audio.connecttohost("http://mp3.ffh.de/radioffh/hqlivestream.aac"); // 128k aac
audio.connecttohost("http://mp3.ffh.de/radioffh/hqlivestream.mp3"); // 128k mp3
// audio.connecttohost("https://github.com/schreibfaul1/ESP32-audioI2S/raw/master/additional_info/Testfiles/sample1.m4a"); // m4a
// audio.connecttohost("https://github.com/schreibfaul1/ESP32-audioI2S/raw/master/additional_info/Testfiles/test_16bit_stereo.wav"); // wav
// audio.connecttospeech("Wenn die Hunde schlafen, kann der Wolf gut Schafe stehlen.", "de");
}
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_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);
}
````
Breadboard
![Breadboard](https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/additional_info/Breadboard.jpg)
Wiring
![Wiring](https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/additional_info/ESP32_I2S_PCM5102A.JPG)
Impulse diagram
![Impulse diagram](https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/additional_info/Impulsdiagramm.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ESP32-S3 camera摄像头开发电路设计资料 (492个子文件)
128bit 16B
128bit_key 16B
192bit 24B
192bit_1 24B
192bit_2 24B
224bit 28B
256bit 32B
256bit_1 32B
256bit_1_256bit_2_combined 64B
256bit_2 32B
64bit 8B
92bit 8B
96bit 12B
GENERIC_S3-20220618-v1.19.1.bin 1.34MB
one_mb.bin 1024KB
nodemcu-master-7-modules-2017-01-19-11-10-03-integer.bin 381KB
esp8266_deepsleep.bin 291KB
hello-world-signed-encrypted-aes-xts-256.bin 192KB
hello-world-signed-encrypted.bin 192KB
hello-world-signed-encrypted-aes-xts.bin 192KB
hello-world-signed.bin 192KB
esp_idf_blink_esp32s2.bin 178KB
fifty_kb.bin 50KB
bootloader_signed_v2_ecdsa192.bin 36KB
bootloader_multi_signed_v2.bin 36KB
bootloader_signed_v2.bin 36KB
bootloader_signed_v2_ecdsa256.bin 36KB
bootloader_unsigned_v2.bin 30KB
bootloader_digested.bin 25KB
bootloader_signed.bin 21KB
bootloader-encrypted.bin 21KB
bootloader-encrypted-confc.bin 21KB
bootloader-encrypted-conf9.bin 21KB
bootloader-encrypted-aes-xts.bin 21KB
bootloader.bin 21KB
bootloader-encrypted-conf3.bin 21KB
bootloader-encrypted-conf0.bin 21KB
bootloader_esp32s2.bin 21KB
bootloader_esp32s3.bin 18KB
bootloader_esp32s3beta2.bin 18KB
bootloader_esp32c2.bin 18KB
bootloader_esp32c3.bin 17KB
bootloader_esp32.bin 8KB
sector.bin 4KB
bootloader_esp8266.bin 3KB
one_kb.bin 1024B
one_kb_all_ef.bin 1024B
digest_iv.bin 128B
helloworld-esp32_edit.bin 128B
helloworld-esp32.bin 128B
partitions_singleapp.bin 96B
helloworld-esp8266.bin 80B
512bit_key.bin 64B
esp32s3_header.bin 48B
ecdsa192_public_key_digest_v2.bin 32B
ef-flashencryption-key.bin 32B
rsa_public_key_digest.bin 32B
ecdsa256_public_key_digest_v2.bin 32B
256bit_key.bin 32B
256bit_iv.bin 32B
aes_key.bin 32B
onebyte.bin 1B
zerolength.bin 0B
miniz.c 309KB
ch343.c 57KB
stub_flasher.c 15KB
stub_write_flash.c 13KB
stub_io.c 8KB
stub_commands.c 8KB
slip.c 2KB
main.c 204B
setup.cfg 876B
.covconf 22B
aac_decoder.cpp 442KB
Audio.cpp 195KB
mp3_decoder.cpp 178KB
app_httpd.cpp 43KB
flac_decoder.cpp 22KB
app_httpd.cpp 9KB
sd_read_write.cpp 5KB
sd_read_write.cpp 5KB
sd_read_write.cpp 4KB
ws2812.cpp 519B
partitions.csv 230B
esp32-app-template.elf 3.63MB
esp32-app-cust-ver-info.elf 2.78MB
esp8266-openrtos-blink-v2.elf 992KB
esp32-zephyr.elf 540KB
esp8266-nonossdkv20-at-v2.elf 532KB
esp8266-nonosssdk20-iotdemo.elf 459KB
esp8266-nonossdkv12-example.elf 426KB
esp32-bootloader.elf 362KB
esp32-too-many-sections.elf 43KB
thonny-4.0.1.exe 20.48MB
CH343SER.EXE 608KB
.git-blame-ignore-revs 407B
.gitignore 112B
camera_index.h 147KB
miniz.h 66KB
aac_decoder.h 24KB
共 492 条
- 1
- 2
- 3
- 4
- 5
资源评论
黄灵韵
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功