/*
* Exemplo de leitura do sensor de temperatura e umidade DHT22
*
* Autor: Paulo H. Langome Miranda
* Curso de Férias FESA - Introdução à IoT
*/
// Inclui a biblioteca para usar sensores da família DHT (DHT11, DHT22, etc.)
#include "DHT.h"
// Inclui a biblioteca WiFi específica para o ESP32
#include <WiFi.h>
// Define o pino do ESP32 onde o sensor DHT está conectado
#define DHTPIN 4
// Define o tipo de sensor utilizado (pode ser DHT11, DHT22 ou DHT21)
#define DHTTYPE DHT22
// Cria um objeto da classe DHT com as configurações definidas acima
DHT dht(DHTPIN, DHTTYPE);
// Substitua pelos dados da sua rede Wi-Fi
const char* ssid = "Wokwi-GUEST"; // Nome (SSID) da rede Wi-Fi
const char* password = ""; // Senha da rede (nesse caso, rede aberta)
void initWiFi(void) {
WiFi.mode(WIFI_STA); // Define o modo do Wi-Fi como estação (cliente), e não como access point
WiFi.begin(ssid, password); // Inicia a conexão com a rede usando o SSID e a senha fornecidos
Serial.print("Conectando-se ao WiFi .."); // Mostra no monitor serial que a conexão está em andamento
// Aguarda até que a conexão seja estabelecida
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.'); // Imprime um ponto a cada segundo como indicação de espera
delay(1000); // Espera 1 segundo
}
// Quando conectado, imprime o IP local atribuído ao ESP32
Serial.println(WiFi.localIP());
}
void setup() {
// Inicializa a comunicação serial para exibir dados no Monitor Serial
Serial.begin(115200);
// Chama a função que inicializa e se conecta ao WiFi
initWiFi();
// Inicializa o sensor DHT (configura pino e tipo)
dht.begin();
}
void loop() {
// Lê a temperatura (em graus Celsius) e armazena na variável temperatura
float temperatura = dht.readTemperature();
// Lê a umidade relativa do ar (em porcentagem) e armazena na variável umidade
float umidade = dht.readHumidity();
// Exibe a temperatura no Monitor Serial
Serial.print("Temp: ");
Serial.print(temperatura);
Serial.print("°C | Umidade: ");
// Exibe a umidade no Monitor Serial
Serial.print(umidade);
Serial.println("%");
// Aguarda 2 segundos antes de repetir a leitura
delay(2000);
}