int lowerThreshold = 330;
int upperThreshold = 375;
#include "DHT.h"
#include<LiquidCrystal.h>
#define DHTPIN A0
#define DHTTYPE DHT11
#define sensorPower 7
#define sensorPin A1
#define sensorPower 7
LiquidCrystal lcd(12,11,5,4,3,2);
DHT dht(DHTPIN,DHTTYPE);
// Value for water level
int val = 0;
// Declare pins on arduino
int redLED = 8;
int yellowLED = 9;
int greenLED = 10;
void setup() {
Serial.begin(9600);
pinMode(sensorPower, OUTPUT);
digitalWrite(sensorPower, LOW);
delay(500);
Serial.print("Temperature");
Serial.print(" ");
Serial.println("Humidity");
lcd.begin(16,2);
dht.begin();
pinMode(sensorPower, OUTPUT);
digitalWrite(sensorPower, LOW);
// Set LED pins as an OUTPUT
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
// Initially turn off all LEDs
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
}
void loop() {
float h= dht.readHumidity();
float t= dht.readTemperature();
Serial.print(t);
Serial.print(" ");
Serial.println(h);
lcd.print("Temperat:");
lcd.print(t);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humidity:");
lcd.print(h);
lcd.print("%");
delay(1000);
lcd.clear();
int level = readSensor();
Serial.print("Water level: ");
Serial.println(level);
delay(1000);
if (level == 0) {
Serial.println("Water Level: Empty");
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
}
else if (level > 0 && level <= lowerThreshold) {
Serial.println("Water Level: Low");
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
}
else if (level > lowerThreshold && level <= upperThreshold) {
Serial.println("Water Level: Medium");
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
}
else if (level > upperThreshold) {
Serial.println("Water Level: High");
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
}
delay(1000);
}
//This is a function used to get the reading
int readSensor() {
digitalWrite(sensorPower, HIGH); // Turn the sensor ON
delay(10); // wait 10 milliseconds
val = analogRead(sensorPin); // Read the analog value form sensor
digitalWrite(sensorPower, LOW); // Turn the sensor OFF
return val; // send current reading
}