#include <DHT.h>
DHT dht(14, DHT22);
int ledM = 19; //lampu merah
int ledH = 18; //lampu hijau
int ledB = 16; //lampu Biru
int pinbuz = 17;
int chanbuz = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
dht.begin();
pinMode(ledM, OUTPUT);
pinMode(ledH, OUTPUT);
pinMode(ledB, OUTPUT);
ledcAttachPin(pinbuz, chanbuz);
}
void loop() {
delay(1000);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
Serial.print("Suhu: ");
Serial.println(temp);
Serial.print("Kelembapan: ");
Serial.println(hum);
//untuk suhu normal 15 sampai 35 derajat celcius
if (temp >= 15 && temp <= 35) {
digitalWrite(ledM, LOW);
digitalWrite(ledH, HIGH);
digitalWrite(ledB, LOW);
ledcWriteTone(chanbuz, 0);
//untuk peringatan suhu lebih 35 derajat
} else if (temp >35 && temp <=40) {
digitalWrite(ledH, LOW);
digitalWrite(ledM, HIGH);
digitalWrite(ledB, LOW);
ledcWriteNote(chanbuz, (note_t)NOTE_E, 6);
//untuk peringatan suhu kalo dibawah 15 derajat
} else if (temp < 15 && temp >= 10) {
digitalWrite(ledM, LOW);
digitalWrite(ledH, LOW);
digitalWrite(ledB, HIGH);
ledcWriteNote(chanbuz, (note_t)NOTE_E, 5);
//untuk suhu kritis kalo diatas 40 atau di bawah 10 derajat
} else if (temp > 40 || temp < 10) {
digitalWrite(ledH, LOW);
digitalWrite(ledM, HIGH);
digitalWrite(ledB, HIGH);
ledcWriteNote(chanbuz, (note_t)NOTE_E, 6);
delay(100);
ledcWriteNote(chanbuz, (note_t)NOTE_E, 5);
delay(100);
ledcWriteNote(chanbuz, (note_t)NOTE_E, 7);
}
}