#include <WiFi.h> // Biblioteca para conexão WiFi com ESP32
#include <DHT.h> // Biblioteca para o sensor DHT
#define DHTPIN 23 // Pino digital onde o sensor DHT22 está conectado
#define DHTTYPE DHT22 // Definindo o tipo de sensor como DHT22
DHT dht(DHTPIN, DHTTYPE); // Inicializa o sensor DHT22
const char* ssid = "Wokwi-GUEST"; // Nome da rede WiFi
const char* password = ""; // Senha da rede WiFi
const char* server = "URL_DO_SERVIDOR"; // URL do servidor para onde enviar os dados
void setup() {
Serial.begin(115200); // Inicializa a comunicação serial
dht.begin(); // Inicializa o sensor DHT22
connectWiFi(); // Conecta à rede WiFi
}
void loop() {
// Aguarda 2 segundos entre as leituras
delay(2000);
// Lê a umidade e a temperatura
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Verifica se a leitura falhou e tenta novamente
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Falha ao ler do DHT!");
return;
}
// Mostra os dados no Serial Monitor
Serial.print("Umidade: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(temperature);
Serial.println(" *C");
// Envia os dados para o servidor
sendDataToServer(humidity, temperature);
}
void connectWiFi() {
Serial.print("Conectando a ");
Serial.println(ssid);
// Conecta à rede WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConectado ao WiFi");
}
void sendDataToServer(float humidity, float temperature) {
// Cria um cliente para conectar ao servidor
WiFiClient client;
// Verifica se o cliente se conectou
if (client.connect(server, 80)) {
String postData = "humidity=" + String(humidity) + "&temperature=" + String(temperature);
// Envia a requisição HTTP POST
client.println("POST /api/temperatura_humidade HTTP/1.1");
client.println("Host: " + String(server));
client.println("Content-Type: application/x-www-form-urlencoded");
client.print("Content-Length: ");
client.println(postData.length());
client.println();
client.print(postData);
// Aguarda a resposta do servidor
while (client.connected() || client.available()) {
if (client.available()) {
String line = client.readStringUntil('\n');
Serial.println(line);
}
}
client.stop(); // Fecha a conexão
} else {
Serial.println("Falha na conexão ao servidor");
}
}