//Tarjeta SD
#include "FS.h"
#include "SD.h"
#include "SPI.h"
//RFID-RC522
#include "MFRC522.h"
//Definicion
MFRC522 rfid(27, 26);
//############FUNCIONES###################
void montar_SD(){
Serial.println("\n PRUEBA DE TARJETA SD");
// Intentar montar la tarjeta en el pin CS = 5
if (!SD.begin(5)) {
Serial.println("ERROR: No se puede montar la tarjeta SD");
Serial.println("Verificar las conexiones, el formato FAT32 de SD y la alimentación (5V)");
return;
}
Serial.println("Tarjeta SD montada");
// tipo de tarjeta
uint8_t cardType = SD.cardType();
if (cardType == CARD_NONE) {
Serial.println("No se detectó ninguna tarjeta SD");
return;
}
// Mostrar el tipo de tarjeta
Serial.print("Tipo de tarjeta: ");
switch (cardType) {
case CARD_MMC: Serial.println("MMC"); break;
case CARD_SD: Serial.println("SDSC"); break;
case CARD_SDHC: Serial.println("SDHC"); break;
default: Serial.println("Desconocido");
}
// Mostrar la capacidad de la tarjeta en MB
uint64_t cardSize = SD.cardSize() / (1024 * 1024);
Serial.printf("Tamaño total: %llu MB\n", cardSize);
// Mostrar espacio total y espacio usado
Serial.printf("Espacio total del sistema: %llu MB\n", SD.totalBytes() / (1024 * 1024));
Serial.printf("Espacio usado: %llu MB\n", SD.usedBytes() / (1024 * 1024));
Serial.println("\nPrueba completada. La tarjeta SD está lista para usar.");
}
void escribirarchivo(fs::FS &fs, const char * path, const char * message) {
Serial.printf("Escribiendo archivo: %s\n", path);
File file = fs.open(path, FILE_WRITE);
if (!file) {
Serial.println("Error al abrir el archivo para escritura");
return;
}
if (file.print(message)) {
Serial.println("Archivo escrito correctamente");
} else {
Serial.println("Error en la escritura");
}
file.close();
}
void leerRFID(){
if(!rfid.PICC_IsNewCardPresent()){
return;
}
if(!rfid.PICC_ReadCardSerial()){
return;
}
Serial.print("UID: ");
String uidTexto ="";
for(byte i=0; i< rfid.uid.size; i++){
if (rfid.uid.uidByte[i]<0x10){
Serial.print("0");
uidTexto += "0";
}
Serial.print(rfid.uid.uidByte[i], HEX);
Serial.print("");
uidTexto += String(rfid.uid.uidByte[i],HEX);
}
Serial.println();
File file = SD.open("/eventos.txt", FILE_APPEND);
if (file) {
file.print("UID: ");
file.println(uidTexto);
file.close();
Serial.println("UID guardado en SD");
}
rfid.PICC_HaltA();
}
void setup() {
Serial.begin(115200);
delay(1000);
SPI.begin(18, 19, 23);
montar_SD();
escribirarchivo(SD, "/prueba.txt", "escribiendo en SD");
rfid.PCD_Init();
Serial.println("RFID listo");
}
void loop() {
vTaskDelay(portMAX_DELAY);
leerRFID();
delay(100);
}Loading
mfrc522
mfrc522