#include <LiquidCrystal_I2C.
h>
#include <Wire.h>
//pino SDA = GPIO 21
//pino SCL = GPIO 22
#define S 32// define o pino 36 como pino de dados do sensor
#define R 12 //define o pino 33 como pino de controle do relé
#define AS 34 //define o pino 34 como pino de alimentação do sensor
#define L 35 //defino o pino 35 como pino de alimentação do LCD
#define AR 27//define o pino 27 como pino de alimentação do relé
int ValAnalogIn;
const int LCD_ADDRESS = 0x27;// define o endereço/tipo da tela lcd como uma
variavel int
const int LCD_COLUMNS = 16; //define a quantidade de colunas da teal lcd
const int LCD_ROWS = 2;//define a quantidade de fileiras da tela lcd
LiquidCrystal_I2C lcd(LCD_ADDRESS, LCD_COLUMNS, LCD_ROWS);
void setup() {
[Link](9600);//declara o BaundRate em 9600
[Link]("Horta escolar");//imprime a frase no monitor serial
pinMode(L,OUTPUT);//declara o pino L como saida
pinMode(R, OUTPUT);//declara o pino R como saida
pinMode(AS,OUTPUT);//declara o pino AS como saida
pinMode(AR,OUTPUT);//Declara o pino AR como saida
digitalWrite(L,HIGH);//põem o pino L em estado Alto = 5V
digitalWrite(AS,HIGH);//põem o pino S em estado Alto = 5V
digitalWrite(AR,HIGH);//põem o pino AR em estado Alto = 5V
[Link]();//inicia a tela LCD
[Link](0, 0);//posiciona o cursor na coluna 0 e fileira 0
[Link]();//ativa o backlight
[Link]();//atualiza o lcd
void loop() {
ValAnalogIn = analogRead(S);//relaciona o valor analogico com o recebido do sensor
int Porcento = map(ValAnalogIn, 4095,0,0,100);//relaciona o valor analogico á
porcentagem
[Link](0,1);//posiciona o cursor na coluna 0 fileira 1
[Link](Porcento);//imprime o valor em porcento no monitor
[Link]("% de Umidade");//imprime o simbolo junto ao valor encontrado
if (Porcento <=65){ //se a porcentagem for menor ou igual á
[Link](0,0); //posiciona o cursor na coluna 0 e fileira 0
[Link]("irrigando");//imprime a frase no monitr serial
digitalWrite(R, HIGH); //altera o estado do pino do relé para ALTO = 5V
delay(400); //defino um delay de 400 milisegundos para limpar o LCD
[Link](); //limpa a tela LCD
}
else{ // se não...
[Link](0,0);//posiciona o cursor na coluna 0 e fileira 0
[Link]("planta irrigada"); //imprime a frase no monitor serial
digitalWrite(R,LOW);//altera o estado do pino relé para o estado baixo = 0V
delay(400);//define um delay de 400 milisegundos para limpar o lcd
[Link]();
}
delay(500); //estabelece o tempo de 5 milisegundos para reinicializar a leitura
}