#include <DHT.h>
#define LDR_PIN 19
const int dhtPin = 27;
byte sensorPin = 2;
DHT dht(dhtPin, DHT22);
#include <LiquidCrystal.h>
LiquidCrystal lcd(18, 5, 17, 16, 4, 0);
const int triggerPin = 12;
const int echoPin = 14;
byte buzzerpin = 25;
byte ledpin=18;
void setup() {
Serial.begin(115200);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT_PULLUP);
pinMode(sensorPin, INPUT);
pinMode(buzzerpin, OUTPUT);
pinMode(LDR_PIN, INPUT);
pinMode(ledpin, OUTPUT);
// pinMode(dhtpin, INPUT_PULLUP);
lcd.begin(20, 4);
// lcd.print("Distance Example");
dht.begin();
delay(1000);
}
void loop() {
// Trigger the ultrasonic sensor
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Measure the echo time
float duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
//float humidity = dht.readHumidity();
//Serial.println(humidity);
// Read temperature as Celsius (the default)
float temperature = dht.readTemperature();
Serial.println(temperature);
int sensorValue = digitalRead(sensorPin);
Serial.println(sensorValue);
if (sensorValue == HIGH)
{
digitalWrite(buzzerpin, HIGH);
Serial.println("motion detected...");
lcd.setCursor(0, 2);
lcd.print("motion detected");
}
else {
digitalWrite(buzzerpin, LOW);
Serial.println("motion not detected..");
lcd.setCursor(0, 2);
lcd.print("motion false");
}
if (digitalRead(LDR_PIN) == LOW) {
Serial.println("Light!");
digitalWrite(ledpin, LOW);
lcd.setCursor(0,3);
lcd.print("light mode");
} else {
digitalWrite(ledpin, HIGH);
Serial.println("Dark ");
lcd.setCursor(0,3);
lcd.print("dark mode");
}
lcd.setCursor(0, 0);
lcd.print("temperature :" + String(temperature) + char(223) + "c"); //(char)223 = degree symbol
lcd.setCursor(0, 1);
lcd.print("Distance: " + String(distance, 0) + " cm");
delay(1000);
}