#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
// Inisialisasi objek LCD
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Definisi pin dan jenis sensor DHT
#define DHTPIN 22 // Pin DATA sensor DHT
#define DHTTYPE DHT22 // Jenis sensor DHT
#define INTERVAL_GET_DATA 2000 // Interval pengambilan data, dalam milidetik
// Inisialisasi objek DHT
DHT dht(DHTPIN, DHTTYPE);
// Variabel untuk mengukur interval waktu
unsigned long lastMeasurementTime = 0;
void setup() {
Serial.begin(9600); // Inisialisasi serial port
dht.begin(); // Inisialisasi sensor DHT
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Menghidupkan backlight LCD
}
void loop() {
unsigned long currentMillis = millis(); // Dapatkan waktu sekarang
if (currentMillis - lastMeasurementTime >= INTERVAL_GET_DATA) {
// Periksa jika interval waktu sudah berlalu
float humidity = getHumidity(); // Dapatkan kelembapan
float temperature = getTemperature(); // Dapatkan suhu
// Tampilkan data pada Serial Monitor
Serial.print("Humidity: ");
Serial.println(humidity);
Serial.print("Temperature: ");
Serial.println(temperature);
// Tampilkan data pada LCD
lcd.setCursor(0, 0); // Set posisi cursor
lcd.print("Humidity: "); // Tampilkan teks
lcd.print(humidity); // Tampilkan nilai kelembapan
lcd.setCursor(0, 1); // Set posisi cursor
lcd.print("Temperature: "); // Tampilkan teks
lcd.print(temperature); // Tampilkan nilai suhu
// Memperbarui waktu terakhir pengukuran
lastMeasurementTime = currentMillis;
}
}
// Fungsi untuk mendapatkan kelembapan
float getHumidity() {
return dht.readHumidity(); // Baca kelembapan
}
// Fungsi untuk mendapatkan suhu
float getTemperature() {
return dht.readTemperature(); // Baca suhu
}