#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <DHT.h>
const int dhtPin = 14;
const int triggerPin = 5;
const int echoPin = 17;
DHT dht(dhtPin, DHT22);
#define LDR_PIN 2
byte sensorPin = 27;
byte ledPin = 2;
byte buzzer=4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");lcd.init();
lcd.backlight();
dht.begin();
pinMode(ledPin, OUTPUT);
pinMode(sensorPin,INPUT);
pinMode(buzzer, OUTPUT);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT_PULLUP);
pinMode(LDR_PIN, INPUT);
pinMode(sensorPin,INPUT);
}
void loop()
{
lcd.setCursor(0,0);
float temperature = dht.readTemperature();
lcd.println("temperature:");
lcd.print(temperature);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
float duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
lcd.setCursor(0,1);
lcd.print("Distance: " + String(distance,0) + " cm ");
lcd.setCursor(0,2);
lcd.println("Room: ");
if (digitalRead(LDR_PIN) == LOW) {
lcd.println("Light!");
} else {
lcd.println("Dark ");
}
int sensorValue=digitalRead(sensorPin);
Serial.println(sensorValue);
lcd.setCursor(0,3);
if(sensorValue==HIGH)
{
digitalWrite(buzzer, HIGH);
lcd.println("motion detected...");
}
else{
digitalWrite(buzzer, LOW);
lcd.println("motion not detected..");
}
delay(1000); // this speeds up the simulation
}