This commit is contained in:
Stefan Ostermann 2023-06-03 00:46:22 +02:00
parent 425bf24d88
commit e495cdbd78
2 changed files with 65 additions and 2 deletions

View File

@ -2,12 +2,19 @@
## Pins
Amplifier:
RX -> DIN
D8 -> BCLK
D4 -> LRC
5V -> Vin
GND -> GND
SD Card:
CS -> D1
MOSI -> D7
CLK -> D5
MISO -> D6
## Links
https://github.com/earlephilhower/ESP8266Audio

View File

@ -8,9 +8,19 @@
#include "AudioFileSourceSPIFFS.h"
#include "AudioGeneratorMP3.h"
#include "AudioOutputI2SNoDAC.h"
#include "AudioFileSourceSD.h"
#include <SPI.h>
#include <SD.h>
File root;
File mp3File;
void printDirectory(File dir, int numTabs);
AudioGeneratorMP3 *mp3;
AudioFileSourceSPIFFS *file;
AudioFileSourceSD *sdFile = NULL;
AudioOutputI2S *out;
unsigned long lastStart = 0;
@ -19,6 +29,14 @@ const int startDelay = 250;
void initMp3File() {
file = new AudioFileSourceSPIFFS("/ex2.mp3");
File next = root.openNextFile();
if (!next) {
root = SD.open("/");
}
if (String(next.name()).endsWith(".mp3")) {
sdFile = new AudioFileSourceSD(next.name());
}
out = new AudioOutputI2S();
mp3 = new AudioGeneratorMP3();
}
@ -56,6 +74,22 @@ void setup()
// if you get here you have connected to the WiFi
Serial.println("connected...yeey :)");
audioLogger = &Serial;
Serial.print("Initializing SD card...");
if (!SD.begin(D1)) {
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
root = SD.open("/");
//printDirectory(root, 0);
Serial.println("done!");
SPIFFS.begin();
Serial.println("beginning mp3 setup...");
@ -64,6 +98,29 @@ void setup()
}
void printDirectory(File dir, int numTabs) {
while (true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
break;
}
for (uint8_t i = 0; i < numTabs; i++) {
Serial.print('\t');
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
printDirectory(entry, numTabs + 1);
} else {
// files have sizes, directories do not
Serial.print("\t\t");
Serial.println(entry.size(), DEC);
}
entry.close();
}
}
void loop()
@ -72,13 +129,12 @@ void loop()
if (digitalRead(D3)==LOW) {
unsigned long now = millis();
Serial.print("LOW");
if (now-lastStart>startDelay) {
if (mp3->isRunning()) {
mp3->stop();
}
initMp3File();
mp3->begin(file,out);
mp3->begin(sdFile,out);
Serial.print("started.");
lastStart=now;
}