Card Reader WIP

This commit is contained in:
Stefan Ostermann 2023-06-18 23:58:30 +02:00
parent 35d62e9bf0
commit 1258a23dc4
5 changed files with 46 additions and 9 deletions

View File

@ -27,7 +27,7 @@ MISO -> D6
```
## TODOs
* Card Reader with SPI. Configure hspi, second SPI channel?
* Card Reader with SPI. Configure hspi, second SPI channel? Or does SD Card + RFID run at the same channel?
![](images/wemos-d1-mini-esp32.png)

View File

@ -17,5 +17,6 @@ lib_deps =
me-no-dev/AsyncTCP@^1.1.1
me-no-dev/ESP Async WebServer@^1.2.3
alanswx/ESPAsyncWiFiManager@^0.31
miguelbalboa/MFRC522@^1.4.10
monitor_speed = 115200
board_build.partitions = huge_app.csv

View File

@ -5,5 +5,11 @@ void stop();
void start();
boolean buttonPressed(const uint8_t pin);
unsigned long lastStart = 0;
const int startDelay = 250;
#endif

View File

@ -2,6 +2,7 @@
#define HELPER_H_
#include <SD.h>
#include "globals.h"
struct DirectoryNode {
@ -89,4 +90,6 @@ DirectoryNode* findFirstMP3Node(DirectoryNode* currentNode) {
return NULL;
}
#endif /* HELPER_H_ */

View File

@ -9,12 +9,24 @@
#include "Audio.h"
#include <SPI.h>
#include <SD.h>
#include <MFRC522.h>//RFID Reader
// define pins for RFID
#define CS_RFID 32
#define RST_RFID 33
// Audio DAC
#define I2S_DOUT 26 // connect to DAC pin DIN
#define I2S_BCLK 27 // connect to DAC pin BCK
#define I2S_LRC 25 // connect to DAC pin LCK
#include <SPI.h>
#include <SD.h>
#define BTN_START_STOP 17 // Button on D3 and GND
#include "globals.h"
#include "WebContent.h"
@ -24,9 +36,7 @@
File root;
File mp3File;
unsigned long lastStart = 0;
const int startDelay = 250;
Audio audio;
@ -42,6 +52,8 @@ boolean blockState = false;
void playNextMp3()
{
blockState = true;
@ -161,7 +173,7 @@ void setup()
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(D3, INPUT_PULLUP);
pinMode(BTN_START_STOP, INPUT_PULLUP);
// first parameter is name of access point, second is the password
AsyncWiFiManager wifiManager(&server, &dns);
@ -219,13 +231,28 @@ void loop()
{
audio.loop();
if (digitalRead(D3) == LOW)
if (buttonPressed(BTN_START_STOP)) {
if (audio.isRunning()) {
stop();
} else {
start();
}
}
}
boolean buttonPressed(const uint8_t pin) {
if (digitalRead(pin) == LOW)
{
unsigned long now = millis();
if (now - lastStart > startDelay)
{
playNextMp3();
lastStart = now;
return true;
}
}
}
return false;
}