Membuat Data Logger Suhu dan Kelembapan menggunakan Arduino

Membuat Data Logger Suhu dan Kelembapan menggunakan Arduino
4.3 (86%) 14 votes

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.

Baca Juga  Mengukur Suhu dan Kelembapan menggunakan Arduino dengan Sensor DHT 11

Baca Juga  Belajar Menggunakan Micro SD Shield dengan Arduino

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)
Baca Juga  Cara Memasukan / Menambahkan Library di 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.

Share your vote!


Vote and Share your Fell !
  • Fascinated
  • Happy
  • Sad
  • Angry
  • Bored
  • Afraid

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
Jumlah Post : 396 Artikel

Artikel Serupa

Check Also

Piston pin Offset – Alasan piston tidak boleh dipasang terbalik