// #include <Arduino.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include "DHT.h"
#define pirPin 4
#define ledPin1 8
#define ledPin2 9
#define buzzerPin 7
#define ldrPin A0
#define dhtPin A2
#define dhtType DHT22
Servo servo;
LiquidCrystal_I2C lcd(0x27, 20, 4);
DHT dht(dhtPin, dhtType);
void setup()
{
pinMode(pirPin, INPUT);
pinMode(buzzerPin, INPUT);
pinMode(ldrPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
servo.attach(6);
lcd.init();
lcd.backlight();
dht.begin();
}
void loop()
{
float readTemp = dht.readTemperature();
int readBuzzer = digitalRead(buzzerPin);
int readLdr = map(analogRead(ldrPin), 0, 1024, 100, 0);
int readPir = digitalRead(pirPin);
float temp = 0;
int ldr = 0;
int pir = 0;
if (readTemp > 30)
{
temp = 1;
if (readLdr > 80)
{
ldr = 1;
if (readPir == HIGH)
{
pir = 1;
}
}
}
if(temp == 1) {
lcd.setCursor(0, 0);
lcd.print("It's hot in here");
if(ldr == 1) {
lcd.setCursor(0, 1);
lcd.print("There's a fire!");
digitalWrite(buzzerPin, HIGH);
digitalWrite(ledPin2, HIGH);
servo.write(180);
delay(1000);
if(pir == 1) {
lcd.setCursor(0, 2);
lcd.print("There's a person!");
lcd.setCursor(0, 3);
lcd.print("Sending help...");
digitalWrite(ledPin1, HIGH);
} else {
lcd.setCursor(0, 2);
lcd.print("No one is here");
lcd.setCursor(0, 3);
lcd.print("Waiting for help...");
digitalWrite(ledPin1, LOW);
}
} else {
lcd.setCursor(0, 1);
lcd.print("There's no fire");
digitalWrite(buzzerPin, LOW);
digitalWrite(ledPin2, LOW);
servo.write(0);
}
} else {
lcd.setCursor(0, 0);
lcd.print("It's not hot");
lcd.setCursor(0, 1);
lcd.print("There's no fire");
digitalWrite(buzzerPin, LOW);
digitalWrite(ledPin2, LOW);
servo.write(0);
digitalWrite(ledPin1, LOW);
}
}