#include <WiFi.h>
#include <WebServer.h>
#include <DHTesp.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const int DHT_PIN = 15;
DHTesp dhtSensor;
// Configurações do sensor ultrassônico
const int trigPin = 5; // Pino para o TRIG Ultra
const int echoPin = 18; // Pino para o ECHO Ultra
// Configurações do servidor web
WebServer server(80);
// Função para lidar com a requisição na raiz
void handleRoot() {
// Leitura do sensor DHT
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// Leitura do sensor ultrassônico
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
// HTML para exibir as leituras na página
String html = "<html><body>";
html += "<h1>Temperatura e Umidade</h1>";
html += "<p>Temperatura: " + String(data.temperature, 2) + " °C</p>";
html += "<p>Umidade: " + String(data.humidity, 1) + " %</p>";
html += "<h1>Distância</h1>";
html += "<p>Distância: " + String(distance) + " cm</p>";
html += "</body></html>";
server.send(200, "text/html", html);
}
void setup() {
Serial.begin(115200);
// Conexão com Wi-Fi
WiFi.begin(ssid, password);
Serial.println("Conectando ao Wi-Fi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Tentando conectar...");
}
Serial.println("Conectado ao Wi-Fi!");
Serial.print("IP obtido: ");
Serial.println(WiFi.localIP());
// Configuração do sensor DHT
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// Configuração dos pinos do sensor ultrassônico
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Configuração do servidor web
server.on("/", handleRoot); // Define a rota para a função handleRoot
server.begin();
Serial.println("Servidor HTTP iniciado.");
}
void loop() {
server.handleClient(); // Aguarda por requisições
}