#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define LDR_PIN 12
LiquidCrystal_I2C lcd(0x27, 20, 4);
// byte LDR_PIN = 12;
int led_pin = 19;
byte pir_pin = 14;
byte buzzerpin = 26;
byte dht_pin = 27;
const int triggerpin = 4;
const int echopin = 25;
DHT dht(dht_pin, DHT22);
void setup() {
pinMode(LDR_PIN, INPUT);
pinMode(led_pin, OUTPUT);
pinMode(buzzerpin, OUTPUT);
pinMode(pir_pin, INPUT);
dht.begin();
lcd.init();
lcd.backlight();
}
void loop() {
// ldr sensor
// lcd.setCursor(2, 0);
// lcd.print("Room: ");
if (digitalRead(LDR_PIN) == LOW) {
lcd.setCursor(0,3);
lcd.print("Light!");
digitalWrite(led_pin, LOW);
} else {
lcd.setCursor(0, 3);
lcd.print("Dark ");
digitalWrite(led_pin, HIGH);
}
// pir sensor----------------
int sensorValue = digitalRead(pir_pin);
Serial.println(sensorValue);
if (sensorValue == HIGH) {
lcd.setCursor(0, 2);
digitalWrite(buzzerpin, HIGH);
lcd.print("motion detected");
Serial.println("motion detected");
}
else {
lcd.setCursor(0, 2);
digitalWrite(buzzerpin, LOW);
lcd.print("motion false");
}
// dht sensor ------------------------
lcd.setCursor(0, 1);
float temperature = dht.readTemperature();
lcd.print("Temp:" + String(temperature));
// ultrasonic sensor------------------------
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.clear();
lcd.setCursor(0, 0);
lcd.print("Distance: " + String(distance, 0) + "cm");
delay(1000);
}