Melakukan interaksi seperti membaca dan menulis data/file di SD Card dengan Arduino caranya cukup mudah. Anda hanya cukup mendeklarasikan library ‘SD.h’ di program sketch Arduino Anda. Library ini adalah library internal yang sudah disediakan software Arduino IDE secara default.
Pada tutorial kali ini, saya akan mencontohkan bagaimana membaca dan menulis file di SD Card (tipe micro SD) menggunakan Ethernet shield. Sebagaimana kita tahu bahwa dalam Ethernet shield terdapat satu slot micro SD reader yang dapat kita manfaatkan untuk berinteraksi dengan micro SD. Biasanya, micro SD ini digunakan untuk menyimpan data hasil pengukuran/penyensoran atau yang lebih sering dikenal dengan nama ‘data logger’.
Baiklah, mari kita mulai percobaannya. Siapkan satu unit papan Arduino (tipe Uno atau yang lain), Ethernet shield dan micro SD. Masukkan micro SD ke slot micro SD reader di Ethernet shield. Jika sudah, buka software Arduino IDE Anda, dan masukkan sketch sebagai berikut :
#include <SPI.h> #include <SD.h> File myFile; void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); if (!SD.begin(4)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); myFile = SD.open("test.txt", FILE_WRITE); if (myFile) { Serial.print("Writing to test.txt..."); myFile.println("testing 1, 2, 3."); myFile.close(); Serial.println("done."); } else { Serial.println("error opening test.txt"); } myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); while (myFile.available()) { Serial.write(myFile.read()); } myFile.close(); } else { Serial.println("error opening test.txt"); } } void loop() { }
Upload sketch di atas ke papan Arduino Anda, dan aktifkan jendela Serial Monitor melalui menu Tools-Serial Monitor. Seharusnya akan akan ada tampilan sebagai berikut, yang menandakan file ‘test.txt’ telah ditambahkan di micro SD Anda dan file tersebut diisi dengan tulisan “testing 1, 2, 3.”. Anda dapat mengeceknya menggunakan micro SD reader yang lain melalui laptop Anda atau memasukkan micro SD tersebut ke smartphone Anda dan membacanya melalui aplikasi File manager.
Beberapa function library ‘SD.h’ yang penting dalam proses membaca dan menulis file di SD Card adalah sebagai berikut :
1. SD.begin(chip_select) : menginisialisasi SD card, dengan parameter ‘chip_select’ sebagai berikut (tergantung hardware SD card reader) :
– Arduino Ethernet shield >> chip_select = 4
– Adafruit SD shields/modul >> chip_select = pin 10
– Sparkfun SD shield >> chip_select = pin 8
2. SD.open(nama_file) : membuka file dengan nama sesuai parameter ‘nama_file’. Function ini akan mengembalikan sebuah nilai bertipe ‘File’
3. File_object.print()/File_object.println() : menulis data ke file. Parameter ‘file_object’ menunjukkan nama variabel bertipe file (pada contoh di atas adalah variabel ‘myFile’)
4. File_object.read() : membaca data dari file
5. File_object.close() : menutup file
Demikian tutorial cara membaca dan menulis data di SD card menggunakan Arduino. Dengan bantuan library ‘SD.h’ Anda akan cukup cepat menanganinya. Selamat berkreasi.
Beli microSD module murah
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Mas kalau mau pake module arduino data logger chip-selectnya pake yang mana? Mau nampilin hasil baca rfid mas..
biasanya pake chip select = 4 mas
Kok ga bisa di copy mas coding nya
ngikutin tutorialnya gimana 🙁
bisa, tinggal di klik aja di window coding sebelah kanan atas
Mas klo umpama mw buka file yg d micro sd tanpa cabut & pasang ke card reader gmn?
Jd maksudnya biar g ribet. Tgl colok kabel usb trus terbaca sbg media storage. Bs g?
beli aja card reader mas 🙂
Brarti g bs y? Soalnya msh penasaran d video mecatronik ko kliatannya g d pindah k card reader tp lgsg bs dbuka di pc filenya
Siang mas..minta tolong follow
Saat saya upload ke arduino uno terjadi error: no su much file directory.
Minta tolong pencerahan ya mas..tq
mas, itu info error nya kurang. Coba klik tombol ‘copy’ di dekat pesan error trus paste-kan ke notepad, baru kelihatan error nya keseluruhan
Siang mas aji..?
Mas saya minta bantuannya/ilmunya..(code’y) 🙂
Gimana cara menghapus file di sd card menggunakan arduino..?
Pake SD.remove (nama_file); mas.
Contoh: SD.remove(“file_ku.txt”);
Permisi, mas mau tanya tutorial hasil pembacaan RFID yang di simpan dalam data logger ada g y??? klo tidak ada mohon pencerahannya jika pembacaan sensor di ganti biar bisa nyimpan hasil pembacaan dari RFID. terimkasih…
itu kan sebenarnya mudah aja, hasil pembacaan rfid tinggal ditulis aja ke sd card dg cara sama dg di atas
mas kalo mau baca file test.txt yang ada di folder gimana?
langsung disebutkan file path-nya secara lengkap, misal nama_folder/nama_file.txt. Ingat, nama file tidak bisa terlalu panjang
maaf mas saya mau tanya, saya ada project arduino uno dengan sensor pH dan suara, dan saya mau data outputan dari pH dan suara ini tersimpan di SD card, apa bisa? untuk menempatkan (if myFile) ini apa bisa di dalam loop?karena variabel yang saya gunakan untuk pH ada di dalam loop. jadi otomatis harus di buat lagi variabel nya. terima kasih
untuk tingkat basic, sy jawab: sebaiknya inisialisasi sd card cukup sekali aja di void setup
untuk tingkat advance, sy jawab : bisa
mas mau nanya, sistem kodingan ini apabila sistemnya di matikan lalu dinyalakan kembali, apakah file test.txt nya akan otomatis ketiban dan file test.txt yang lama isinya akan hilang atau isi dari file test.txt nya melanjutkan isi filenya (file test.txt nya gak ketiban)?
terimakasih mas.
nambah isi file mas
oke mas terimakasih ya
mas mau nanya lagi, itu kenapa semua codenya dimasukin ke void setup ya? kalo saya mau ngirim data dari pc ke rs232 ke arduino lalu disimpen ke microsd apakah semua codenya ditulis di void setup semua ya? terimakasih mas
ngga semua mas, tergantung kebutuhan.
jadi gini,
– void setup(), digunakan untuk inisialisasi parameter, function, variabel yg dibutuhkan program. Semua script yg ada di void setup hanya dieksekusi sekali saja saat arduino booting/start up. Setelah selesai akan lanjut ke void loop.
– kalo void loop() digunakan utk program utamanya, dan akan looping terus menerus.
Mas aji, kenapa di void loopnya tidak ada sketchnya? Klo kosong error compiling mas. Terima kasih mas
maksudnya supaya dieksekusi aja sekali di void setup. Kalo ditaruh di void loop dieksekusi berulang2
Saya compiling kok eror ya mas?
errornya apa mas?
Mas aji mau nyanya ini ada error pas compile skecth untuk modul sd card dataloger karna pin 10 output arduino uno sudah terpakai oleh modul rfid, mohon bantuan bagaimana cara mengatasinya ?
pindah aja mas, pin CS (Chip Select) nya ke pin yg lain (misal pin 8). Kemudian saat inisialisasi sd card diarahkan ke pin 8. contoh :
SD.begin (8);
mas kalo file yg terbaca berulang sebanyak 3 kali itu gmna ya mas biar satu kali aja gitu? kesalahannya dmna ya mas
kemungkinan di atasnya ada script perulangan, jd file ikut terbaca 3x
mas mau nanya, cara nya parsing datadari pembacaan data di sd card itu gmna ya
kl yg mudah dicopy ke variabel object String (misal: String var_string) lalu dioperasikan, misal diambil indeksnya (var_string.indexOf), dicari substringnya atau copy sebagian substringnya (var_string.substring)
Maaf mas mau numpang tanya, modul SD card apakah bisa sebagai memory tambahan arduino dalam pemrograman???
kalo yang dimaksud adalah memori tambahan untuk program atau source code, berarti jawabannya ngga bisa. Sd card itu khusus untuk tambahan memori berupa data.
Untuk memori program disimpan di flash rom, tidak bisa di sd card. Jadi kalo mau upgrade memori program mau ga mau hrs upgrade flash rom alias upgrade board arduino (misal ke arduino mega), karena flash rom ini built in ic di dlm board arduino (atmega)
om mau tanya data logger ini kira2 bisa gak di gabung dengan keypad dan modul gsm.. jadi kita tinggal menulis daan menyimpan nomor HP penerima sms dari keypad saja dan bisa d ganti sewaktu2 juga melalui keypad trsebut tanpa merubah sketch… karna yg sering di lakukan biasa ny no hp penerima sms dari modul gsm langsung kita tuliskan d sketch.. terima kasih om di tunggu pencerahan nya
bisa
Jika berkenan mohon tutorial ny om
mas mau tanya, apabila saya gunakan data logger untuk pembacaan sensor dan rtc tiap 1 jam, bagaimana caranya agar saya bisa menampilkan data yang tersimpan tersebut di LCD? trims
intinya ambil data dr data logger then write to LCD. Nah, kata2 ini tinggal di-convert to script. Untuk bisa convert harus lihat hardware-nya dulu (terutama protokol komunikasi ke arduinonya gimana) baru ditranslasikan dalam bentuk script. Gitu ya cara berpikirnya. Alangkah lebih baik jika didesain dulu diagram flow nya, akan sangat memebantu membuat scipt-nya
Mas mau tanya. Kalau mau di pake buat manggil MP3 di microSDnya bisa kah.?? Jd tidak perlu beli lagi Dfplayer ..
kalo buat manggil file MP3-nya bisa mas, cuma kl kemuadian mem-play-nya yg arduino belum mampu. DFPlayer itu sudah alternatif paling murah mas buat player mp3 from arduino. MP3 player modul Arduino murah bisa dibeli di sini
mas kalo mau mengirim data melalui software PLX DAQ ke sd card yang dipasang pada ethernet card bagaimana ya programnya?
PLX DAQ (Parallax Data Acquisition Tools) kan sebuah tools interface I/O yang dapat langsung menyimpan data ke excel. Jadi untuk dapat menyimpan data tersebut, berati anda harus bisa mengambil data dari excel kmeudian menyimpannya ke sd card (yg ada di ethernet card) nelalui dua cara: (1) lewat kabel USB, (2) lewat jaringan LAN (krn SD card nya ada di ethernet card, jadi memungkinkan hal tsb)
Mas saya mau bertanya, file yang sudah tersimpan dalam SD card apakah bisa dikirim ke HP lewat modul bluetooth atau modul wifi(jadi yang dikirim file nya bukan string nya aja)
bisa aja mas
ada yang tau cara memasukan RTC 1302
ke sd card ?
agar data dalam sdcard bisa diberi tanggal dan menggunakan ESP32
bisa aja mas, setidaknya ada 2 library yang dibutuhkan, library utk mengakses RTC dan library untuk SD. Jangan lupa wiring harus diperhatikan, yang satu pake I2C yang satu pake SPI
apakah ada source code nya mas , rtc 1307 dan sd card menggunakan esp32
mas mau tanya semisal cara membagi data hasil sensor di sdcard perhari gimana ya mas
data sensornya seperti apa mas?
selamat siang, mohon bantuannya
#include
#include
#include
File myFile;
DS3231 rtc(SDA,SCL);
int pinCS = 53 ;
void setup() {
Serial.begin(9600);
pinMode(pinCS, OUTPUT);
// SD Card Initialization
if (SD.begin())
{
Serial.println(“SD card is ready to use.”);
} else
{
Serial.println(“SD card initialization failed”);
return;
}
rtc.begin();
}
void loop(){
Serial.print(rtc.getTimeStr());
Serial.print(“,”);
Serial.println(int(rtc.getTemp()));
myFile = SD.open(“test.txt”, FILE_WRITE);
if (myFile) {
myFile.print(rtc.getTimeStr());
myFile.print(“,”);
myFile.println(int(rtc.getTemp()));
myFile.close();
}
else {
Serial.println(“error opening test.txt “);
}
delay(3000);
}
sy mengalami error d DS3231 sudah ganti library berulang kali tetap tidak bisa
#include
#include
#include
tambahan d bagian paling atas tadi kurang
mas mau minta tolong saran dan masukannya, sy sudah menggunakan ini namun library DS3231 sy download tidak bisa cocok, sudah mendownload banyak. Dan saat menggunakan codingan lain sd card selalu gagal atau tidak terbaca #include #include #include File myFile; DS3231 rtc(SDA,SCL); int pinCS = 53 ; void setup() { Serial.begin(9600); pinMode(pinCS, OUTPUT); // SD Card Initialization if (SD.begin()) { Serial.println(“SD card is ready to use.”); } else { Serial.println(“SD card initialization failed”); return; } rtc.begin(); } void loop(){ Serial.print(rtc.getTimeStr()); Serial.print(“,”); Serial.println(int(rtc.getTemp())); myFile = SD.open(“test.txt”, FILE_WRITE); if (myFile) { myFile.print(rtc.getTimeStr()); myFile.print(“,”); myFile.println(int(rtc.getTemp())); myFile.close(); } else { Serial.println(“error opening test.txt “); }… Read more »
errornya apa mas?
izin bertanya, codingan sudah benar namun setelah di run pada serial monitornya failed terus dan data yang tersimpan tidak ada d sd card.
sudah d coba dengan membuat file di dalamnya, namun tetap tidak bisa. bagaimana ya ?mohon arahannya terimakasih
koneksi pin nya udah benar belum mas? terutama pin Chip Select (CS)
sudah benar di pin nya, namun masih tetap belum bisa muncul data nya d sd card. di serial monitor sudah jalan namun data d sd card tidak muncul
Pagi mas aji, mohon pencerahan kalo misal lewat ethernet shield transfer data dr PC ke sdcard di module dfplayer mp3 apa bisa mas ya, Terima kasih banyak
ga bisa mas
Maaf mas mau tanya lagi. kalo file yg dikirim ke sd card ethernet shield berupa mp3 apa bisa ya. atau hanya file txt aja yg bisa
Mas Ajie, klo pin D5, D6, D7, D8 nodemcu ESP8266 terpakai semua. Bisa gak sy pake pin baris kiri SDD1, SDCMD, SDD0, SCLK utk dikoneksikan ke SD card module.
tidak semua pin nodemcu/esp8266 bisa untuk I/O mas