Está en la página 1de 7

Práctica no.

11 Configuración del SD Card , ESP32 y el LM35 Aplicaciones de IoT

Unidad I: Medios de almacenamiento Quinto Cuatrimestre

OBJETIVO: CONFIGURAR LA TARJETA SD CARD PARA EL ESP32 Y GUARDAR TEMPERATURAS DEL SENSOR
LM35

CONFIGURACIÓN DE PINES DEL ESP32

Observa los pines para el protocolo SPI que son MOSI, MISO, SCK, CS(pin 5) y SCK para conectar el SD Card
correctamente.
ARMAR EL SIGUIENTE CIRCUITO

En la actualización del ESP32, este en lugar de conectarse a los puertos de alimentación 3.3 y GND como se puede ver
en muchos esquemas, la nueva versión para que funciones la sd card correctamente es conectandola a los pines Vin y
GND que estan a un lado de los de alimentación (3.3 y GRD) como se ve en la figura de abajo.

Una vez que baja el Sketch, se oprime el botón Boot (Cargar) y posteriormente para ver la salida en el monitor serial se
abre y se oprime el botón EN (reset) de la placa y se verá la salida.
LIBRERÍAS REQUERIDAS PARA EL SD CARD

Para la configuración se requieren tres librerías que son:

1) Librería FS (para manipulación de los archivos del sistema)

2) Librería SD para detección de la tarjeta


3) Librería SPI para la comunicación serial con el dispositivo.

SELECCIÓN Y CONFIGURACIÓN DEL ESP32 EN EL ARDUINO


INTRODUCIR EL SIGUIENTE SKETCH QUE ESCRIBE Y AGREGA VALORES A UN ARCHIVO EN LA SD Card

/* CONEXIÓN DEL MÓDULO SD CON EL ESP32 DEVKIT V.1 DE 30 PINES


NOTA: SI TIENES EL ESP32 DE 36 PINES SÓLO CHECA SU UBICACIÓN EN EL CHIP, YA QUE CAMBIAN DE
LUGAR.

PINES_SD ESP32
Vcc Vin
Gnd Gnd
MOSI D23
MISO D19
SCK D18
CS D5
*/
#include <SD.h> //Librería propia para la micro SD Card
#include <SPI.h> // Protocolo de comunicación Serial Peripheral Interface
#include <FS.h> // Librería del File System que se encuentra en la librería propia de Arduino

void setup(){
Serial.begin(9600);
if(!SD.begin()){ // si no se inicializa la SD Card se manda un mensaje de Falla, en caso contrario
// se escriben los datos en el archivo.
Serial.println("Falla en la operación de la SD Card");
return; // retorna valor falso debido al fallo.
}
writeFile(SD, "/datos.txt", "Aqui va la información de los datos\r\n"); // función que sólo escribe una vez en el archivo
}

void loop(){
float temp =9.9; // valor de temperatura que escribe y que puede ser sustituido por el valor del sensor LM35 u otro.
String CadenaTotal=""; // se crea una variable de tipo cadena vacía para recibiir los datos concatenados
String mensaje="Vaya con el clima!!!";
CadenaTotal=String(temp)+","+mensaje+"\r\n"; // se concatenan los datos para mandarlos al archivo
Serial.println(CadenaTotal);
appendFile(SD, "/datos.txt", CadenaTotal.c_str()); // se manda a la SD al archivo datos.txt la cadena CadenaTotal
delay(5000);
}

/*-----------------------------Método para Escribir una sola vez FileWrite-------------------*/

void writeFile(fs::FS &fs, const char * path, const char * message){


Serial.printf("Escribiendo al Archivo: %s\n", path);
File file = fs.open(path, FILE_WRITE);
if(!file){
Serial.println("Falla al abrir el archivo para escribir");
return;
}
if(file.print(message)){
Serial.println("Escritura en el Archivo");
} else {
Serial.println("Falla de Escritura");
}
file.close();
}
/*---------------------Método para Agregar varios datos a un Archivo (appendFile())---------------*/

void appendFile(fs::FS &fs, const char * path, const char * message){


Serial.printf("Appending (agregando al) Archivo: %s\n", path);
File file = fs.open(path, FILE_APPEND);
if(!file){
Serial.println("Falla al abrir el archivo para agregar datos(appending)");
return;
}
if(file.print(message)){
Serial.println("Mensaje o datos agregados");
} else {
Serial.println("Falla al agregar datos");
}
file.close();
}
/*----Existen otros métodos que se pueden agregar para borrar archivos, crear directorio, etc---*/
/*----Estos métodos se encuentran en el ejemplo que se encuentra en SD(esp32) ------------*/

La salida del archivo debe de ser la siguiente:

Abre el monitor serial del ide de Arduino y oprime el botón EN de la placa y verás los mensajes que te
manda el sketch cuando logra la conexión.

En la imagen de abajo de puede ver el archivo creado llamada datos.txt


Si abres el archivo datos.txt en tu computadora verás la información guardada.

RETO:

a) Agregar el sensor LM35 al circuito y guardar dicha temperatura en la memoria SD Card en un archivo
llamado “Temperatura.txt”
b) Agregar la pantalla OLED para visualizar la temperatura que se está guardando en la SD Card.

También podría gustarte