sd card
This commit is contained in:
parent
425bf24d88
commit
e495cdbd78
|
|
@ -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
|
||||
|
|
|
|||
60
src/main.cpp
60
src/main.cpp
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue