#include <WiFi.h>
#include <HTTPClient.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
const char* ssid = "Wokwi-GUEST";
const char* password = "";
String firebaseUrl = "https://teste-42ac5-default-rtdb.firebaseio.com/sensor.json";
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
Serial.println("Initializing WiFi...");
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nWiFi conectado!");
Serial.print("IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
float temperatura = dht.readTemperature();
float umidade = dht.readHumidity();
// Verifica se houve erro na leitura
if (isnan(temperatura) || isnan(umidade)) {
Serial.println("Erro de leitura do DHT22");
delay(2000);
return;
}
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
Serial.print("Umidade: ");
Serial.print(umidade);
Serial.println(" %");
// Monta o JSON
String json = "{";
json += "\"temperatura\":";
json += temperatura;
json += ",";
json += "\"umidade\":";
json += umidade;
json += "}";
// Envia para o Firebase
HTTPClient http;
http.begin(firebaseUrl);
http.addHeader("Content-Type", "application/json");
int httpResponseCode = http.PUT(json);
Serial.print("HTTP Response: ");
Serial.println(httpResponseCode);
if (httpResponseCode > 0) {
Serial.println(http.getString());
} else {
Serial.print("Erro HTTP: ");
Serial.println(httpResponseCode);
}
http.end();
delay(5000);
}