Catat Data Sensor Ke SD Card Memori
Pada artikel sebelumnya, kita sudah belajar dasar-dasar cara akses memory SD menggunakan Arduino. Pada kali kita akan belajar bagaimana cara membuat data logger dengan tambahan modul RTC dan Micro SD Reader.
A. Apa itu Data Logger?
Data logger berasal dari dua kata bahasa inggirs yakni Data adalah berupa nilai-nilai dan Log adalah Catatan. Jadi Data Logger adalah alat yang dapat mencatat nilai-nilai tertentu kedalam media penyimpanan.
Pada artikel ini, kita akan belajar bagaimana cara menyimpan data sensor kedalam micro SD dengan waktu 1 detik sekali beserta tanggal dan jam.
Untuk itu, kita harus menyediakan bahan-bahan yang diperlukan dalam pembuatan data logger .
B. Komponen Untuk Membuat Data Logger
Untuk dapat membuat Data Logger diperlukan beberapa bahan agar data logger sesuai dengan yang di inginkan. Adapun bahan yang digunakan adalah:
- Arduino Uno (bisa gunakan juga Nano, Promini dan lainnya)
- Memori Micro SD (pada tutorial saya menggunakan 8GB)
- Modul RTC DS3231
- Modul Micro SD reader
- Sensor (terserah jenis apa, outputnya berupa tegangan analog).
- Breadboard atau Project Board
- Kabel secukupnya
Dalam tutorial kita membutuhkan dua library, yaitu untuk RTC DS3231 dan untuk MicroSDnya. Nah, teman-teman dapat mengambil librarynya di:
Alamat I2C DS3231 menggunakan pengalamatan 7-bit dengan alamat dalam biner adalah 1101000, jika di konversi ke hexadesimal adalah 0x68.
C. Rangkaian
Untuk dapat berkomunikasi dengan Arduino, modul MicroSD adapter yang akan kita gunaan disini, menggunakan protokol SPI (Serial Peripheral Interface).
Protokol SPI membutuhkan 4 pin yakni :
- SCK
- MOSI
- MISO
- CS (Chip Select).
Sedangkan modul RTC DS3231 yang kita gunakan disini menggunakan protokol I2C (Inter-Integrated Circuit) yang mana hanya membutuhkan 2 pin saja yaitu :
- SDA
- SCL.
Adapun rangkainannya bisa dilihat sebagai berikut:
Arduino Uno | MicroSD Module |
5V | VCC |
GND | GND |
13 | SCK |
12 | MISO |
11 | MOSI |
10 | CS |
Arduino Uno | DS3231 |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
D. Kode Progam
Setelah rangkaian telah terhubung seperti pada gambar diatas, selanjutnya saya telah menyediakan kode program untuk melakukan pencatatan data.
Asumsikan bahwa Sensor akan dibaca menggunakan pin analog Read 0 (A0).
Kemudian untuk nama file, saya memberi nama “data_log.txt” yang berada didalam micro SD. Penulisan data ke micro SD akan dilakukan 1 detik sekali.
Adapun programnya adalah sebagai berikut:
#include <RTClib.h> #include <SPI.h> #include <SD.h> File myFile; RTC_DS3231 rtc; int chipselect = 10; int sensorPin = A0; int dataSensor = 0; int detik; int detikSebelumnya; String namaFile = "data_log.txt"; String dataJam; String dataTanggal; void setup() { Serial.begin(9600); if (!SD.begin(chipselect)) { Serial.println("Pembacaan Micro SD gagal!"); Serial.println("* Apa koneksi telah benar?"); Serial.println("* Atau kartu memori belum di masukkan?"); Serial.println("n"); while (1) { delay(10); } } else { Serial.println("Kartu Memori MicroSD terbaca."); } if (! rtc.begin()) { Serial.print("RTC tidak terdeteksi! "); Serial.println("Apakah rangkaian telah benar?"); Serial.println("n"); Serial.flush(); abort(); } else { Serial.println("RTC terbaca."); } Serial.println("n"); } void loop() { DateTime now = rtc.now(); dataTanggal = now.timestamp(DateTime::TIMESTAMP_DATE); dataJam = now.timestamp(DateTime::TIMESTAMP_TIME); detik = now.second(); dataSensor = analogRead(sensorPin); if (detik != detikSebelumnya) { if (SD.exists(namaFile)) { Serial.println("Tulis data..."); myFile = SD.open(namaFile, FILE_WRITE); myFile.print(dataTanggal + " " + dataJam); myFile.print(" "); myFile.println(dataSensor); myFile.close(); } else { Serial.println("File " + namaFile + " belum ada di memori."); } detikSebelumnya = detik; } }
Setelah progam diatas terupload ke Arduino, tunggu sejenak hingga data-data tersimpan. Untuk mengetahui data logger berhasil menyimpan data, silahkan teman-teman lepas Micro SD dari Mikro SD Modul nya, kemudian masukkan ke komputer / laptop.
Jika ada data yang terbuat, itu artinya teman-teman telah berhasil membuat data logger. Jika tidak, maka mungkin ada yang salah dalam rangkain, kode program dan lainnya.
Seperti pada gambar berikut adalah file .txt yang berisi data hasil simpan dari program di atas.
Semoga artikel Buat Data Logger Arduino, RTC DS3231 dan MicroSD ini bermanfaat.