#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int LEDvermelho = 8;
const int LEDverde = 9;
const int LEDamarelo = 10;
const int sensorUmidade = A0; // Potenciômetro simula a umidade
const int motor = 7; // LED simula o motor
int umidadeSolo = 0;
void setup() {
Wire.begin();
lcd.begin(16, 2);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Iniciando...");
pinMode(LEDvermelho, OUTPUT);
pinMode(LEDverde, OUTPUT);
pinMode(LEDamarelo, OUTPUT);
pinMode(motor, OUTPUT); // Configura o pino do motor (simulado por um LED) como saída
}
void loop() {
umidadeSolo = analogRead(sensorUmidade); // Lê o valor do potenciômetro que simula a umidade
umidadeSolo = map(umidadeSolo, 0, 1023, 0, 100);
if (umidadeSolo < 60) {
digitalWrite(LEDvermelho, HIGH);
digitalWrite(LEDverde, LOW);
digitalWrite(LEDamarelo, LOW);
lcd.setCursor(0, 0);
lcd.print("Umidade do solo");
lcd.setCursor(0, 1);
lcd.print(": ");
lcd.print(umidadeSolo);
lcd.print("% ");
lcd.print("Irrigando");
digitalWrite(motor, HIGH); // Liga o motor (simulado por um LED)
delay(2000);
digitalWrite(motor, LOW); // Desliga o motor (simulado por um LED)
lcd.clear();
} else if (umidadeSolo > 60 && umidadeSolo < 70) {
digitalWrite(LEDamarelo, HIGH);
digitalWrite(LEDverde, LOW);
digitalWrite(LEDvermelho, LOW);
lcd.setCursor(0, 0);
lcd.print("Umidade do solo");
lcd.setCursor(0, 1);
lcd.print(": ");
lcd.print(umidadeSolo);
lcd.print("% ");
lcd.print("Atencao");
delay(1000);
lcd.clear();
} else if (umidadeSolo > 70) {
digitalWrite(LEDverde, HIGH);
digitalWrite(LEDamarelo, LOW);
digitalWrite(LEDvermelho, LOW);
lcd.setCursor(0, 0);
lcd.print("Umidade do solo");
lcd.setCursor(0, 1);
lcd.print(": ");
lcd.print(umidadeSolo);
lcd.print("% ");
lcd.print("OK");
}
}