#include <DHT.h>
// Set up the DHT sensor
DHT dht(4, DHT22);
float temperature ;
float humidity;
#define ECHO_PIN1 15 //Pins for Sensor 1
#define TRIG_PIN1 2 //Pins for Sensor 1
#define ECHO_PIN2 5 //Pins for Sensor 2
#define TRIG_PIN2 18 //Pins for Sensor 2
#define RELAYPIN 11
int LEDPIN1 = 13;
int LEDPIN2 = 12;
void setup() {
Serial.begin(115200);
pinMode(RELAYPIN, OUTPUT);
digitalWrite(RELAYPIN, LOW); // Turn off the relay initially
dht.begin();
pinMode(LEDPIN1, OUTPUT);
pinMode(TRIG_PIN1, OUTPUT);
pinMode(ECHO_PIN1, INPUT);
pinMode(LEDPIN2, OUTPUT);
pinMode(TRIG_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
}
float readDistance1CM() {
digitalWrite(TRIG_PIN1, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN1, LOW);
int duration = pulseIn(ECHO_PIN1, HIGH);
return duration * 0.034 /2 ;
}
float readDistance2CM() {
digitalWrite(TRIG_PIN2, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN2, LOW);
int duration = pulseIn(ECHO_PIN2, HIGH);
return duration * 0.034 / 2;
}
void loop() {
// put your main code here, to run repeatedly:
temperature = dht.readTemperature();
humidity = dht.readHumidity();
Serial.print("Temperatue:\t");
Serial.print(dht.readTemperature(false));
Serial.println("C");
// Print the values of temperature in Fahrenheit
Serial.print("Temperatue:\t");
Serial.print(dht.readTemperature(true));
Serial.println("F");
// print Humidity in perscent
Serial.println("Humidity: \t"+String(humidity)+ "%");
if (temperature >= 30.0) {
// Temperature is 28 degrees or higher, turn on the relay
digitalWrite(RELAYPIN, HIGH);
Serial.println("AC turned ON");
} else {
// Temperature is below 28 degrees, turn off the relay
digitalWrite(RELAYPIN, LOW);
Serial.println("AC turned OFF");
}
float distance1 = readDistance1CM();
float distance2 = readDistance2CM();
bool isNearby1 = distance1 > 200;
digitalWrite(LEDPIN1, isNearby1);
bool isNearby2 = distance2 > 200;
digitalWrite(LEDPIN2, isNearby2);
Serial.print("Measured distance: ");
Serial.println(readDistance1CM());
Serial.println(readDistance2CM());
delay(500);
}