// Monitorando estufa >> tempertura e umidade
//DHT22 wifi+thingspeak
#include "DHTesp.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include "ThingSpeak.h"
// Configurações WiFI
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
// Definir o canal do WiFi - aumentar a velocidade de conexão
#define WIFI_CHANNEL 6
int status = WL_IDLE_STATUS;
const int myChannelNumber = 2681884;
const char* myApiKey = "YZT63OXRQT6LK4WK";
const char* server = "api.thingspeak.com";
const int DHT_PIN = 15;
// Definição dos pinos dos LEDs
const int LED1_PIN = 2;
const int LED2_PIN = 4;
const int LED3_PIN = 16;
const int LED4_PIN = 17;
WiFiClient client;
DHTesp dhtSensor;
float Temperatura = 0;
float Umidade = 0;
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// Configuração dos pinos dos LEDs como saída
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(LED3_PIN, OUTPUT);
pinMode(LED4_PIN, OUTPUT);
conectawifi();
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Temperatura = data.temperature;
Serial.print("Temperatura: ");
Serial.print(Temperatura);
Serial.print("ºC ");
Umidade = data.humidity;
Serial.print("Umidade: ");
Serial.print(Umidade);
Serial.println("%");
// Controle dos LEDs baseado na temperatura e umidade
digitalWrite(LED1_PIN, Temperatura > 25 ? HIGH : LOW);
digitalWrite(LED2_PIN, Temperatura > 30 ? HIGH : LOW);
digitalWrite(LED3_PIN, Umidade > 50 ? HIGH : LOW);
digitalWrite(LED4_PIN, Umidade > 70 ? HIGH : LOW);
ThingSpeak.setField(1, Temperatura);
ThingSpeak.setField(2, Umidade);
int x = ThingSpeak.writeFields(myChannelNumber, myApiKey);
if (x == 200) {
Serial.println("Dado enviado com sucesso");
} else {
Serial.println("Erro de envio: " + String(x));
}
delay(15000);
}
void conectawifi() {
WiFi.begin(WIFI_SSID, WIFI_PASSWORD, WIFI_CHANNEL);
Serial.print("Conectando ao WiFi");
Serial.print(WIFI_SSID);
// Esperar até conectar
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Conectado!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}