#include "DHT.h" //Library of DHT |
#define DHTPIN 2 //Pin 2 for DHT Sensor |
#define DHTTYPE DHT22 //Type of Sensor |
DHT dht(DHTPIN, DHTTYPE); // |
//------------------------------------------------------
#define trigPin 12 //Pin 12 for the Trig Pin of Ultrasonic
#define echoPin 13 //Pin 13 for the Trig Pin of Ultrasonic
int duration, distance;
const int buzzer = 9; //Pin 9 for the Buzzer
void setup() {
//This is for the Buzzer
pinMode(buzzer, OUTPUT);
// This is for the Serial Monitor
Serial.begin(9600);
pinMode(trigPin, OUTPUT); //define ultrasonic trig pin as output pin
pinMode(echoPin, INPUT); //define ultrasonic echo as input pin
delay(100);
//This is for the DHT22
dht.begin();
}
void loop() {
// Code for DHT22
delay(1000);
// Reading temperature or humidity takes about 250 milliseconds!
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
//Code for ultra sonic
digitalWrite(trigPin, HIGH);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
if (distance >= 101 && distance <= 199) {
Serial.print("distance= ");
Serial.print(distance);
Serial.print('\n');
Serial.println("Water Level is within 1-99 centimeters");
Serial.println("----------------------------------------------");
delay(1000);
} else if (distance >= 200 && distance <= 299) {
Serial.print("distance= ");
Serial.print(distance);
Serial.print('\n');
Serial.println("Water Level is within 100-199 centimeters");
Serial.println("----------------------------------------------");
delay(1000);
} else if (distance >= 300 && distance <= 399) {
Serial.print("distance= ");
Serial.print(distance);
Serial.print('\n');
Serial.println("Water Level is within 200-299 centimeters");
Serial.println("----------------------------------------------");
delay(1000);
} else {
Serial.print("distance= ");
Serial.print(distance);
Serial.print('\n');
Serial.println("Flood Detected");
Serial.println("Buzzer Sound......");
Serial.println("----------------------------------------------");
delay(1000);
//for the Buzzer
tone(buzzer, 1000); // Send 1KHz sound signal...
delay(1000); // ...for 1 sec
noTone(buzzer); // Stop sound...
delay(1000); // ...for 1sec
}
}