const int trigPin1 = 13;
const int echoPin1 = 12;
#define redled 18
#define yellowled 19
#define greenled 5
#define BUZZER 2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16, 2);
unsigned long startMillis;
unsigned long currentMillis;
const unsigned long period = 10000;
long duration1;
int distance1;
void setup()
{
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(redled, OUTPUT);
pinMode(greenled, OUTPUT);
pinMode(yellowled, OUTPUT);
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(yellowled, LOW);
lcd.init();
Serial.begin(115200);
lcd.backlight();
}
void loop()
{
lcd.setCursor(2, 0) ;
lcd.print("SMART FLOOD");
lcd.setCursor(0, 1) ;
lcd.print("DETECTION SYSTEM");
delay(5000);
lcd.clear();
delay(300);
digitalWrite(trigPin1, HIGH);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1 = duration1 * 0.034 / 2;
Serial.println(distance1);
if (distance1 <= 50)
{
digitalWrite(18, HIGH);
digitalWrite(19, LOW);
digitalWrite(5, LOW);
delay(200);
tone(BUZZER, 3000);
lcd.clear();
lcd.setCursor(4, 0) ;
lcd.print("HIGH RISK");
delay(3000);
noTone(BUZZER);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
digitalWrite(5, LOW);
delay(1000);
}
if (distance1 >= 51 && distance1 <= 80 )
{
digitalWrite(19, HIGH);
digitalWrite(18, LOW);
digitalWrite(5, LOW);
tone(BUZZER, 1200);
lcd.setCursor(2, 0) ;
lcd.print("MEDIUM RISK");
delay(3000);
lcd.clear();
noTone(BUZZER);
digitalWrite(19, LOW);
digitalWrite(18, LOW);
digitalWrite(5, LOW);
delay(1000);
}
else
{
digitalWrite(5, HIGH);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
noTone(BUZZER);
lcd.clear();
lcd.setCursor(4, 0) ;
lcd.print("NO RISK");
delay(5000);
lcd.clear();
delay(1000);
}
}