#include "DHTesp.h"
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "Horta";
const char* password = "12345678";
const char* GScriptId = "1bow619dpGAKbMuF7w39fF9gn5dcAz5gRwelPkIkWCIc";
unsigned long tempoEnvio = 0;
int Rele1 = 2;
int Rele2 = 4;
int Rele3 = 5;
const int DHT_PIN1 = 15;
const int DHT_PIN2 = 13;
const int DHT_PIN3 = 12;
const int DHT_PIN4 = 14;
const int DHT_PIN5 = 27;
const int DHT_PIN6 = 26;
DHTesp dht1;
DHTesp dht2;
DHTesp dht3;
DHTesp dht4;
DHTesp dht5;
DHTesp dht6;
void connect_wifi(void)
{
Serial.begin(115200);
Serial.print("Connecting to wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void enviarMedicao()
{
HTTPClient http;
tempoEnvio = millis() - tempoEnvio;
String url = String("https://script.google.com") + "/macros/s/" + GScriptId +
"/exec?" +
"tempCultura1Ambiente=" + String(dht1.getTemperature(), 2) +
"&humidityCultura1Ambiente=" + String(dht1.getHumidity(), 2) +
"&tempCultura1Solo1=" + String(dht2.getTemperature(), 2) +
"&humidityCultura1Solo1=" + String(dht2.getHumidity(), 2) +
"&tempoEnvio=" + String(tempoEnvio);
tempoEnvio = millis();
Serial.print("Making a request");
http.begin(url.c_str()); //Specify the URL and certificate
http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
int httpCode = http.GET();
String payload;
if (httpCode > 0) { //Check for the returning code
payload = http.getString();
Serial.println(httpCode);
Serial.println(payload);
// testdrawstyles(payload);
//if (httpCode == 200 or httpCode == 201) tempPing.Saida(0);
}
else {
Serial.println("Error on HTTP request");
}
http.end();
}
void setup() {
Serial.begin(115200);
dht1.setup(DHT_PIN1, DHTesp::DHT22);
dht2.setup(DHT_PIN2, DHTesp::DHT22);
dht3.setup(DHT_PIN3, DHTesp::DHT22);
dht4.setup(DHT_PIN4, DHTesp::DHT22);
dht5.setup(DHT_PIN5, DHTesp::DHT22);
dht6.setup(DHT_PIN6, DHTesp::DHT22);
pinMode(Rele1, OUTPUT);
pinMode(Rele2, OUTPUT);
pinMode(Rele3, OUTPUT);
}
void loop() {
// Leitura dos sensores
float tempCultura1Ambiente = dht1.getTemperature();
float humidityCultura1Ambiente = dht1.getHumidity();
float tempCultura1Solo1 = dht2.getTemperature();
float humidityCultura1Solo1 = dht2.getHumidity();
// Repeat the above lines for the other sensors as needed.
// Rest of your code...
// Controlling the relays based on humidity readings
TempAndHumidity data1 = dht1.getTempAndHumidity();
TempAndHumidity data2 = dht2.getTempAndHumidity();
TempAndHumidity data3 = dht3.getTempAndHumidity();
TempAndHumidity data4 = dht4.getTempAndHumidity();
TempAndHumidity data5 = dht5.getTempAndHumidity();
TempAndHumidity data6 = dht6.getTempAndHumidity();
// Delay for control of the reading frequency
delay(3000);
if (data2.humidity <= 45 && data3.humidity <= 45) {
Serial.println("Válvula 1 Aberta");
digitalWrite(Rele1, HIGH);
Serial.println("Bomba Ligada Cultura 1");
digitalWrite(Rele3, HIGH);
} else {
Serial.println("Válvula 1 Fechada");
digitalWrite(Rele1, LOW);
Serial.println("Bomba Desligada Cultura 1");
digitalWrite(Rele3, LOW);
}
if (data5.humidity <= 45 && data6.humidity <= 45) {
Serial.println("Válvula 2 Aberta");
digitalWrite(Rele2, HIGH);
} else {
Serial.println("Válvula 2 Fechada");
digitalWrite(Rele2, LOW);
}
if (data5.humidity <= 45 && data6.humidity <= 45) {
Serial.println("Bomba Ligada Cultura 2");
digitalWrite(Rele3, HIGH);
} else {
Serial.println("Bomba Desligada Cultura 2");
digitalWrite(Rele3, LOW);
}
}