Tutorial ESP32 40/55 - Lettura e scrittura su scheda Micro SD | Kit di apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 40/55 - Lettura e scrittura su scheda Micro SD | Kit di apprendimento IoT ESP32 di SunFounder

In questo tutorial, impareremo come leggere e scrivere su una scheda micro SD utilizzando l'ESP32 e la scheda di espansione SunFounder ESP32. Questo ci permetterà di memorizzare dati e recuperarli in seguito, il che è essenziale per molte applicazioni IoT. Alla fine di questo tutorial, avrai un'installazione funzionante che può creare, scrivere e leggere file dalla scheda micro SD.

Per iniziare, assicurati che la tua scheda micro SD sia formattata correttamente in FAT32, poiché questo è il file system richiesto affinché l'ESP32 interagisca con la scheda. Useremo la libreria SD_MMC, che semplifica il processo di accesso ai file sulla scheda micro SD. È importante notare che la capacità massima della scheda micro SD non deve superare i 32 GB.

Spiegazione dell'hardware

I componenti principali di questo progetto includono il microcontrollore ESP32 e il modulo micro SD. L'ESP32 è un microcontrollore versatile che presenta capacità integrate di Wi-Fi e Bluetooth, rendendolo ideale per applicazioni IoT. Il modulo micro SD consente all'ESP32 di leggere e scrivere sulla scheda, abilitando l'archiviazione dei dati per varie applicazioni.

La scheda micro SD funziona utilizzando un file system per memorizzare i dati in modo strutturato. Comunica con l'ESP32 attraverso l'interfaccia SD_MMC, che consente una lettura e scrittura efficienti dei file. Questa configurazione può essere utilizzata per registrare dati, salvare immagini o qualsiasi altra applicazione in cui è necessaria la persistenza dei dati.

Istruzioni di cablaggio

ESP32-40-micro-sd-card-1

Per collegare la scheda micro SD all'ESP32, segui questi passaggi:

Prima di tutto, collega i pin di alimentazione e massa. Collega il pin VCC del modulo micro SD al pin 3.3V dell'ESP32 e collega il pin GND a uno dei pin GND dell'ESP32. Successivamente, collega i pin dati: collega il pin CS (Chip Select) del modulo micro SD al pin5sull'ESP32, il pin MOSI (Master Out Slave In) a pin23, il pin MISO (Master In Slave Out) a pin19, e il pin SCK (Serial Clock) al pin18Assicurati che queste connessioni siano sicure per evitare problemi di comunicazione.

Se stai utilizzando un'altra scheda di espansione, i numeri dei pin possono variare, quindi fai riferimento alla documentazione specifica per la tua scheda. Il cablaggio è cruciale per il corretto funzionamento della lettura e scrittura di file sulla scheda micro SD.

Esempi di codice e guida passo passo

Ora, diamo un'occhiata alle parti principali del codice che interagiscono con la scheda micro SD. L'impostazione inizia inizializzando la comunicazione seriale e controllando se la scheda micro SD è stata montata correttamente.

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;
}

In questo frammento di codice, la comunicazione seriale è impostata su una velocità di trasmissione di 115200, che è importante per monitorare l'output.SD_MMC.begin()La funzione tenta di montare la scheda SD; se non riesce, viene stampato un messaggio di errore sul monitor seriale.

La parte successiva del codice crea un nuovo file sulla scheda micro SD e vi scrive una riga di testo.

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 file

Qui, un file chiamatotest.txtè aperto in modalità scrittura. Se il file viene aperto con successo, scrive una riga di testo e stampa un messaggio di successo. Se l'operazione di scrittura fallisce, viene stampato invece un messaggio di errore. Infine, il file viene chiuso per garantire che le modifiche siano salvate.

Il codice legge anche i file dalla directory principale della scheda micro SD e stampa i loro nomi e dimensioni.

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
}

Questo frammento apre la directory radice e itera attraverso tutti i file, stampando i loro nomi e dimensioni sul monitor seriale. Questo è utile per verificare che i dati siano stati scritti correttamente e per vedere i contenuti della scheda SD.

Per ulteriori dettagli, fare riferimento al codice completo caricato sotto l'articolo.

Dimostrazione / Cosa Aspettarsi

Dopo aver caricato il codice e ripristinato l'ESP32, dovresti vedere messaggi nel monitor seriale che indicano se la scheda SD è stata montata con successo e se le operazioni sui file sono state eseguite correttamente. Vedrai anche l'elenco dei file trovati nella directory principale, il che conferma che i dati sono stati scritti correttamente (nel video alle 13:45).

Le trappole comuni includono assicurarsi che la scheda micro SD sia formattata e collegata correttamente, oltre a verificare che il monitor seriale sia impostato sulla corretta velocità di trasmissione. Se si verificano problemi, ricontrolla il cablaggio e le connessioni.

Marcatori temporali del video

  • 00:00 Inizio
  • 1:45 Introduzione alla scheda Micro SD su ESP32
  • 3:46 Pagina dei documenti
  • 4:43 Codice Arduino
  • 8:09 Selezione della scheda ESP32 e della porta COM nell'IDE di Arduino
  • 9:51 Dimostrazione di scrittura su scheda MicroSD
  • 11:12 Visualizzazione di file scritti su PC

Immagini

ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-2
ESP32-40-micro-sd-card-2
841-ESP32 Tutorial 40/55- Arduino code for micro SD card
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

File📁

Nessun file disponibile.