#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define SDA 21
#define SCL 22
const byte umidadePin = 34;
const byte nutrientesPin = 35;
const byte relePin = 5;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int umidade = 0;
int nutrientes = 0;
bool irrigando = false;
void setup() {
Wire.begin(SDA, SCL);
lcd.init();
lcd.backlight();
Serial.begin(115200);
pinMode(relePin, OUTPUT);
digitalWrite(relePin, LOW);
}
void loop() {
umidade = analogRead(umidadePin) / 40;
nutrientes = analogRead(nutrientesPin) / 40;
if (umidade < 30 || nutrientes < 30) {
digitalWrite(relePin, HIGH);
irrigando = true;
} else {
digitalWrite(relePin, LOW);
irrigando = false;
}
Serial.print(umidade);
Serial.print(",");
Serial.print(nutrientes);
Serial.print(",");
Serial.println(irrigando);
lcd.setCursor(0, 0);
lcd.print("U:");
lcd.print(umidade);
lcd.print("% N:");
lcd.print(nutrientes);
lcd.print("% ");
lcd.setCursor(0, 1);
if (irrigando) lcd.print("Irrigando... ");
else lcd.print("Solo OK ");
delay(2000);
}