Pencatatan data dengan Arduino dan modul kartu SD

Data Logging with Arduino and an SD Card Module

Pencatatan data adalah aspek penting dari banyak orang IoT, pemantauan lingkungan, dan proyek berbasis sensor. Dengan Arduino dan modul kartu SD, Anda bisa Simpan data sensor, cap waktu, dan bacaan lainnya untuk analisis di masa depan. Panduan ini akan menunjukkan kepada Anda bagaimana Hubungkan modul kartu SD ke Arduino, Tulis dan baca data, dan selesaikan masalah umum.


1. Apa yang Anda butuhkan

Dewan Arduino (UNO, mega, nano, dll.)
Modul Kartu Micro SD (Berbasis SPI)
Kartu MicroSD (FAT32 diformat, 2GB -32GB direkomendasikan)
Kabel jumper
Sensor (opsional, mis., DHT11, BMP280, dll.)

🔹 Catatan: Modul SD berkomunikasi dengan Arduino menggunakan SPI (antarmuka periferal serial).


2. Pengkabelan Modul Kartu SD ke Arduino

Pin Modul Kartu SD Arduino Uno Pin Arduino Mega Pin
Vcc 5v 5v
Gnd Gnd Gnd
Miso 12 (SPI miso) 50 (SPI miso)
Mosi 11 (SPI MOSI) 51 (SPI MOSI)
Sck 13 (SPI SCK) 52 (SPI SCK)
CS (chip pilih) 10 (SPI CS) 53 (SPI CS)

3. Memasang pustaka yang diperlukan

  1. Membuka Ide Arduino.
  2. Pergi ke Sketsa → Sertakan Perpustakaan → Kelola Perpustakaan.
  3. Cari Sd dan instal Perpustakaan SD oleh Arduino.

4. Menginisialisasi Kartu SD (Tes Jika Modul SD Bekerja)

Gunakan yang berikut Kode tes dasar Untuk memeriksa apakah modul SD berfungsi:

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

const int chipSelect = 10;  // Set CS pin for SD card

void setup() {
    Serial.begin(115200);
    Serial.print("Initializing SD card...");

    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }
    Serial.println("SD card is ready.");
}

void loop() {
    // Nothing here
}

Apa yang dilakukan kode ini:

✔ Menginisialisasi Modul SD.
✔ Cetakan "Kartu SD sudah siap" jika terdeteksi.
✔ Cetakan "Inisialisasi kartu SD gagal!" Jika ada kesalahan.

🔹 Pemecahan masalah:
✅ Periksa apakah kartu SD FAT32 diformat.
✅ Memastikan kabel yang benar (Miso, Mosi, SCK, dan CS).
✅ Coba yang lain Pin CS (mis., 4 bukannya 10) dan perbarui kode.


5. Menulis data ke kartu SD

Contoh ini membuat file (data.txt) dan menulis pembacaan sensor untuk itu.

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

const int chipSelect = 10;  

void setup() {
    Serial.begin(115200);
    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }
    
    File dataFile = SD.open("data.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.println("Hello, this is a test log!");
        dataFile.close();
        Serial.println("Data written to SD card.");
    } else {
        Serial.println("Failed to open file.");
    }
}

void loop() {
    // Nothing here
}

Apa yang dilakukan kode ini:

✔ Menciptakan atau membuka data.txt.
✔ Menulis "Halo, ini adalah log uji!" ke file.
✔ Menutup file setelah menulis.

🔹 Fungsi Penanganan File:
SD.open("filename.txt", FILE_WRITE); → Buka file untuk menulis.
dataFile.println("Text"); → Tulis data untuk mengajukan.
dataFile.close(); → Tutup file untuk menyimpan data.


6. Membaca data dari kartu SD

Gunakan kode ini untuk Baca dan Tampilkan Data dari Kartu SD.

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

const int chipSelect = 10;

void setup() {
    Serial.begin(115200);
    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }

    File dataFile = SD.open("data.txt");
    if (dataFile) {
        Serial.println("Reading file...");
        while (dataFile.available()) {
            Serial.write(dataFile.read());  // Print file content
        }
        dataFile.close();
    } else {
        Serial.println("Failed to open file.");
    }
}

void loop() {
    // Nothing here
}

Apa yang dilakukan kode ini:

✔ Terbuka data.txt untuk membaca.
✔ Mencetak isi file untuk Monitor serial.

🔹 Tip: Pastikan file ada sebelum membaca untuk menghindari kesalahan.


7. Data sensor logging ke kartu SD

Contoh ini log Data suhu dan kelembaban dari sensor DHT11.

Komponen yang diperlukan

Sensor Suhu & Kelembaban DHT11
Perpustakaan DHT (Perpustakaan Sensor DHT Adafruit)

Pengkabelan untuk sensor DHT11

Pin DHT11 Pin Arduino
Vcc 5v
Gnd Gnd
DATA 2

Kode: Data DHT11 Masuk ke Kartu SD

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

#define DHTPIN 2      // Pin connected to DHT sensor
#define DHTTYPE DHT11 // Define sensor type (DHT11 or DHT22)
DHT dht(DHTPIN, DHTTYPE);

const int chipSelect = 10;

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

    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }
}

void loop() {
    float temp = dht.readTemperature();
    float humidity = dht.readHumidity();

    if (isnan(temp) || isnan(humidity)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
    }

    File dataFile = SD.open("log.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.print("Temperature: ");
        dataFile.print(temp);
        dataFile.print(" °C, Humidity: ");
        dataFile.print(humidity);
        dataFile.println(" %");
        dataFile.close();
    } else {
        Serial.println("Failed to write to SD card.");
    }

    Serial.print("Logged: Temp = ");
    Serial.print(temp);
    Serial.print(" °C, Humidity = ");
    Serial.println(humidity);

    delay(2000);  // Log every 2 seconds
}

Apa yang dilakukan kode ini:

✔ Berbunyi Suhu & Kelembaban dari Sensor DHT11.
✔ Mencatat data log.txt pada kartu SD.
✔ Mencetak nilainya Monitor serial.


8. Tips Mengatasi Masalah

Masalah: Kartu SD tidak terdeteksi?
✅ Pastikan kartu SD FAT32 diformat.
✅ Periksa ganda Miso, mosi, sck, dan kabel CS.
✅ Mencoba kartu SD yang berbeda (Beberapa kartu tidak kompatibel).

Masalah: Data tidak menyimpan?
✅ Selalu tutup file menggunakan dataFile.close();.
✅ Memastikan ruang penyimpanan yang cukup tersedia di kartu SD.


9. Aplikasi Praktis

Sistem Pemantauan Cuaca - Suhu log, kelembaban, dan tekanan udara.
Pemantauan Energi - Catatan tegangan dan arus Bacaan dari waktu ke waktu.
Pelacakan GPS - Toko lintang dan bujur Data dari modul GPS.
Pencatatan acara - Pemicu sensor rekam atau penekan tombol.


10. Kesimpulan

Menggunakan Modul Kartu SD dengan Arduino adalah cara yang bagus untuk menyimpan data sensor, acara log, atau membuat logger data portabel. Dengan Komunikasi SPI, Anda bisa dengan mudah Baca dan Tulis File, membuatnya ideal untuk Proyek IoT dan otomatisasi.

Tinggalkan komentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.