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
- Arduino
- kabel jumper
- breadboard
- Modul micro SD
- Sensor kelembaban dan temperatur dht11
- RTC DS 2321
Setelah semua komponen diatas telah disiapkan saatnya kita membuat rangkaian seperti gambar berikut:
Daftar Isi
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:
- DHT Sensor Library by Adafruit ( tersedia di menu Manage Library Arduino IDE)
- 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.
Mas ini aku udah coba compile, tapi kok muncul error terus yah erornya gini:
exit status 1
redefinition of ‘DHT dht’
Mas ini aku udah coba compile, tapi kok muncul error terus yah erornya gini: exit status 1 redefinition of 'DHT dht'
Blm ada library DHT di Arduinonya mas, silahkan dibaca lg artikelnya, sdh saya update cara masukan library ke arduino IDE.
Mas kalau data logger seperti itu harganya kisaran berapa ya?
Mas kalau data logger seperti itu harganya kisaran berapa ya?
serius tnya apa cm mau nanem backlink gan?hehe
Gan, saya sedang membuat proyek untuk mengukur kecepatan jalan orang, nah apabila kecepatan orang tersebut kurang dari min kecepatan, maka kamera VC0706 akan mengambil gambar orang tersebut, pertanyaan saya, apakah bisa gambar2 tersebut disimpan di modul microSD?
Gan, saya sedang membuat proyek untuk mengukur kecepatan jalan orang, nah apabila kecepatan orang tersebut kurang dari min kecepatan, maka kamera VC0706 akan mengambil gambar orang tersebut, pertanyaan saya, apakah bisa gambar2 tersebut disimpan di modul microSD?
bisa bgt gan.
apabila modul micro SD tadi digabung dengan modul RFID apakah bisa berjalan?
soalnya SCK MOSI dan MISO nya sama pinnya…..
mas tolong di jawab ? saya pake nya arduino mega dan RTC nya pake yang MH-real-Time Clock Module 2
Arduino: 1.8.7 (Windows Store 1.8.15.0) (Windows 10), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”
The sketch name had to be modified.
Sketch names must start with a letter or number, followed by letters,
numbers, dashes, dots and underscores. Maximum length is 63 characters.
In file included from C:\Users\SAYANGKU\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0:
C:\Users\SAYANGKU\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
mas tolong di jawab ? saya pake nya arduino mega dan RTC nya pake yang MH-real-Time Clock Module 2 Arduino: 1.8.7 (Windows Store 1.8.15.0) (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)" The sketch name had to be modified. Sketch names must start with a letter or number, followed by letters, numbers, dashes, dots and underscores. Maximum length is 63 characters. In file included from C:\Users\SAYANGKU\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0: C:\Users\SAYANGKU\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory compilation terminated. exit status 1 Error compiling for board Arduino/Genuino Mega or Mega 2560. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
The sketch name had to be modified.
Sketch names must start with a letter or number, followed by letters,
numbers, dashes, dots and underscores. Maximum length is 63 characters.
coba ganti nama filenya mas.
mas , program untuk menyimpan hasil capture dari camera vc 0706 ke modul sd gimna ya mas?