Tutorial ESP32 40/55 - Membaca dan menulis ke Kartu Micro SD | Kit Pembelajaran IoT ESP32 SunFounder
Dalam tutorial ini, kita akan mempelajari cara membaca dari dan menulis ke kartu micro SD menggunakan ESP32 dan papan ekstensi ESP32 SunFounder. Ini akan memungkinkan kita untuk menyimpan data dan mengambilnya kembali nanti, yang sangat penting untuk banyak aplikasi IoT. Di akhir tutorial ini, Anda akan memiliki pengaturan yang berfungsi yang dapat membuat, menulis ke, dan membaca file dari kartu micro SD.
Untuk memulai, pastikan kartu micro SD Anda diformat dengan benar ke FAT32, karena ini adalah sistem file yang diperlukan agar ESP32 dapat berinteraksi dengan kartu tersebut. Kita akan menggunakan pustaka SD_MMC, yang menyederhanakan proses mengakses file di kartu micro SD. Penting untuk dicatat bahwa kapasitas maksimum untuk kartu micro SD tidak boleh melebihi 32 GB.
Penjelasan Perangkat Keras
Komponen utama dalam proyek ini termasuk mikrokontroler ESP32 dan modul kartu micro SD. ESP32 adalah mikrokontroler serbaguna yang dilengkapi dengan kemampuan Wi-Fi dan Bluetooth bawaan, menjadikannya ideal untuk aplikasi IoT. Modul kartu micro SD memungkinkan ESP32 untuk membaca dari dan menulis ke kartu, memungkinkan penyimpanan data untuk berbagai aplikasi.
Kartu micro SD beroperasi dengan menggunakan sistem file untuk menyimpan data secara terstruktur. Kartu ini berkomunikasi dengan ESP32 melalui antarmuka SD_MMC, yang memungkinkan pembacaan dan penulisan file secara efisien. Pengaturan ini dapat digunakan untuk mencatat data, menyimpan gambar, atau aplikasi lain apa pun yang memerlukan persistensi data.
Instruksi Pengkabelan

