#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 26 // Pin data DHT22 terhubung ke pin GPIO 4 pada ESP32
#define DHTTYPE DHT22 // Tipe sensor DHT yang digunakan
DHT_Unified dht(DHTPIN, DHTTYPE);
int redLed = 18; // Pin LED merah terhubung ke pin GPIO 2 pada ESP32
int yellowLed = 19; // Pin LED kuning terhubung ke pin GPIO 15 pada ESP32
int greenLed = 21; // Pin LED hijau terhubung ke pin GPIO 13 pada ESP32
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
}
void loop() {
sensors_event_t event;
dht.temperature().getEvent(&event);
if (!isnan(event.temperature)) {
float suhu = event.temperature;
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, LOW);
if (suhu < 27) {
digitalWrite(greenLed, HIGH);
} else if (suhu < 30) {
digitalWrite(yellowLed, HIGH);
} else if (suhu < 35) {
digitalWrite(redLed, HIGH);
} else {
blinkRedLed(500);
}
Serial.print("Suhu: ");
Serial.println(suhu);
}
delay(2000);
}
void blinkRedLed(int interval) {
static unsigned long previousMillis = 0;
static boolean ledState = LOW;
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(redLed, ledState ? HIGH : LOW);
}
}