#include "DHTesp.h"
const int DHT_PIN = 15;
DHTesp dhtSensor;
int ledmerah = 14;
int ledkuning = 12;
int ledhijau = 13;
int inputPin = 4;
int pirState = LOW;
int val = 0;
int buzzer = 2;
void setup() {
pinMode(ledmerah, OUTPUT);
pinMode(ledkuning, OUTPUT);
pinMode(ledhijau, OUTPUT);
pinMode(inputPin, INPUT);
pinMode(buzzer, OUTPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Serial.begin(9600);
}
void loop() {
val = digitalRead(inputPin);
if (val == HIGH) {
digitalWrite(ledmerah, HIGH);
Serial.println("Ada Orang Asing");
delay (500);
if (pirState == LOW) {
tone (buzzer, 700);
pirState = HIGH;
}
} else {
digitalWrite(ledmerah, LOW);
if (pirState == HIGH) {
noTone(buzzer);
//digitalWrite(buzzer, LOW);
pirState = LOW;
}
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
int suhu = data.temperature;
int kelembapan = data.humidity;
Serial.print("Temp: ");
Serial.print(suhu);
Serial.println("°C");
Serial.print("Humidity: ");
Serial.print(kelembapan);
Serial.println( "%");
Serial.println("---");
if (suhu < 25 && kelembapan < 50) {
digitalWrite(ledkuning, LOW);
digitalWrite(ledhijau, HIGH);
digitalWrite(buzzer, LOW);
Serial.println("Kondisi Normal");
}
if (25 < suhu < 40 && kelembapan > 50) {
tone (buzzer, 900, 500);
digitalWrite(ledkuning, HIGH);
delay(500);
digitalWrite(ledkuning, LOW);
delay(500);
digitalWrite(ledhijau, LOW);
Serial.println("Suhu dan Kelembapan Terlalu Tinggi");
}
delay(1000);
}