#include <LiquidCrystal.h>
#include <SimpleDHT.h>
#define SimpleDHTPIN 6
int pinDHT11 = 6;
SimpleDHT22 DHT11(pinDHT11);
int sensor_pin = A0;
int output_value ;
int temp_led = 8;
int humi_led = 9;
int moisture_led = 10;
int pump = 7;
int chk;
float h;
float t;
float lastH,lastT,lastR;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup()
{
Serial.begin(9600);
pinMode(temp_led, OUTPUT);
pinMode(temp_led, OUTPUT);
pinMode(moisture_led, OUTPUT);
pinMode(pump, OUTPUT);
pinMode(sensor_pin, INPUT);
pinMode(pinDHT11, INPUT);
lcd.begin (16, 2);
lcd.setCursor(0, 0);
lcd.print(" Welcome to");
lcd.setCursor(0, 1);
lcd.print(" Smart Irrigation");
delay(2000);
lcd.clear();
}
void loop()
{
int err = SimpleDHTErrSuccess;
if ((err = DHT11.read2(&t, &h, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.print(SimpleDHTErrCode(err));
Serial.print(","); Serial.println(SimpleDHTErrDuration(err)); delay(1000);
return;
}
output_value = analogRead(sensor_pin);
output_value = map(output_value, 550, 0, 0, 100);
//only update screen if a values has changed..
if (lastR!=output_value || lastH!=h || lastT!=t){
//remember..
lastR=output_value;
lastH=h;
lastT=t;
lcd.setCursor(0, 0);
lcd.print("Temp Humi Moist");
lcd.setCursor(1, 1);
lcd.print(int(trunc(t)));
lcd.print("C. ");
lcd.print(int(trunc(h)));
lcd.print("% ");
lcd.print(output_value);
lcd.println("%");
}
}