Buat Data Logger Arduino, RTC DS3231 dan MicroSD

Posted on

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:

  1. Arduino Uno (bisa gunakan juga Nano, Promini dan lainnya)
  2. Memori Micro SD (pada tutorial saya menggunakan 8GB)
  3. Modul RTC DS3231
  4. Modul Micro SD reader
  5. Sensor (terserah jenis apa, outputnya berupa tegangan analog).
  6. Breadboard atau Project Board
  7. Kabel secukupnya

Dalam tutorial kita membutuhkan dua library, yaitu untuk RTC DS3231 dan untuk MicroSDnya. Nah, teman-teman dapat mengambil librarynya di:

Download Library DS3231 RTC

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:

Cara Membuat Data Logger Arduino Uno, RTC DS3231 dan MicroSD
 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.

Cara Membuat Data Logger Arduino Uno, RTC DS3231 dan MicroSD

Semoga artikel Buat Data Logger Arduino, RTC DS3231 dan MicroSD ini bermanfaat.

Pencarian yang serupa: