#include <DHT.h>
#define DHTPIN 21
#define DHTTYPE DHT22
#define ECHO_PIN 32
#define TRIG_PIN 4
#define PIR 34
#define LEDM 23
#define LEDB 22
#define LEDH 19
#define LEDU 18
#define LEDK 5
DHT dht(DHTPIN, DHTTYPE);
long durasi;
int jarak;
float x;
float y;
void setup()
{
dht.begin();
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(PIR, INPUT);
pinMode(LEDM, OUTPUT);
pinMode(LEDB, OUTPUT);
pinMode(LEDH, OUTPUT);
pinMode(LEDU, OUTPUT);
pinMode(LEDK, OUTPUT);
Serial.begin(115200);
awal(); // Matikan semua lampu saat awalnya
delay(5000);
}
void loop()
{
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
durasi = pulseIn(ECHO_PIN, HIGH);
jarak = durasi * 0.034 / 2;
x = dht.readHumidity();
y = dht.readTemperature();
//Deteksi gerakan PIR
int motionDetected = digitalRead(PIR);
if (motionDetected == HIGH) {
motionPIR();
}
if (y > 25) {
detectsuhu();
}
if (x > 20) {
detectsuhu();
}
if (jarak > 120) {
detectjarak();
}
if (x < 25 && y < 20) {
detect2sensor();
}
if (x < 25 && y < 20 && jarak < 120) {
awal();
}
// Tambahkan delay sesuai kebutuhan agar tidak terlalu cepat berulang
delay(1000); // Delay 1 detik
}
void awal() {
Serial.print("Suhu: ");
Serial.println(y);
Serial.print("Kelembapan: ");
Serial.println(x);
Serial.print("Jarak: ");
Serial.println(jarak);
digitalWrite(LEDM, LOW);
digitalWrite(LEDB, LOW);
digitalWrite(LEDH, LOW);
digitalWrite(LEDU, LOW);
digitalWrite(LEDK, LOW);
}
void motionPIR() {
digitalWrite(LEDM, HIGH);
delay(500);
digitalWrite(LEDM, LOW);
delay(500);
}
void detectsuhu() {
Serial.print("Suhu: ");
Serial.println(y);
digitalWrite(LEDB, HIGH);
delay(500);
digitalWrite(LEDB, LOW);
delay(500);
}
void detectkelembapan() {
Serial.print("Kelembapan: ");
Serial.println(x);
digitalWrite(LEDB, HIGH);
delay(500);
digitalWrite(LEDB, LOW);
delay(500);
}
void detectjarak() {
Serial.print("Jarak: ");
Serial.println(jarak);
digitalWrite(LEDU, HIGH);
delay(500);
digitalWrite(LEDU, LOW);
delay(500);
}
void detect2sensor() {
Serial.print("Suhu: ");
Serial.println(y);
Serial.print("Kelembapan: ");
Serial.println(x);
digitalWrite(LEDK, HIGH);
delay(500);
digitalWrite(LEDK, LOW);
delay(500);
}