// Memasukkan library yang dibutuhkan
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Mendefinisikan pin DHT22 dan tipe sensornya
#define DHTPIN 10
#define DHTTYPE DHT22
// Membuat objek DHT22
DHT dht(DHTPIN, DHTTYPE);
// Membuat objek LCD 16 x 2 dengan alamat I2C 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Mendefinisikan pin relay module
#define RELAY_PIN 9
// Mendefinisikan nilai rata-rata kelembapan
#define HUMIDITY_THRESHOLD 50
void setup() {
// Menginisialisasi LCD
lcd.init();
lcd.backlight();
// Menginisialisasi DHT22
dht.begin();
// Mengatur pin relay sebagai output
pinMode(RELAY_PIN, OUTPUT);
// Mengatur pin relay dalam keadaan LOW (mati)
digitalWrite(RELAY_PIN, LOW);
}
void loop() {
// Membaca nilai suhu dan kelembapan dari DHT22
float temp = dht.readTemperature();
float hum = dht.readHumidity();
// Menampilkan nilai suhu dan kelembapan di LCD
lcd.setCursor(0,0);
lcd.print("Suhu: ");
lcd.print(temp);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Kelembapan: ");
lcd.print(hum);
lcd.print(" %");
// Mengatur kondisi relay dan LED berdasarkan nilai kelembapan
if (hum > HUMIDITY_THRESHOLD) {
// Jika kelembapan di atas rata-rata, maka relay dan LED menyala (HIGH)
digitalWrite(RELAY_PIN, HIGH);
} else {
// Jika kelembapan di bawah rata-rata, maka relay dan LED mati (LOW)
digitalWrite(RELAY_PIN, LOW);
}
// Menunggu selama satu detik sebelum membaca lagi
delay(100);
}