#include "DHT.h"
#define DHTPIN 2 // pin 2 terhubung ke sensor DHT22
#define DHTTYPE DHT22 // tipe sensor dht yatu dht22
DHT dht(DHTPIN, DHTTYPE);
int greenLed = 8; // pin 8 untuk indikator lampu hijau
int yellowLed = 9; // pin 9 untuk indikator lampu kuning
int redLed = 10; // pin 10 untuk indikator lampu merah
void setup() {
Serial.begin(9600);
dht.begin();
// mengatur led hijau, kuning, dan merah sebagai output
pinMode(greenLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(redLed, OUTPUT);
// mengatur status awal led, yaitu semua led mati
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, LOW);
}
void loop() {
delay(2000); // jeda 2 detik antara pengukuran
float temperature = dht.readTemperature(); // baca suhu dari sensor
if (isnan(temperature)) { // jika nilai yang dibaca sensor nan/not a number
Serial.println("Gagal membaca sensor DHT!"); // maka cetak kalimat ini
return;
}
Serial.print("Suhu: "); // cetak teks "Suhu: "
Serial.print(temperature); // cetak nilai variabel temperature yang didapat dari sensor dht22
Serial.println(" °C"); // cetak tek " °C"
if (temperature < 25) { // jika suhu kurang dari 25
digitalWrite(greenLed, HIGH); // maka led hijau akan menyala
digitalWrite(yellowLed, LOW); // maka led kuning akan dimatikan
digitalWrite(redLed, LOW); // maka led merah akan dimatikan
} else if (temperature >= 25 && temperature <= 30) { // jika suhu sama dengan 25-30
digitalWrite(greenLed, LOW); // maka led hijau akan dimatikan
digitalWrite(yellowLed, HIGH); // maka led kuning akan dinyalakan
digitalWrite(redLed, LOW); //maka led merah akan dimatikan
} else { // jika suhu tidak masuk pada 2 kondisi di atas maka
digitalWrite(greenLed, LOW); // lampu hijau akan dimatikan
digitalWrite(yellowLed, LOW); // lampu kuning akan dimatikan
digitalWrite(redLed, HIGH); // lampu merah akan dinyalakan
}
}