#include "DHTesp.h"
const int DHT_PIN = 15;
const int TRIG_PIN = 4;
const int ECHO_PIN = 5;
int a=12;
int b=13;
int c=14;
long duration, distance;
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
distance = getDistanceInCentimeters();
if(distance>=0&&distance<100){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c,LOW);
}
if(distance>=100&&distance<200){
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c,LOW);
}
if(distance>=200&&distance<300){
digitalWrite(a, LOW);
digitalWrite(c,LOW);
digitalWrite(b, HIGH);
}
if(distance>=300&&distance<400){
digitalWrite(c, HIGH);
digitalWrite(a, LOW);
digitalWrite(b,LOW);
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
delay(1000);
Serial.println("Distance = "+ String(distance));
delay(1000);
}
long getDistanceInCentimeters() {
digitalWrite(TRIG_PIN,LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
return (duration * 0.034 / 2) + 1;
}