#include <Wire.h>
#define echoPin 2 //Defined and the pin no.s are according to the connection
#define trigPin 3
long distance , duration; //declared distance and duration
int buzzerPin =25;
#include <DHT.h> //Header file for DHT sensor
#define DHTPIN 15
#define DTYPE DHT22 //DHT 22
//Initialize DHT sensor
DHT dht(DHTPIN , DTYPE);
#include <LiquidCrystal_I2C.h>
//Initialize the LCD with I2C address
LiquidCrystal_I2C lcd(0x27, 15,2);
void setup() {
Serial.begin(9600);
pinMode (echoPin , INPUT); //as echopin of ultrasonic sensor is used as input mode
pinMode (trigPin , OUTPUT); // and trigpin of ultrasonic sensor as output mode
pinMode (buzzerPin , OUTPUT); //buzzerPin as output mode
dht.begin();
lcd.init(); //initialize LCD
lcd.backlight(); //Turn on the LCD backlight
lcd.setCursor(0,0); //Set cursor to the 1st row , 1st column
lcd.print("FLOOD MONITORING SYSTEM~~~!");
Wire.begin(); //initialize I2C
Serial.begin(115200);
Serial.println("I2C Scanner");
}
void loop() {
//Ultrasonic sensor's code:
digitalWrite(trigPin , LOW);
delayMicroseconds(2);
digitalWrite(trigPin , HIGH);
delayMicroseconds(10);
digitalWrite(trigPin , LOW);
duration = pulseIn(echoPin , HIGH);
distance=duration/5820; // we can divide by 58.2 to get the distance in meters
String disp=String (distance);
Serial.print("Distance: ");
Serial.print(disp);
Serial.println("m");
delay(1000);
//Buzzer's code:
digitalWrite(buzzerPin , HIGH);
delay(1000); //wait for a second after buzzer gets ON
digitalWrite(buzzerPin , LOW);
delay(1000); //again wait folr a second when buzzer turns OFF
//DHT22's code
float tc= dht.readTemperature(); //In Celsius
float tf= dht.readTemperature(true);
float hu= dht.readHumidity(); //In %
Serial.print("Temp:");
Serial.print(tc);
Serial.println("°C");
Serial.print(tf);
Serial.print("F,Hum:");
Serial.print(hu);
Serial.println("%");
//I2C's code
byte error , address;
int nDevice = 0;
Serial.println("Scanning...");
for(address =1; address<127; address++)
{
Wire.beginTransmission(address);
error = Wire.endTransmission();
if(error==0)
{
Serial.print("I2C device found at address 0x");
if(address < 16) Serial.print("0");
Serial.print(address , HEX);
Serial.println(" !");
nDevice++;
}
else if(error==4)
{
Serial.print("Unknown error at address 0x");
if(address < 16) Serial.print("0");
Serial.println(address , HEX);
}
}
if(nDevice ==0){
Serial.println("No I2C device found\n");
}
else{
Serial.println("done\n");
}
delay(3000); //wait for 3 seconds for next scan
}