#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define SENSOR A0
#define RELE 10 // IN del módulo relé
#define UMBRAL 30 // % de humedad para activar riego (menos de 30% = riego ON)
// Si tu módulo es "activo en LOW", pon esto en true:
const bool RELE_ACTIVO_EN_LOW = false; // true si se activa con LOW, false si con HIGH
// Helpers para escribir al relé según su lógica
void releOn() { digitalWrite(RELE, RELE_ACTIVO_EN_LOW ? LOW : HIGH); }
void releOff() { digitalWrite(RELE, RELE_ACTIVO_EN_LOW ? HIGH : LOW ); }
void setup() {
pinMode(SENSOR, INPUT);
pinMode(RELE, OUTPUT);
releOff(); // inicia apagado
lcd.init();
lcd.backlight();
lcd.print("Sistema Listo");
delay(1000);
lcd.clear();
}
void loop() {
int valorSensor = analogRead(SENSOR);
int humedad = map(valorSensor, 0, 1023, 100, 0); // 100=seco, 0=mojado
lcd.setCursor(0, 0);
lcd.print("Humedad: ");
lcd.print(humedad);
lcd.print("% ");
if (humedad < UMBRAL) {
releOn();
lcd.setCursor(0, 1);
lcd.print("Riego: ACTIVADO ");
} else {
releOff();
lcd.setCursor(0, 1);
lcd.print("Riego: APAGADO ");
}
delay(2000);
}