#include "dht.h" //https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEVQMGFTVGhrVXBiQVEtWlVSNXIwSUtGUHFGd3xBQ3Jtc0trcnhuZzFHWkIybGdnOUdyeGZVcEt2OV94Sk41YnR6Z3ZjRkxuWHNYcDB4RE84cThyd28xT0N0Y0luQVRaME9Lby10RmI5VldhUTgtNkc1Zi1IbWZEV0x4MW9CSTMtRU0wNDlINEpIVm1zdXIyZEtEaw&q=https%3A%2F%2Fdownloads.arduino.cc%2Flibraries%2Fgithub.com%2Fadafruit%2FRTClib-2.0.3.zip&v=JDwNrsXTT7c
#include <ArduinoJson.h>
#include <IOXhop_FirebaseESP32.h>
#include <WiFi.h>
#define ldr 26
#define relaybomb 32
#define relaylamp 33
#define pinoOut 2
#define pinoSensor 25 //HIGROMETROOOOOOOOOOOOOOOOOOOOOOOOOOOO porta 25
#define WIFI_SSID "Internet gratis por 1 real"
#define WIFI_PASSWORD "11111122"
#define FIREBASE_HOST "https://exercicio-e3b-wifi-default-rtdb.firebaseio.com/"
#define FIREBASE_AUTH "RkYx5cqHPUWPCJY7V90HQCi1NsVMA6hSaU9UkRwh"
int luminosidade;
int dois = 2000;
const int pinoDHT11 = 27;
dht DHT; //VARIÁVEL DO TIPO DHT
int valorLido; //VARIÁVEL QUE ARMAZENA O PERCENTUAL DE UMIDADE DO SOLO
int analogSoloSeco = 400; //VALOR MEDIDO COM O SOLO SECO (VOCÊ PODE FAZER TESTES E AJUSTAR ESTE VALOR)
int analogSoloMolhado = 150; //VALOR MEDIDO COM O SOLO MOLHADO (VOCÊ PODE FAZER TESTES E AJUSTAR ESTE VALOR)
int percSoloSeco = 0; //MENOR PERCENTUAL DO SOLO SECO (0% - NÃO ALTERAR)
int percSoloMolhado = 100; //MAIOR PERCENTUAL DO SOLO MOLHADO (100% - NÃO ALTERAR)
int SW_relay = 0;

void setup() {
  Serial.begin(115200); //INICIALIZA A SERIAL
  pinMode(pinoOut, INPUT);
  pinMode(pinoSensor, INPUT);
  pinMode(relaylamp, OUTPUT);
  pinMode(relaybomb, OUTPUT);
  Serial.println(analogRead(pinoSensor));
  Serial.println("Lendo a umidade do solo..."); //IMPRIME O TEXTO NO MONITOR SERIAL
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH);
  delay(1000); //INTERVALO DE 2 SEGUNDO
}

void loop() {
  delay(10); // this speeds up the simulation
  DHT.read11(pinoDHT11);
  Serial.println("Umidade: "); //IMPRIME O TEXTO NA SERIAL
  Serial.print(DHT.humidity); //IMPRIME NA SERIAL O VALOR DE UMIDADE MEDIDO
  Serial.println("%"); //ESCREVE O TEXTO EM SEGUIDA
  Serial.println("Temperatura: "); //IMPRIME O TEXTO NA SERIAL
  Serial.print(DHT.temperature, 0); //IMPRIME NA SERIAL O VALOR DE UMIDADE MEDIDO E REMOVE A PARTE DECIMAL
  Serial.println("*C"); //IMPRIME O TEXTO NA SERIAL
  Serial.print("Umidade do solo:"); //IMPRIME O TEXTO NO MONITOR SERIAL
  analogRead(pinoSensor);  
  Serial.println(analogRead(pinoSensor));
  digitalWrite(relaylamp, 1);
  digitalWrite(relaybomb, 1);
  Serial.println("   ");
  Serial.println("   ");
  escrita();
}

void escrita(){
while (true) {
  DHT.read11(pinoDHT11);
  Serial.println("Umidade:"); //IMPRIME O TEXTO NA SERIAL
  Serial.println(DHT.humidity); //IMPRIME NA SERIAL O VALOR DE UMIDADE MEDIDO
  Serial.print("%"); //ESCREVE O TEXTO EM SEGUIDA
  Firebase.setInt("/Estufa/Umidade", DHT.humidity);
  Serial.println("Temperatura: "); //IMPRIME O TEXTO NA SERIAL
  Serial.print(DHT.temperature, 0); //IMPRIME NA SERIAL O VALOR DE UMIDADE MEDIDO E REMOVE A PARTE DECIMAL
  Serial.println("*C"); //IMPRIME O TEXTO NA SERIAL
  Firebase.setInt("/Estufa/Temperatura", (DHT.temperature));
  Serial.println("Umidade do solo:"); //IMPRIME O TEXTO NO MONITOR SERIAL
  analogRead(pinoSensor);
  Serial.println(analogRead(pinoSensor));
  digitalRead(pinoOut);
  Firebase.setBool("/Estufa/Infra", digitalRead(pinoOut));
  Serial.println("   ");
  Serial.println("   ");
  Serial.read();
  
  bool L = (Firebase.getBool("/Estufa/Lamp"));
  bool B = (Firebase.getBool("/Estufa/Bomb"));

  if (L == true){
  digitalWrite(relaylamp, 0);
  }
  else if (L == false){
  digitalWrite(relaylamp, 1);
  }
  if (B == true){
  digitalWrite(relaybomb, 0);
  }
  else if (B == false){
  digitalWrite(relaybomb, 1);
  }

  delay(2000);
}
}
$abcdeabcde151015202530354045505560fghijfghij
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module