Menyimpan Data ke SD Card menggunakan Modul Sd card dengan ESP32

ESP32 memiliki kemampuan untuk berkomunikasi dengan modul SD card, yang memudahkan pengguna untuk menyimpan dan membaca data pada kartu memori. Artikel ini memberikan panduan praktis untuk menggunakan modul SD card dengan ESP32, termasuk cara menulis dan membaca file dari kartu SD.

Komponen yang Dibutuhkan

  1. ESP32
    Mikrokontroler utama untuk berkomunikasi dengan modul SD card.
  2. Modul SD Card
    Modul yang mendukung komunikasi SPI untuk membaca dan menulis data ke kartu SD.
  3. MicroSD Card
    Kartu memori dengan format FAT32.
  4. Kabel jumper
    Untuk koneksi antar perangkat.
  5. Power supply
    Sumber daya untuk ESP32.

Rangkaian

Hubungkan modul SD card ke ESP32 sesuai konfigurasi SPI berikut:

Pin SD CardESP32Keterangan
VCC3.3VSumber daya untuk modul
GNDGNDGround
CSGPIO 15Chip Select (CS)
SCKGPIO 2Serial Clock (SCLK)
MOSIGPIO 13Master Out Slave In (MOSI)
MISOGPIO 12Master In Slave Out (MISO)

Kode Program

Berikut adalah contoh kode untuk menulis dan membaca data pada file di SD card:

#include <FS.h>
#include <SD.h>
#include <SPI.h>

// Konfigurasi pin SPI
const int SCLK_PIN = 2;
const int CS_PIN = 15;
const int MOSI_PIN = 13;
const int MISO_PIN = 12;

const char *filename = "/data.txt";

void setup() {
  Serial.begin(115200);

  // Inisialisasi pin SPI
  SPI.begin(SCLK_PIN, MISO_PIN, MOSI_PIN, CS_PIN);

  // Inisialisasi SD card
  if (!SD.begin(CS_PIN)) {
    Serial.println("SD card Initialization failed!");
    return;
  }

  Serial.println("SD card Initialization success!");
  saveDataToFile();
  readDataFromFile();
}

void loop() {
  // Tidak ada yang perlu dilakukan di dalam loop
}

void saveDataToFile() {
  // Membuka file untuk penulisan
  File file = SD.open(filename, FILE_WRITE);

  if (file) {
    // Menulis data ke file
    file.println("Hello, this is a sample data!");
    file.close();
    Serial.println("Data saved to file successfully.");
  } else {
    Serial.println("Failed to open file for writing.");
  }
}

void readDataFromFile() {
  // Membuka file untuk membaca
  File file = SD.open(filename);

  if (file) {
    // Membaca data dari file dan menampilkannya di Serial Monitor
    Serial.println("Reading data from file:");
    while (file.available()) {
      Serial.write(file.read());
    }
    file.close();
  } else {
    Serial.println("Failed to open file for reading.");
  }
}

Penjelasan Kode

  1. Inisialisasi SPI dan SD Card
    • SPI.begin(SCLK_PIN, MISO_PIN, MOSI_PIN, CS_PIN) digunakan untuk mengatur komunikasi SPI dengan pin yang sesuai.
    • SD.begin(CS_PIN) memulai komunikasi dengan SD card. Jika inisialisasi gagal, pesan kesalahan akan ditampilkan.
  2. Menulis Data ke File
    • File file = SD.open(filename, FILE_WRITE) membuka file dengan nama data.txt untuk penulisan.
    • file.println("Hello, this is a sample data!") menulis data ke file.
  3. Membaca Data dari File
    • File file = SD.open(filename) membuka file untuk membaca.
    • file.read() membaca data dari file byte demi byte, kemudian ditampilkan di Serial Monitor.
  4. File Path
    • Nama file yang digunakan, seperti "/data.txt", harus dimulai dengan / karena itu adalah konvensi dalam sistem file ESP32.

Kalau ingin menghubungi lebih lanjut bisa hubungi nomor dibawah:

By Ilham

Mau Konsultasi & Diskusi ?