#include <DHT.h>
// Definisikan pin DHT22
#define DHTPIN 2
#define DHTTYPE DHT22
// Definisikan pin untuk LED
#define RED_LED 6
#define YELLOW_LED 7
#define GREEN_LED 8
// Batas suhu
#define HIGH_TEMP 30.0
#define MID_TEMP 20.0
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Inisialisasi komunikasi serial
Serial.begin(9600);
// Inisialisasi pin LED sebagai output
pinMode(RED_LED, OUTPUT);
pinMode(YELLOW_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
// Mulai sensor DHT22
dht.begin();
}
void loop() {
// Baca data suhu dari DHT22
float suhu = dht.readTemperature();
// Cek apakah pembacaan berhasil
if (isnan(suhu)) {
Serial.println("Gagal membaca dari DHT22!");
return;
}
// Tampilkan suhu di Serial Monitor
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.println(" *C");
// Kontrol LED berdasarkan suhu
if (suhu > HIGH_TEMP) {
digitalWrite(RED_LED, HIGH); // Nyalakan LED Merah
digitalWrite(YELLOW_LED, LOW); // Matikan LED Kuning
digitalWrite(GREEN_LED, LOW); // Matikan LED Hijau
} else if (suhu > MID_TEMP && suhu <= HIGH_TEMP) {
digitalWrite(RED_LED, LOW); // Matikan LED Merah
digitalWrite(YELLOW_LED, HIGH);// Nyalakan LED Kuning
digitalWrite(GREEN_LED, LOW); // Matikan LED Hijau
} else {
digitalWrite(RED_LED, LOW); // Matikan LED Merah
digitalWrite(YELLOW_LED, LOW); // Matikan LED Kuning
digitalWrite(GREEN_LED, HIGH); // Nyalakan LED Hijau
}
// Tunggu 2 detik sebelum pembacaan berikutnya
delay(2000);
}