Arduino Datalogger Tutorial Dasar
Bagaimana cara simpan data setiap 5 Menit sekali menggunakan Arduino ke Micro SD dalam pembuatan datalogger? Datalogger adalah perangkat yang digunakan untuk mencatat data dari berbagai sensor dan menyimpannya ke dalam media penyimpanan seperti SD card. Dalam beberapa aplikasi, diperlukan untuk menyimpan data dalam jangka waktu tertentu, misalnya setiap 5 menit sekali. Dalam artikel ini, kita akan membahas cara menyimpan data setiap 5 menit menggunakan Arduino dan SD card.
Sebagai contoh, Anda membuat sebuah sistem monitoring suhu dan kelembaban di sebuah ruangan kantor. Anda ingin menyimpan data suhu dan kelembaban setiap 5 menit sekali untuk dianalisis nanti. Anda menggunakan Arduino sebagai kontroler dan SD card sebagai media penyimpanan data.
Pada artikel ini, saya langsung memberikan kode program dan penjelasannya. Jika anda ingin mempelajari lebih dasar tentang Micro SD modul, rangkaiannya dan kode program dasarnya anda dapat membaca artikel Arduino Micro SD Card Adapter Catalex.
Kode Program
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
String namaFile = "tes.txt";
//Jika pakai SD Card Module, gunakan 4
//Jika pakai SD Card Shield, gunakan 10
const int chipSelect = 10;
bool dataSudahDisimpan = false;
void setup() {
// Inisialisasi serial
Serial.begin(9600);
// Inisialisasi RTC
if (!RTC.begin()) {
Serial.println("Gagal inisialisasi RTC");
while (1);
}
// Inisialisasi SD card
if (!SD.begin(chipSelect)) {
Serial.println("Gagal inisialisasi SD card");
while (1);
}
// Set waktu saat ini sesuai dengan komputer anda
// RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
DateTime now = RTC.now();
if (now.second() == 0 && now.minute() % 5 == 0 && !dataSudahDisimpan) {
if (SD.exists(namaFile)) {
// Buat/buka file untuk menyimpan data
File dataFile = SD.open("tes.txt", FILE_WRITE);
// Tulis data ke file
dataFile.println("Suhu = 30 derajat celcius");
Serial.println("Tulis data");
// Tutup file
dataFile.close();
} else Serial.println("File tidak ditemukan");
dataSudahDisimpan = true;
} else if (now.second() != 0)
{
dataSudahDisimpan = false;
}
}
Jika kode program diatas selesai di upload ke board Arduino, buka serial monitor dan anda akan melihat hasilnya sebagai berikut:
Penjelasan Kode Program
Pertama-tama, kita harus mengimport library yang dibutuhkan, yaitu SD.h, Wire.h, dan RTClib.h. Library SD.h digunakan untuk mengakses SD card, Wire.h digunakan untuk komunikasi I2C, dan RTClib.h digunakan untuk mengakses RTC DS1307.
Selanjutnya, kita membuat objek RTC_DS1307 dengan nama RTC dan menginisialisasikan RTC dengan memanggil fungsi begin(). Jika gagal, akan ditampilkan pesan error “Gagal inisialisasi RTC”
Kemudian, inisialisasi SD card dengan memanggil fungsi begin() dan menentukan pin yang digunakan untuk koneksi dengan SD card. Jika gagal, akan ditampilkan pesan error “Gagal inisialisasi SD card”
Selanjutnya, kita membuat variabel global dataSudahDisimpan
dengan nilai false, yang akan digunakan sebagai flag untuk menandai apakah data sudah disimpan atau belum.
Dalam fungsi loop(), kita mengambil waktu saat ini dengan memanggil fungsi now() pada objek RTC.
Kemudian, kita mengecek apakah saat ini detiknya 0 dan menitnya kelipatan 5, serta dataSudahDisimpan == false. Jika kondisi tersebut terpenuhi, maka kita akan cek apakah file dengan nama tes.txt sudah ada di dalam SD card. Jika file sudah ada, maka kita akan buka file tersebut dan menuliskan waktu saat ini dalam format jam:menit:detik. Kemudian kita akan tutup file dan set dataSudahDisimpan = true.
Jika file tidak ditemukan, program akan menampilkan pesan “File tidak ditemukan”
Selain kondisi tersebut, jika detik saat ini bukan 0 maka kita set dataSudahDisimpan = false, sehingga dalam detik berikutnya akan diperiksa lagi kondisi dataSudahDisimpan dan jika sesuai maka data akan disimpan kembali.
Kesimpulan
Itulah cara menyimpan data setiap 5 menit menggunakan Arduino dan SD card. Anda dapat menyesuaikan kode program ini sesuai dengan kebutuhan dan jenis sensor yang digunakan. Ingat untuk menyesuaikan pin koneksi dan nama file sesuai dengan perangkat yang digunakan.
Semoga artikel Simpan Data Setiap 5 Menit Sekali Arduino ini dapat membantu Anda dalam menyimpan data setiap 5 menit menggunakan Arduino dan SD card. Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk menghubungi saya.