// Memasukkan library yang dibutuhkan
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
// Mendefinisikan pin dan tipe sensor DHT
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Mendefinisikan pin LED
#define redLed 6
#define yellowLed 5
#define greenLed 4
// Membuat objek LCD dengan alamat I2C 0x27 dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Mendeklarasikan variabel untuk menyimpan nilai suhu dan kelembapan
float suhu, kelembapan;
void setup() {
// Menginisialisasi sensor dan LED
dht.begin();
pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
lcd.init();
lcd.backlight();
// Menampilkan pesan awal pada LCD
lcd.setCursor(0, 0);
lcd.print("Kelompok 3");
lcd.setCursor(0, 1);
lcd.print("Pendeteksi Air");
delay(2000);
lcd.clear();
}
void loop() {
// Membaca nilai suhu dan kelembapan dari sensor
suhu = dht.readTemperature();
kelembapan = dht.readHumidity();
// Menampilkan nilai suhu dan kelembapan pada LCD
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.print(suhu);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Kelembapan: ");
lcd.print(kelembapan);
lcd.print(" %");
// Menunggu 1 detik sebelum membaca lagi
delay(1000);
// Mengatur indikator LED sesuai dengan nilai kelembapan
// Anda bisa mengubah batas nilai kelembapan sesuai dengan kebutuhan
if (kelembapan < 40) {
// Jika kelembapan kurang dari 40%, maka LED merah menyala
digitalWrite(redLed, HIGH);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, LOW);
}
else if (kelembapan < 60) {
// Jika kelembapan antara 40-60%, maka LED kuning menyala
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, HIGH);
digitalWrite(greenLed, LOW);
}
else {
// Jika kelembapan lebih dari 60%, maka LED hijau menyala
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, HIGH);
}
// Menunggu 1 detik sebelum membaca lagi
delay(1000);
}