#include <WiFi.h> // Inclui a biblioteca WiFi para permitir a comunicação Wi-Fi
#include <HTTPClient.h> // Inclui a biblioteca HTTPClient para fazer solicitações HTTP
#include <DHT.h> // Inclui a biblioteca DHT para interagir com o sensor DHT11
#define DHTPIN 4 // Define o pino de conexão do sensor DHT
#define DHTTYPE DHT11 // Define o tipo de sensor como DHT11
const char* ssid = "Wokwi-GUEST"; // Define o nome da rede Wi-Fi
const char* password = ""; // Define a senha da rede Wi-Fi
const char* serverName = "http://192.168.50.45/esp/esp/sensor.php"; // Modificar para o seu endereço IP local
DHT dht(DHTPIN, DHTTYPE); // Cria um objeto DHT com o pino e tipo especificados
void setup() {
Serial.begin(115200); // Inicia a comunicação serial com uma taxa de transmissão de 115200 bps
dht.begin(); // Inicializa o sensor DHT
WiFi.begin(ssid, password); // Inicia a conexão Wi-Fi com as credenciais fornecidas
while (WiFi.status() != WL_CONNECTED) { // Aguarda a conexão Wi-Fi
delay(1000);
Serial.println("Conectando ao WiFi..."); // Imprime a mensagem durante a tentativa de conexão
}
Serial.println("Conectado ao WiFi"); // Indica que a conexão foi estabelecida com sucesso
}
void loop() {
delay(10000); // Aguarda 10 segundos antes de iniciar o loop
float h = dht.readHumidity(); // Lê a umidade do sensor
float t = dht.readTemperature(); // Lê a temperatura do sensor
Serial.print("Temperatura: "); // Imprime a etiqueta da temperatura
Serial.println(t); // Imprime o valor da temperatura
Serial.print("Umidade: "); // Imprime a etiqueta da umidade
Serial.println(h); // Imprime o valor da umidade
if (isnan(h) || isnan(t)) { // Verifica se os valores lidos são inválidos
Serial.println("Falha ao ler do sensor DHT!"); // Imprime mensagem de erro caso os valores sejam inválidos
return; // Retorna do loop
}
HTTPClient http; // Cria um objeto HTTPClient para realizar solicitações HTTP
http.begin(serverName); // Inicia a conexão com o servidor especificado
http.addHeader("Content-Type", "application/x-www-form-urlencoded"); // Adiciona um cabeçalho à solicitação HTTP
String data = "temperature=" + String(t) + "&humidity=" + String(h) + "&update=true"; // Formata os dados a serem enviados
int httpResponseCode = http.POST(data); // Envia os dados para o servidor e recebe o código de resposta HTTP
Serial.print("HTTP Response code: "); // Imprime a etiqueta do código de resposta HTTP
Serial.println(httpResponseCode); // Imprime o código de resposta HTTP
String response = http.getString(); // Obtém a resposta do servidor
Serial.println("Resposta do servidor: " + response); // Imprime a resposta do servidor
http.end(); // Encerra a conexão com o servidor
}