#include <Wire.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 25 // Pin data DHT22 dihubungkan ke pin 25
#define DHTTYPE DHT22
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C mungkin berbeda sesuai dengan modul LCD Anda
DHT dht(DHTPIN, DHTTYPE);
const int greenLedPin = 23; // Pin untuk LED hijau
const int blueLedPin = 2; // Pin untuk LED biru
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init(); // Inisialisasi modul LCD I2C
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Suhu dan Kelembaban");
pinMode(greenLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
}
void loop() {
delay(2000); // Menunggu 2 detik untuk membaca suhu dan kelembaban berikutnya
float h = dht.readHumidity();
float t = dht.readTemperature();
// Periksa jika membaca data dari sensor DHT berhasil
if (isnan(h) || isnan(t)) {
Serial.println(F("Gagal membaca data dari sensor DHT"));
return;
}
Serial.print(F("Suhu: "));
Serial.print(t);
Serial.print(F(" °C\tKelembaban: "));
Serial.print(h);
Serial.println(F("%"));
// Tampilkan data pada modul LCD I2C
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.print(t);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Kelembaban: ");
lcd.print(h);
lcd.print("%");
// Atur LED sesuai dengan suhu
if (t < 30.0) {
digitalWrite(greenLedPin, HIGH);
digitalWrite(blueLedPin, LOW);
} else {
digitalWrite(greenLedPin, LOW);
digitalWrite(blueLedPin, HIGH);
}
}