Tutorial ESP32 40/55 - Lectura y escritura en tarjeta Micro SD | Kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, aprenderemos cómo leer y escribir en una tarjeta micro SD utilizando el ESP32 y la placa de expansión SunFounder ESP32. Esto nos permitirá almacenar datos y recuperarlos más tarde, lo cual es esencial para muchas aplicaciones de IoT. Al final de este tutorial, tendrás una configuración funcional que puede crear, escribir y leer archivos de la tarjeta micro SD.
Para empezar, asegúrate de que tu tarjeta micro SD esté formateada correctamente en FAT32, ya que este es el sistema de archivos requerido para que el ESP32 interactúe con la tarjeta. Estaremos utilizando la biblioteca SD_MMC, que simplifica el proceso de acceso a los archivos en la tarjeta micro SD. Es importante tener en cuenta que la capacidad máxima para la tarjeta micro SD no debe exceder los 32 GB.
Hardware explicado
Los componentes principales de este proyecto incluyen el microcontrolador ESP32 y el módulo de tarjeta micro SD. El ESP32 es un microcontrolador versátil que cuenta con capacidades integradas de Wi-Fi y Bluetooth, lo que lo hace ideal para aplicaciones de IoT. El módulo de tarjeta micro SD permite al ESP32 leer y escribir en la tarjeta, habilitando el almacenamiento de datos para diversas aplicaciones.
La tarjeta micro SD funciona utilizando un sistema de archivos para almacenar datos de manera estructurada. Se comunica con el ESP32 a través de la interfaz SD_MMC, que permite una lectura y escritura eficientes de archivos. Esta configuración se puede utilizar para registrar datos, guardar imágenes o cualquier otra aplicación donde se requiera persistencia de datos.
Instrucciones de cableado

Para conectar la tarjeta micro SD al ESP32, sigue estos pasos:
Primero, conecta los pines de alimentación y tierra. Conecta el pin VCC del módulo de tarjeta micro SD al pin de 3.3V en el ESP32 y conecta el pin GND a uno de los pines GND en el ESP32. A continuación, conecta los pines de datos: conecta el pin CS (Chip Select) del módulo de tarjeta micro SD al pin.5en el ESP32, el pin MOSI (Master Out Slave In) a pin23, el pin MISO (Master In Slave Out) a pin19y el pin SCK (Reloj en serie) al pin18Asegúrate de que estas conexiones estén seguras para evitar cualquier problema de comunicación.
Si estás utilizando una tabla de extensiones diferente, los números de pin pueden variar, así que consulta la documentación específica de tu tabla. El cableado es crucial para el funcionamiento exitoso de la lectura y escritura de archivos en la tarjeta micro SD.
Ejemplos de código y guía paso a paso
Ahora, echemos un vistazo a las partes principales del código que interactúan con la tarjeta micro SD. La configuración comienza con la inicialización de la comunicación serie y la verificación de si la tarjeta micro SD está montada correctamente.
Serial.begin(115200); // Initialize serial communication
if (!SD_MMC.begin()) { // Check if SD card is mounted successfully
Serial.println("Failed to mount SD card"); // Print error message if SD card failed to mount
return;
}En este fragmento de código, la comunicación serial se establece a una velocidad de baudios de 115200, lo cual es importante para monitorizar la salida. ElSD_MMC.begin()la función intenta montar la tarjeta SD; si falla, se imprime un mensaje de error en el monitor serial.
La siguiente parte del código crea un nuevo archivo en la tarjeta micro SD y escribe una línea de texto en él.
File file = SD_MMC.open("/test.txt", FILE_WRITE);
if (!file) {
Serial.println("Failed to open file for writing"); // Print error message if file failed to open
return;
}
if (file.println("Test file write")) { // Write a line of text to the file
Serial.println("File write successful"); // Print success message if write operation is successful
} else {
Serial.println("File write failed"); // Print error message if write operation failed
}
file.close(); // Close the fileAquí, un archivo llamadotest.txtse abre en modo de escritura. Si el archivo se abre correctamente, escribe una línea de texto y imprime un mensaje de éxito. Si la operación de escritura falla, se imprime un mensaje de error en su lugar. Finalmente, el archivo se cierra para asegurar que los cambios se guarden.
El código también lee archivos del directorio raíz de la tarjeta micro SD y imprime sus nombres y tamaños.
File root = SD_MMC.open("/"); // Open the root directory of SD card
while (File file = root.openNextFile()) { // Loop through all the files in the root directory
Serial.print(file.name()); // Print the filename
Serial.print("\t");
Serial.println(file.size()); // Print the filesize
file.close(); // Close the file
}Este fragmento abre el directorio raíz e itera a través de todos los archivos, imprimiendo sus nombres y tamaños en el monitor serie. Esto es útil para verificar que los datos se escribieron correctamente y para ver el contenido de la tarjeta SD.
Para más detalles, consulte el código completo cargado debajo del artículo.
Demostración / Qué Esperar
Después de cargar el código y reiniciar el ESP32, deberías ver mensajes en el monitor serial que indican si la tarjeta SD se montó correctamente y si las operaciones de archivo fueron exitosas. También verás la lista de archivos encontrados en el directorio raíz, lo que confirma que los datos se escribieron correctamente (en el video a las 13:45).
Las trampas comunes incluyen asegurarse de que la tarjeta micro SD esté formateada y conectada correctamente, así como verificar que el monitor serial esté configurado a la tasa de baudios correcta. Si surgen problemas, revisa nuevamente tu cableado y conexiones.
Marcas de tiempo del video
- 00:00 Iniciar
- 1:45 Introducción a la tarjeta Micro SD en ESP32
- 3:46 Página de documentos
- 4:43 Código de Arduino
- 8:09 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE
- 9:51 Demostración de escritura en tarjeta MicroSD
- 11:12 Visualizando archivos escritos en PC
Common Course Links
Common Course Files
Cosas que podrías necesitar
-
AliExpressCompra un módulo de tarjeta microSD en AliExpress.s.click.aliexpress.com
-
BanggoodCompra un módulo de tarjeta microSD en Banggood.banggood.com
Recursos y referencias
-
DocumentaciónTutorial ESP32 40/55 - Página de documento de SunFounder para tarjeta MicroSDdocs.sunfounder.com
-
ExternoCompra un módulo de tarjeta microSD en AliExpress.s.click.aliexpress.com
-
Externo
-
Externo
-
ExternoCompra un módulo de tarjeta microSD en Banggood.banggood.com
Archivos📁
No hay archivos disponibles.