#include <Servo.h>
#include <DHT.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
DHT DHT(2, DHT22);
LiquidCrystal_I2C lcd(0x27,20,4);
int servoPin=4;
Servo Servol;
const int trigPin =15;
const int echoPin =14;
long duration;
double distance;
float lastHumidity ;
float lastTemperature ;
void setup() {
DHT.begin();
Servol.attach(servoPin);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.begin(20, 4); // Initialize a 16x2 LCD
}
void loop() {
lastHumidity = DHT.readHumidity();
lastTemperature = DHT.readTemperature();
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the result:
int duration = pulseIn(echoPin , HIGH);
distance=duration*0.034/2;
lcd.setCursor(2,0);
lcd.print("Temperature ");
lcd.print(lastTemperature);
lcd.setCursor(2,1);
lcd.print("Humidity ");
lcd.print(lastHumidity);
lcd.setCursor(5,2);
lcd.print("distance ");
lcd.print(distance);
if (distance<50){
Servol.write(0);
}else if(distance>=50){
Servol.write(180);
}
}