#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
#define RELAY_1_PIN 6
#define RELAY_2_PIN 7
LiquidCrystal_I2C lcd(0x27,16,2);
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
dht.begin();
pinMode(RELAY_1_PIN, OUTPUT);
pinMode(RELAY_2_PIN, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(4,0);
lcd.print("Plantiva");
delay(2000);
lcd.clear();
}
void loop()
{
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int16_t i = analogRead(A0);
String soil;
if (i < 300) {
soil = "WET";
} else if (i > 700) {
soil = "DRY";
} else {
soil = "OK";
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print(soil);
lcd.setCursor(4,0);
lcd.print(int(temperature));
lcd.print("*C");
lcd.setCursor(10,0);
lcd.print(int(humidity));
lcd.print("%");
if (soil == "DRY") {
digitalWrite(RELAY_1_PIN, HIGH);
lcd.setCursor(0,1);
lcd.print("PUMP-ON ");
} else {
digitalWrite(RELAY_1_PIN, LOW);
lcd.setCursor(0,1);
lcd.print("PUMP-OFF");
}
if (temperature > 30) {
digitalWrite(RELAY_2_PIN, HIGH);
lcd.setCursor(10,1);
lcd.print("FAN-ON ");
} else {
digitalWrite(RELAY_2_PIN, LOW);
lcd.setCursor(10,1);
lcd.print("FAN-OFF ");
}
delay(500);
}