#include <DHT.h>
#define pinoDHT 23
#define modelo DHT22
#define pinoLED 13
DHT dht(pinoDHT, modelo);
float dadoUmidade, dadoTemperatura;
unsigned long tempoAnterior = 0; // Armazena o último tempo em que os dados foram lidos
const long intervalo = 500; // Intervalo de 500ms (0,5 segundos)
void setup() {
Serial.begin(115200);
Serial.println("Sistema iniciando...");
pinMode(pinoLED, OUTPUT);
dht.begin();
}
void loop() {
unsigned long tempoAtual = millis(); // Captura o tempo atual
// Verifica se o intervalo de tempo já passou
if (tempoAtual - tempoAnterior >= intervalo) {
tempoAnterior = tempoAtual; // Atualiza o tempoAnterior para o tempo atual
dadoUmidade = dht.readHumidity();
dadoTemperatura = dht.readTemperature();
Serial.println("Umidade: " + String(dadoUmidade) + "% Temperatura: " + String(dadoTemperatura) + "°C");
if (dadoTemperatura >= 30) {
digitalWrite(pinoLED, HIGH); // Acende o LED
} else {
digitalWrite(pinoLED, LOW); // Apaga o LED
}
}
// Outras tarefas podem ser executadas aqui sem serem bloqueadas pelo delay
}