#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Inisialisasi pin
#define DHTPIN 2 // Pin yang terhubung ke DHT22
#define DHTTYPE DHT22 // Tipe sensor yang digunakan
#define BLUE_LED_PIN 8
#define RED_LED_PIN 9
// Inisialisasi LCD I2C dengan alamat 0x27 dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Inisialisasi DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Set up pin LED sebagai output
pinMode(BLUE_LED_PIN, OUTPUT);
pinMode(RED_LED_PIN, OUTPUT);
// Mulai komunikasi serial
Serial.begin(9600);
// Mulai sensor DHT
dht.begin();
// Inisialisasi LCD
lcd.init();
lcd.backlight();
lcd.print("Initializing...");
delay(2000);
}
void loop() {
// Baca suhu dari sensor DHT22
float temperature = dht.readTemperature();
// Jika pembacaan gagal, coba lagi
if (isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Tampilkan suhu pada serial monitor
Serial.print("Temperature: ");
Serial.println(temperature);
// Bersihkan layar LCD
lcd.clear();
// Tentukan tindakan berdasarkan suhu
if (temperature < 30.0) {
digitalWrite(BLUE_LED_PIN, HIGH);
digitalWrite(RED_LED_PIN, LOW);
lcd.print("Adem");
} else {
digitalWrite(BLUE_LED_PIN, LOW);
digitalWrite(RED_LED_PIN, HIGH);
lcd.print("Hareudang");
}
// Tunggu 2 detik sebelum pembacaan berikutnya
delay(2000);
}