#include <DHT.h>
#define DHTPIN 2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22
#define LED_HIJAU 11
#define LED_KUNING 12
#define LED_MERAH 13
#define LED_BIRU 10
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LED_HIJAU, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
pinMode(LED_BIRU, OUTPUT);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature(); // or t = dht.readTemperature(true) for Fahrenheit
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.println(F("°C "));
// Kontrol lampu berdasarkan suhu
if (t >= 5 && t <= 30) {
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
digitalWrite(LED_BIRU, LOW);
} else if (t >= 30 && t <= 50) {
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_MERAH, LOW);
digitalWrite(LED_BIRU, LOW);
} else if (t >= 51) {
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, HIGH);
digitalWrite(LED_BIRU, LOW);
} else {
// Suhu di bawah 5 derajat, matikan semua lampu
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
digitalWrite(LED_BIRU, HIGH);
}
delay(2000);
}