Untuk menghubungkan kartu micro SD ke ESP32, ikuti langkah-langkah berikut:
Pertama, hubungkan pin daya dan ground. Hubungkan pin VCC modul kartu micro SD ke pin 3.3V pada ESP32, dan hubungkan pin GND ke salah satu pin GND pada ESP32. Selanjutnya, hubungkan pin data: hubungkan pin CS (Chip Select) modul kartu micro SD ke pin 5 pada ESP32, pin MOSI (Master Out Slave In) ke pin 23, pin MISO (Master In Slave Out) ke pin 19, dan pin SCK (Serial Clock) ke pin 18. Pastikan koneksi ini aman untuk menghindari masalah komunikasi.
Jika Anda menggunakan papan ekstensi yang berbeda, nomor pin mungkin berbeda, jadi lihat dokumentasi khusus untuk papan Anda. Pengkabelan sangat penting untuk keberhasilan operasi membaca dan menulis file ke kartu micro SD.
Contoh Kode & Penjelasan
Sekarang, mari kita lihat bagian utama dari kode yang berinteraksi dengan kartu micro SD. Pengaturan dimulai dengan menginisialisasi komunikasi serial dan memeriksa apakah kartu micro SD berhasil dipasang.
Serial.begin(115200); // Inisialisasi komunikasi serial
if (!SD_MMC.begin()) { // Periksa apakah kartu SD berhasil dipasang
Serial.println("Gagal memasang kartu SD"); // Cetak pesan kesalahan jika kartu SD gagal dipasang
return;
}
Dalam potongan kode ini, komunikasi serial diatur ke baud rate 115200, yang penting untuk memantau keluaran. Fungsi SD_MMC.begin() mencoba memasang kartu SD; jika gagal, pesan kesalahan dicetak ke monitor serial.
Bagian berikutnya dari kode membuat file baru di kartu micro SD dan menulis satu baris teks ke dalamnya.
File file = SD_MMC.open("/test.txt", FILE_WRITE);
if (!file) {
Serial.println("Gagal membuka file untuk penulisan"); // Cetak pesan kesalahan jika file gagal dibuka
return;
}
if (file.println("Tes penulisan file")) { // Tulis satu baris teks ke file
Serial.println("Penulisan file berhasil"); // Cetak pesan sukses jika operasi penulisan berhasil
} else {
Serial.println("Penulisan file gagal"); // Cetak pesan kesalahan jika operasi penulisan gagal
}
file.close(); // Tutup file
Di sini, file bernama test.txt dibuka dalam mode tulis. Jika file berhasil dibuka, ia menulis satu baris teks dan mencetak pesan sukses. Jika operasi penulisan gagal, pesan kesalahan dicetak sebagai gantinya. Terakhir, file ditutup untuk memastikan perubahan tersimpan.
Kode ini juga membaca file dari direktori root kartu micro SD dan mencetak nama serta ukurannya.
File root = SD_MMC.open("/"); // Buka direktori root kartu SD
while (File file = root.openNextFile()) { // Ulangi semua file di direktori root
Serial.print(file.name()); // Cetak nama file
Serial.print("\t");
Serial.println(file.size()); // Cetak ukuran file
file.close(); // Tutup file
}
Potongan kode ini membuka direktori root dan mengulangi semua file, mencetak nama dan ukurannya ke monitor serial. Ini berguna untuk memverifikasi bahwa data berhasil ditulis dan untuk melihat isi kartu SD.
Untuk detail lebih lanjut, lihat kode lengkap yang dimuat di bawah artikel.
Demonstrasi / Apa yang Diharapkan
Setelah mengunggah kode dan mengatur ulang ESP32, Anda akan melihat pesan di monitor serial yang menunjukkan apakah kartu SD berhasil dipasang dan apakah operasi file berhasil. Anda juga akan melihat daftar file yang ditemukan di direktori root, yang mengonfirmasi bahwa data ditulis dengan benar (dalam video pada 13:45).
Kesalahan umum termasuk memastikan bahwa kartu micro SD diformat dengan benar dan terhubung, serta memverifikasi bahwa monitor serial diatur ke baud rate yang benar. Jika ada masalah, periksa kembali pengkabelan dan koneksi Anda.
Stempel Waktu Video
- 00:00 Mulai
- 1:45 Pengenalan kartu Micro SD pada ESP32
- 3:46 Halaman dokumen
- 4:43 Kode Arduino
- 8:09 Memilih papan ESP32 dan port COM di Arduino IDE
- 9:51 Demonstrasi penulisan kartu MicroSD
- 11:12 Melihat file yang ditulis di PC
#include "SD_MMC.h"
void setup() {
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;
}
// Create a file in the root directory of SD card and open it in write mode.
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
File root = SD_MMC.open("/"); // Open the root directory of SD card
if (!root) {
Serial.println("Failed to open directory"); // Print error message if directory failed to open
return;
}
Serial.println("Files found in root directory:"); // Print the list of files found in the root directory
while (File file = root.openNextFile()) { // Loop through all the files in the root directory
Serial.print(" ");
Serial.print(file.name()); // Print the filename
Serial.print("\t");
Serial.println(file.size()); // Print the filesize
file.close(); // Close the file
}
}
void loop() {} // Empty loop function, does nothing
Common Course Links
Common Course Files
Hal-hal yang mungkin Anda butuhkan
-
AliExpressPurchase a microSD card module from AliExpresss.click.aliexpress.com
-
BanggoodPurchase a microSD card module from Banggoodbanggood.com
Sumber daya & referensi
-
DokumentasiESP32 Tutorial 40/55- SunFounder doc page for MicroSD carddocs.sunfounder.com
-
EksternalPurchase a microSD card module from AliExpresss.click.aliexpress.com
-
Eksternal
-
Eksternal
-
EksternalPurchase a microSD card module from Banggoodbanggood.com
Berkas📁
Tidak ada file tersedia.