--> Project II - 8. Data Logger dengan 2 Sensor Suhu berbasis Arduino | Tutorial arduino lengkap

Tuesday, August 15, 2017

Project II - 8. Data Logger dengan 2 Sensor Suhu berbasis Arduino

| Tuesday, August 15, 2017
Data Logger dengan 2 Sensor Suhu





Menurut tulisan yang saya ambil dari sonoku.comLogging data (data logging) adalah proses otomatis pengumpulan dan perekaman data dari sensor untuk tujuan pengarsipan atau tujuan analisis. Sensor digunakan untuk mengkonversi besaran fisik menjadi sinyal listrik yang dapat diukur secara otomatis dan akhirnya dikirimkan ke komputer atau mikroprosesor untuk pengolahan.

Pada project ini, Arduino UNO akan membaca temperature dengan 2 sensor LM35 dan hasil dari pembacaan akan ditampilkan ke LCD serta disimpan di SD card. Tipe sensor yang dipakai adalah LM35 dengan range pembacaan suhu 0°C – 100°C. Agar data yang disimpan tahu waktu dan tanggalnya maka dibutuhkan modul RTC (Real Time Clock). Pada SD card sendiri, hasil pembacaan sensor disimpan dalam sebuah file text (*.txt). Sedangkan untuk membaca data di SD card cukup tekan Tombol 1 secara otomatis Arduino membaca isi dari SD Card (file text) kemudian data tersebut dikirim secara serial. LCD dipakai untuk menampilkan proses sehingga lebih mudah untuk memonitor apakah alat jalan/tidak.

Kebutuhan Hardware
  • 2 Sensor LM35
  • RTC DS1307
  • Tombol push ON
  • SD Card
  • SD Card Adapter
  • Komputer/Laptop
  • Modul LCD 2x16
  • Modul Arduino UNO
  • Power supply +5 Volt

Modul RTC DS1307 | Source                Sensor Suhu LM35 | Source



             
 Modul SD Card (Micro SD) | Source                       Micro SD | Source


Push Button | Source


Diagram Blok



Schematic




Koneksi Arduino UNO dengan LCD


Koneksi SD Card Adapter


Koneksi Sensor LM35


Koneksi RTC


Source Code/Sketch

#include <SPI.h>
#include <SD.h>
#include <LiquidCrystal.h>
#include <Wire.h>
#define DS1307_ADDRESS 0x68
byte zero = 0x00;
File myFile;
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int adc;
int suhu1, suhu2;
int waktu;
byte second ,minute,hour, weekDay;
byte monthDay,month,year;
void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
Wire.begin();
//===========================CS SD card
pinMode(10, OUTPUT);
//===========================Tombol
pinMode(8, INPUT);
digitalWrite(8, 1);
//===========================Inisialisasi SD card
lcd.clear();
lcd.print(" Inisialisasi");
lcd.setCursor(0,1);
lcd.print(" SD card..");
Serial.println("Inisialisasi SD card..");
delay(1000);
if (!SD.begin(10)) {
lcd.setCursor(0,1);
lcd.print(" SD card Gagal! ");
Serial.print(" SD card Gagal! ");
while(1);
}
lcd.setCursor(0,1);
lcd.print("SD card Berhasil ");
Serial.println("SD card Berhasil ");
delay(2000);
lcd.clear();
}
void loop(){
//========================Baca ADC
adc = analogRead(A0);
suhu1 = (adc*5)/10;
adc = analogRead(A1);
suhu2 = (adc*5)/10;
//========================baca RTC
bacaRTC();
//========================Display LCD
lcd.setCursor(0,0);
lcd.print("S1:");
lcd.print(suhu1);
lcd.print("C S2:");
lcd.print(suhu2);
lcd.print("C ");
lcd.setCursor(0,1);
lcd.print("Jam:");
lcd.print(hour);
lcd.print(":");
lcd.print(minute);
lcd.print(":");
lcd.print(second);
lcd.print(" ");
waktu++;
//============================simpan data setelah 10detik
if (waktu==10){
myFile = SD.open("data1.txt", FILE_WRITE);
if (myFile) {
lcd.clear();
lcd.print("Simpan data....");
lcd.setCursor(0,1);
lcd.print("file->data1.txt");
myFile.print("Suhu 1=");
myFile.print(suhu1);
myFile.print("C, Suhu 2=");
myFile.print(suhu2);
myFile.print("C ");
bacaRTC();
myFile.print(monthDay);
myFile.print("/");
myFile.print(month);
myFile.print("/");
myFile.print(year);
myFile.print(" ");
myFile.print(hour);
myFile.print(":");
myFile.print(minute);
myFile.print(":");
myFile.println(second);
myFile.close();
}
else {
lcd.clear();
lcd.print("error opening");
lcd.setCursor(0,1);
lcd.print(" data1.txt");
delay(2000);
}
waktu=0;
delay(2000);
lcd.clear();
}
//=========================tombol 1 baca isi file data1.txt
if(digitalRead(8)==0){
myFile = SD.open("data1.txt");
if (myFile) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Send data SD card");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
delay(1000);
}
else {
lcd.clear();
lcd.print("error opening");
lcd.setCursor(0,1);
lcd.print(" data1.txt");
}
delay(500);
}
delay(1000);
}
byte decToBcd(byte val){
return ( (val/10*16) + (val%10) );
}
byte bcdToDec(byte val) {
return ( (val/16*10) + (val%16) );
}
void bacaRTC(){
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
second = bcdToDec(Wire.read());
minute = bcdToDec(Wire.read());
hour = bcdToDec(Wire.read() & 0b111111);
weekDay = bcdToDec(Wire.read());
monthDay = bcdToDec(Wire.read());
month = bcdToDec(Wire.read());
year = bcdToDec(Wire.read());
}



Jalannya Alat
1. Koneksikan antara sistem Arduino dengan peripheral lain seperti pada rangkaian (skematik).
2. Pasang power supply (adaptor 9 V) dan hidupkan (colokkan ke sumber PLN 220V) sehingga
    lampu LED indikator nyala, LCD juga nyala.

3. Pastikan library SD Card sudah ter instal.
4. Tampilan pertama pada LCD


5. Tunggu 1 detik, jika muncul tulisan dibawah ini maka inisialisasi SD card berhasil terbaca


6.  Jika muncul tulisan dibawah ini maka SD card tidak terbaca, cek koneksi dan pemasangan SD
     card:


 7. Selanjutnya LCD menampilkan hasil pembacaan dari ke-2 sensor suhu LM35 dan menampilkan
     jam (tampilan normal)


8. Setelah 10 detik, data pembacaan sensor disimpan pada SD card dan LCD menampilkan tulisan
    dibawah ini :


9. Selanjutnya kembali lagi ke tampilan normal.
10. Selanjutnya untuk membaca hasil penyimpanan data pada SD Card Anda buka dulu serial
      monitor Arduino, jika sudah kemudian Anda tekan tombol 1. Saat tombol ditekan program
      membaca SD Card


11. Sealin dengan serial monitor Anda juga bisa membukanya menggunakan Card reader atau slot
      SD Card pada laptop Anda.


Video for Project II - 8. Data Logger dengan 2 Sensor Suhu berbasis Arduino




KAMI MELAYANI JASA PEMBUATAN HARDWARE ATAU SOFTWARE BERBASIS ARDUINO

KONTAK KAMI 085743320570 (adi sanjaya)

Related Posts

2 comments: