//sensor DHT22
#include <DHT.h>
#define DHT11 21 //define que o DHT está ligado no pino 21 da ESP32
DHT dht22(DHT11, DHT22);
#define ledAzul 14
#define ledVerde 16
#define ledCiano 27
#define ledVermelho 17
void setup ()
{
Serial.begin(115200); //inicializa a comunicação com o monitor serial
dht22.begin(); //inicializa o sensor DHT22
pinMode(ledAzul, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledVermelho, OUTPUT);
pinMode(ledCiano, OUTPUT);
}
void loop ()
{
//fazer a leitura da umidade
float humi = dht22.readHumidity();
//fazer a leitura da temperatura em graus centigrados
float tempC = dht22.readTemperature();
//fazer a leitura de temperatura em Fahrenheit (leitura real)
float tempF = dht22.readTemperature(true);
//nan = not a number (não é um número)
//isnan = verifica se existe um número na variável de leitura
if(isnan(tempC) || isnan(tempF) || isnan(humi))
{
Serial.print("Falha na leitura do sensor!!");
}
else
{
Serial.print("Umidade: "); //imprime o texto Umidade
Serial.print(humi); //imprime o conteúdo da variável humi
Serial.print("%"); //imprime o caractere %
//imprimir a máscara "|" para separar os textos em % e temperatura
Serial.print(" | ");
Serial.print("Temperatura: "); //imprime o texto Temperatura
Serial.print(tempC); //imprime o conteúdo da variável tempC
Serial.print("°C ~ "); //imprime os textos entre as aspas
Serial.print(tempF); //imprime o conteúdo da variável tempF
Serial.println("°F"); //imprime os textos entre as aspas
}
if(tempC <= 18)
{
digitalWrite(ledAzul, HIGH);
digitalWrite(ledVerde, LOW);
}
else
{
digitalWrite(ledAzul, LOW);
digitalWrite(ledVerde, HIGH);
}
if(humi < 60)
{
digitalWrite(ledVermelho, HIGH);
digitalWrite(ledCiano, LOW);
}
else
{
digitalWrite(ledVermelho, LOW);
digitalWrite(ledCiano, HIGH);
}
delay(2000);
}