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
- Membuka Ide Arduino.
- Pergi ke Sketsa → Sertakan Perpustakaan → Kelola Perpustakaan.
- 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.