#include "DHT.h"
#include <Servo.h>
#define DHTPIN 7
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int TRIG_PIN_L = 11;
const int ECHO_PIN_L = 10;
const int TRIG_PIN_R = 9;
const int ECHO_PIN_R = 8;
float duration_us_L, dist_L, t;
float duration_us_R, dist_R;
int ldr_data;
Servo sL;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(TRIG_PIN_R, OUTPUT);
pinMode(ECHO_PIN_R, INPUT);
pinMode(TRIG_PIN_L, OUTPUT);
pinMode(ECHO_PIN_L, INPUT);
pinMode(17, INPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
sL.attach(3);
}
void loop() {
ultrasonic_R();
ultrasonic_L();
Servo();
if (dist_R < 360 || dist_L < 360) {
temp();
if (t > 30) {
LDR();
if (ldr_data == 1) {
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
} else if (ldr_data == 0) {
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
}
} else if (t <= 30) {
LDR();
if (ldr_data == 1) {
digitalWrite(12, LOW);
digitalWrite(13, LOW);
} else if (ldr_data == 0) {
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
}
}
} else {
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
}
void ultrasonic_R() {
digitalWrite(TRIG_PIN_R, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN_R, LOW);
duration_us_R = pulseIn(ECHO_PIN_R, HIGH);
dist_R = 0.017 * duration_us_R;
Serial.print("OBJECT DETECTED_R : ");
Serial.print(dist_R);
Serial.println(" cm");
}
void ultrasonic_L() {
digitalWrite(TRIG_PIN_L, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN_L, LOW);
duration_us_L = pulseIn(ECHO_PIN_L, HIGH);
dist_L = 0.017 * duration_us_L;
Serial.print("OBJECT DETECTED_L : ");
Serial.print(dist_L);
Serial.println(" cm");
}
void Servo() {
for (int i = 0; i <= 90; i++) {
sL.write(i);
delay(10);
}
for (int j = 90; j >= 0; j--) {
sL.write(j);
delay(10);
}
}
void LDR() {
ldr_data = digitalRead(17);
Serial.println(ldr_data);
}
void temp() {
float h = dht.readHumidity();
t = dht.readTemperature();
Serial.print("HUMIDITY = ");
Serial.print(h);
Serial.print("%\tTEMPERATURE = ");
Serial.print(t);
Serial.println(" °C");
}