sd card
This commit is contained in:
parent
425bf24d88
commit
e495cdbd78
|
|
@ -2,12 +2,19 @@
|
||||||
|
|
||||||
|
|
||||||
## Pins
|
## Pins
|
||||||
|
Amplifier:
|
||||||
RX -> DIN
|
RX -> DIN
|
||||||
D8 -> BCLK
|
D8 -> BCLK
|
||||||
D4 -> LRC
|
D4 -> LRC
|
||||||
5V -> Vin
|
5V -> Vin
|
||||||
GND -> GND
|
GND -> GND
|
||||||
|
|
||||||
|
SD Card:
|
||||||
|
CS -> D1
|
||||||
|
MOSI -> D7
|
||||||
|
CLK -> D5
|
||||||
|
MISO -> D6
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
https://github.com/earlephilhower/ESP8266Audio
|
https://github.com/earlephilhower/ESP8266Audio
|
||||||
|
|
|
||||||
60
src/main.cpp
60
src/main.cpp
|
|
@ -8,9 +8,19 @@
|
||||||
#include "AudioFileSourceSPIFFS.h"
|
#include "AudioFileSourceSPIFFS.h"
|
||||||
#include "AudioGeneratorMP3.h"
|
#include "AudioGeneratorMP3.h"
|
||||||
#include "AudioOutputI2SNoDAC.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;
|
AudioGeneratorMP3 *mp3;
|
||||||
AudioFileSourceSPIFFS *file;
|
AudioFileSourceSPIFFS *file;
|
||||||
|
AudioFileSourceSD *sdFile = NULL;
|
||||||
AudioOutputI2S *out;
|
AudioOutputI2S *out;
|
||||||
|
|
||||||
unsigned long lastStart = 0;
|
unsigned long lastStart = 0;
|
||||||
|
|
@ -19,6 +29,14 @@ const int startDelay = 250;
|
||||||
|
|
||||||
void initMp3File() {
|
void initMp3File() {
|
||||||
file = new AudioFileSourceSPIFFS("/ex2.mp3");
|
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();
|
out = new AudioOutputI2S();
|
||||||
mp3 = new AudioGeneratorMP3();
|
mp3 = new AudioGeneratorMP3();
|
||||||
}
|
}
|
||||||
|
|
@ -56,6 +74,22 @@ void setup()
|
||||||
// if you get here you have connected to the WiFi
|
// if you get here you have connected to the WiFi
|
||||||
Serial.println("connected...yeey :)");
|
Serial.println("connected...yeey :)");
|
||||||
audioLogger = &Serial;
|
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();
|
SPIFFS.begin();
|
||||||
Serial.println("beginning mp3 setup...");
|
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()
|
void loop()
|
||||||
|
|
@ -72,13 +129,12 @@ void loop()
|
||||||
|
|
||||||
if (digitalRead(D3)==LOW) {
|
if (digitalRead(D3)==LOW) {
|
||||||
unsigned long now = millis();
|
unsigned long now = millis();
|
||||||
Serial.print("LOW");
|
|
||||||
if (now-lastStart>startDelay) {
|
if (now-lastStart>startDelay) {
|
||||||
if (mp3->isRunning()) {
|
if (mp3->isRunning()) {
|
||||||
mp3->stop();
|
mp3->stop();
|
||||||
}
|
}
|
||||||
initMp3File();
|
initMp3File();
|
||||||
mp3->begin(file,out);
|
mp3->begin(sdFile,out);
|
||||||
Serial.print("started.");
|
Serial.print("started.");
|
||||||
lastStart=now;
|
lastStart=now;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue