//Rapaen Uberto Manalu
#include<DHT.h>
#define TRIG_PIN A1
#define ECHO_PIN A0
#define led_R 2
#define led_Y 3
#define buzzer 8
#define DHTTYPE DHT22
#define DHT_22 4
long duration, distance; // variabel durasi dan jarak
DHT dht (DHT_22, DHTTYPE);
float temp;
float hum;
long ultrasonic() //SENSOR ULTRASONIC
{
digitalWrite(TRIG_PIN,LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN,HIGH);
delayMicroseconds(10);
duration=pulseIn (ECHO_PIN,HIGH);
return duration / 29 / 2;
}
void setup() {
// put your setup code here, to run once:
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(led_R, OUTPUT);
pinMode(led_Y, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
dht.begin();
}
void loop() {
// put your main code here, to run repeatedly:
hum = dht.readHumidity(); //DHT22
temp = dht.readTemperature();
distance = ultrasonic(); //Ultrasonic
Serial.print("Distance: ");
Serial.println(distance);
Serial.print("Temperature: ");
Serial.println(temp);
Serial.print("Humidity: ");
Serial.println(hum);
delay(1000);
if(distance <= 50 && hum <= 40){
digitalWrite(led_R, HIGH);
delay(500);
digitalWrite(led_Y, HIGH);
delay(3000);
digitalWrite(buzzer, HIGH);
//delay(1000);
}
else if (distance <= 50 && temp <= 30){
digitalWrite(led_Y, HIGH);
delay(2000);
digitalWrite(led_R, HIGH);
delay(3000);
digitalWrite(buzzer, HIGH);
//delay(5000);
}
else{
digitalWrite(led_Y, HIGH);
delay(500);
digitalWrite(led_R, HIGH);
digitalWrite(led_Y, LOW);
delay(500);
digitalWrite(led_R, LOW);
digitalWrite(led_Y, HIGH);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
delay(500);
digitalWrite(led_R, HIGH);
}
}