#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);
}
}