Membuat Data Logger Suhu dan Kelembapan menggunakan Arduino

Assalamualaikum warahmatullahi wabarakatuh. kembali lagi di cronyos.com teman-teman, kali ini kita akan mencoba membuat Data Logger untuk menyimpan data suhu dan kelembaban menggunakan sensor dht11 dan RTC DS 3231. Pada kesempatan kali ini kita menggunakan micro SD untuk menyimpan menyimpan hasil data yang kita peroleh, dan di sini kita juga menggunakan RTC untuk mendapatkan data waktu aktual untuk data Logger kita nanti. sebelum kita memulai pembahasan kita pada kali ini alangkah baiknya kalian membuka 2 artikel sebelumnya tentang dasar-dasar bagaimana menggunakan micro SD shield dan bagaimana membaca kelembaban dan temperatur menggunakan sensor dht11.

Jika kalian sudah membaca ketika artikel diatas saya harapkan kalian dapat lebih mudah memahami coding pada tutorial kali ini.

Sebelum kita membuat rangkaian Data Logger kita terlebih dahulu harus menyiapkan beberapa komponen antara lain

  1. Arduino
  2. kabel jumper
  3. breadboard
  4. Modul micro SD
  5. Sensor kelembaban dan temperatur dht11
  6. RTC DS 2321

Setelah semua komponen diatas telah disiapkan saatnya kita membuat rangkaian seperti gambar berikut:

Koneksi RTC

RTC Arduino
SDA A4
SCL A5
GND GND
VCC 5V

Koneksi Modul Micro SD

Modul M SD Arduino
CS 4
SCK 13
MOSI 11
MISO 12
VCC 5v
GND GND

Koneksi DHT 11

DHT 11 Arduino
GND GND
Data 2

Setelah Rangkaian / Pengekabelan selesai dibuat, mari kita siapkan bahan codingnya dulu, ada 2 library external yang harus kita tambahkan, yaitu:

  1. DHT Sensor Library by Adafruit ( tersedia di menu Manage Library Arduino IDE)
  2. RTClib by Adafuit ( tersedia di menu Manage Library Arduino IDE)

Kemudian upload sketch berikut ini:

#include "DHT.h" 
#include <SPI.h> 
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"

#define DHTPIN 2 // pin yang digunakan untuk input data dari sensor dht 11
#define DHTTYPE DHT11 // kalian bisa mengganti DHT11 dengan DHT 22 / DHT 21, tergantung sensor yang kalian gunakan
DHT dht(DHTPIN, DHTTYPE);
File myFile;
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Ahad", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};

void setup() 
{
 Serial.begin(9600);
 Serial.println("Data Logger Starting . . . !");
 dht.begin();
 delay(1000);
 Serial.println("Membuka Micro SD . . .");
 delay(1000);
 if (!SD.begin(4)) 
 {
 Serial.println("Gagal Membuka Micro SD!");
 return;
 }
 Serial.println("Berhasil Membuka Micro SD");
 delay(1000);
 Serial.println("Memerikasa Koneksi RTC . . .");
 delay(1000);
 if (! rtc.begin()) 
 {
 Serial.println("RTC tidak ditemukan");
 return;
 }
 Serial.println("Koneksi RTC Berhasil");

 if (rtc.lostPower()) 
 {
 Serial.println("Sett time RTC");
 rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//sett waktu RTC sesuai waktu di PC saat uploud sketch
 }
 
 
}

void loop() 
{
 DateTime now = rtc.now();
 delay(2000);
 float h = dht.readHumidity();
 float t = dht.readTemperature(); // baca temperatur dalam celcius, jika ingin mengganti fahrenheit kalian bisa menggunakan float f = dht.readTemperature(true);
 

 // cek apakah koneksi dht 11 benar, jika salah print error
 if (isnan(h) || isnan(t))
 {
 Serial.println("Failed to read from DHT sensor!");
 return;
 }

 // Kirim data ke SD card 
 myFile = SD.open("logger.txt", FILE_WRITE); //Membuka File test.txt
 if (myFile) // jika file tersedia tulis data
 {
 Serial.print(now.year(), DEC);
 Serial.print('/');
 Serial.print(now.month(), DEC);
 Serial.print('/');
 Serial.print(now.day(), DEC);
 Serial.print(" (");
 Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
 Serial.print(") ");
 Serial.print(now.hour(), DEC);
 Serial.print(':');
 Serial.print(now.minute(), DEC);
 Serial.print(':');
 Serial.print(now.second(), DEC); 
 Serial.print(" Kelembapan: ");
 Serial.print(h);
 Serial.print(" %\t");
 Serial.print("Temperature: ");
 Serial.println(t); // menampilkan temperatur di serial monitor
 
 myFile.print(now.year(), DEC);
 myFile.print('/');
 myFile.print(now.month(), DEC);
 myFile.print('/');
 myFile.print(now.day(), DEC);
 myFile.print(" (");
 myFile.print(daysOfTheWeek[now.dayOfTheWeek()]);
 myFile.print(") ");
 myFile.print(now.hour(), DEC);
 myFile.print(':');
 myFile.print(now.minute(), DEC);
 myFile.print(':');
 myFile.print(now.second(), DEC); 
 myFile.print(" Kelembapan: ");
 myFile.print(h);
 myFile.print(" %\t");
 myFile.print("Temperature: ");
 myFile.println(t); // menulis data temperatur di MicroSD
 myFile.close();
 }
 else 
 {
 Serial.println("gagal membuka test.txt"); // jika gagal print error
 }
 delay(2000); //memberi jeda 5 detik, karena proses pengiriman data berlangsung selama 3 detik, jadi total 5 detik
}

Itulah tutorial tentang bagaimana cara membuat Data Logger atau Sebuah alat yang bekerja untuk memonitoring suatu data kemudian menyimpannya. Semoga bermanfaat. jika ada pertanyaan silahkan sampaikan di kolom komentar. Wassalamu’alaikum.

About Giri Wahyu Pambudi

Giri Wahyu Pambudi - Seorang Pemuda Desa yang berkeinginan ikut membangun Indonesia dengan Sedikit Ilmu yang dimiliki SMK N 2 Wonogiri lulus 2015 UNIV Negeri Yogyakarta lulus 2019 2019 - Sekarang Bekerja di SMK Gajah Mungkur 1 Wuryantoro, Wonogiri

Check Also

Materi PMKR – Pebedaan Mendasar Mesin Bensin dan Diesel

Sebagaimana yang kita pelajari sebelumnya, bahwa mesin / motor bakar terdiri dari berbagai jenis, tentu …

14 comments

  1. mas, bisa share program penyimpanan gambar dari vc0706 ke mikro sd?

  2. Giri Wahyu Pambudi

    blm pernah coba mas, nanti pasti kita update kalau sudah ada.

  3. Kak kalau ditambah ldr bisa kah

  4. Giri Wahyu Pambudi

    bisa mas.

Tinggalkan Balasan