Data Logger
Menurut wikipedia, data logger adalah sebuah perangkat elektronik untuk menyimpan data sensor, atau data external dari sebuah alat ukur dalam sebuah media penyimpan. Data logger biasa nya memiliki karetaristik low power, memiliki dimensi yang kecil, portabel, dan memiliki SD card dan processor kecil seperti mikrokontroller.
Keuntungan menggunakan data logger biasa nya karena mampu di gunakan dalam 24 jam untuk me record data dalam sebuah SD card. Format data penyimpanan data logger juga biasanya berupa txt file. Terutama bagi penggian maker di bidang Arduino.
Pembuatan data Logger
Untuk membuat alat data logger menggunakan arduino. yuk kita coba dengan project sederhana, yaitu menyimpan data logger dari sensor pressure sensor di dalam sebuah SD card yang ter tancap di modul SD card itu sendiri.
Karena tutorial sederhana ini adalah kelanjutan dari sensor tekanan arduino. Maka teman-teman boleh baca dulu artikel sensor tekanan arduino. Cukup tekan tombol merah di bawah ini
Jika sudah paham dengan tutorial di atas, maka kita lanjutkan tutorial berikut
Bahan dan kelengkapan
Beberapa bahan yang perlu kita lengkapkan adalah sebagai berikut
- Sensor Pressure sensor
- RTC DS3231
- Arduino Uno
- Modul SD Card
Library Pendukung
Configurasi PIN
Untuk konfigurasi PIN cukup mudah, bisa teman-teman lihat gambar di bawah ini
Komunikasi di atas menggunakan SPI, pin SS nya terhubung ke pin 4
configurasi selanjut nya adalah modul DS3231 ke arduino, konfigurasi ini cukup mudah karena menggunakan komunikasi I2C, hanya menggunakan pin SCL, SDA, 5V dan GND, tapi lebih jelas nya bisa dilihat pada gambar di bawah ini
Untuk konfigurasi sensor tekanan nya bisa dilihat di tutorial sensor tekanan di atas.
Pemrograman Logger Arduino
setelah semua di pastikan benar configurasi pin nya ( wiring nya ) dan library pendukung nya sudah di add di Arduino IDE nya, langkah selanjut nya adalah sketch, pemrograman, Pemrograman nya sebagai berikut
#include <SPI.h> #include <SD.h> #include "RTClib.h" RTC_DS3231 rtc; int jam, menit, detik; int tahun, bulan,tanggal; String line1; const int chipSelect = 4; // pin SS SD Card File dataFile; const float OffSet = 0.48340; const float OffSet2 = 0.48340; const byte pot_pin = A1; unsigned long waktu_ambil; unsigned long cur_time, old_time; float V, P; float V2, P2; String txt_minute, txt_detik; const unsigned long ambil_waktu = 1000; // interval pengambilan waktu void setup() { Serial.begin(9600); // open serial port, set the baud rate to 9600 bps if (! rtc.begin()) { Serial.println("Couldn't find RTC"); while (1); } // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); while (!SD.begin(chipSelect)) { Serial.println("please, insert SD Card"); } Serial.println("SD OK"); delay(1000); } void loop() { cur_time = millis()/1000; DateTime now = rtc.now(); jam = now.hour(); menit = now.minute(); detik = now.second(); tahun = now.year(); bulan = now.month(); tanggal = now.day(); if ( menit < 10){ txt_minute = String("0")+menit; } else{ txt_minute = String(menit); } if ( detik < 10){ txt_detik = String("0")+ detik; } else{ txt_detik = String(detik); } baca_pressure(); if ( cur_time - old_time >= waktu_ambil){ line1 = String(tanggal)+ "/" + bulan + "/" + tahun + " " + jam + ":"+ txt_minute + ":" + txt_detik + " Pressure: " + P + " kPa" ;// Serial.print(line1); dataFile = SD.open("log.txt", FILE_WRITE); if(dataFile){ dataFile.println(line1); dataFile.close(); Serial.println(line1); } else{ Serial.println("Error"); } line1 = ""; P = 0; V = 0; old_time = cur_time; } } void baca_pressure(){ V = analogRead(0) * 5.00 / 1024; //Sensor output voltage P = (V - OffSet) * 400; //Calculate water pressure if ( P < 0)P = 0; }
Program di atas bisa di kembangkan untuk logger sensor lain, seperti sensor Gyro sebagai sensor deteksi posisi x,y,x, Sensor untuk variable listrik dan sensor-sensor untuk kebutuhan lain.
Semoga tulisan di atas bermanfaat, Thanks
Refrensi: