🛠 Registro IoT autónomo con MicroSD

Kit de ensamblaje M5Stack PaperDIY (ESP32-S3) · avance · Créez un système de journalisation autonome sur l'e-paper et la MicroSD pour surveiller des capteurs sans connexion constante.

Objetivos

Este tutorial tiene como objetivo diseñar un sistema autónomo de registro de datos ambientales. La meta es utilizar el almacenamiento MicroSD para guardar lecturas periódicas y la pantalla e-paper para un resumen visual, gestionando la energía para una autonomía máxima. Exploraremos la interacción entre el bus SPI (para la tarjeta SD), el bus paralelo (para la pantalla) y la gestión de interrupciones para un funcionamiento eficiente.

Material Necesario

Pasos

En su IDE, seleccione la placa "M5Stack-ESP32-S3". Asegúrese de que el esquema de particiones esté configurado en "Huge APP" para acomodar bibliotecas gráficas pesadas.

  1. Configuración del Entorno

El módulo ESP32-S3-WROOM-1-N16R8 se comunica con la tarjeta SD a través del bus SPI. Debe definir correctamente los pines CS (Chip Select). En el código, inicialice la tarjeta SD verificando su estado. ```cpp #include <SD.h> #include <SPI.h>

  1. Inicialización del Almacenamiento MicroSD

const int SD_CS = 4; // Verifique el esquema oficial de PaperDIY para el pin CS exacto

void setupSD() { if (!SD.begin(SD_CS)) { Serial.println("Fallo en la inicialización SD"); return; } Serial.println("Tarjeta SD inicializada"); } ```

La pantalla ED047TC1 (960x540) utiliza una interfaz paralela de 8 bits. Recuerde asignar memoria de la PSRAM (8 MB) para los búferes de imagen, ya que la SRAM (512 KB) es insuficiente para el búfer de fotogramas completo. ```cpp #include <M5EPD.h> M5EPD_Canvas canvas(&M5.EPD);

  1. Gestión de la Pantalla E-Paper

void drawSummary() { M5.EPD.WriteFullFrameBuffer(); // Actualización completa canvas.createCanvas(960, 540); canvas.drawCentreString("Datos Registrados", 480, 270, 4); canvas.pushCanvas(0, 0, UPDATE_MODE_GC16); } ```

En el loop(), lea un sensor (simulado aquí), formatee la cadena y escríbala en un archivo CSV en la MicroSD. Use flush() para garantizar la escritura física en la tarjeta. ``cpp void loop() { File logFile = SD.open("log.csv", FILE_APPEND); if (logFile) { logFile.print(millis()); logFile.println(",23.5"); // Valor de ejemplo logFile.close(); } delay(60000); // 1 minuto } ``

  1. Bucle de Adquisición y Escritura

La batería de 140 mAh es limitada. Desactive WiFi y Bluetooth si no se usan. Utilice el modo Deep Sleep del ESP32-S3 entre ciclos de medición para reducir el consumo de energía en reposo.

  1. Optimización de Energía

Verificación

Inserte la tarjeta MicroSD en un PC después de la ejecución. Abra el archivo log.csv con un editor de texto o hoja de cálculo. Debería ver líneas de series temporales alineadas. En la pantalla e-paper, el texto "Datos Registrados" debe aparecer en negro nítido tras la actualización GC16.

Para Ir Más Allá

Implemente una sincronización WiFi (802.11b/g/n) para subir registros a un servidor MQTT cuando se detecte señal. También puede añadir un botón físico para forzar una actualización manual de la pantalla y ahorrar la vida útil del e-paper.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales