#include <dht.h>
#define SENSOR_PIN 11
#define LED_PIN 12
#define BOTAO_PIN 13
dht DHT;
bool botao_pressionado = false;
bool estado_botao_ant = false;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BOTAO_PIN, INPUT);
}
void loop() {
// Leitura da temperatura
int chk = DHT.read22(SENSOR_PIN);
// Verifica se a leitura do sensor foi bem-sucedida
if (chk == DHTLIB_OK) {
// Verifica o estado atual do botão
bool estado_botao = digitalRead(BOTAO_PIN);
// Verifica se houve uma mudança no estado do botão
if (estado_botao != estado_botao_ant) {
// Se o botão foi pressionado
if (estado_botao == HIGH) {
botao_pressionado = true;
} else {
botao_pressionado = false;
}
}
// Atualiza o estado anterior do botão
estado_botao_ant = estado_botao;
// Verifica se o botão foi pressionado
if (botao_pressionado) {
// Verifica se a temperatura está fora do intervalo
if (DHT.temperature < 34 || DHT.temperature > 36) {
digitalWrite(LED_PIN, LOW);
} else {
digitalWrite(LED_PIN, HIGH);
}
} else { // Se o botão não foi pressionado
// Verifica se a temperatura está dentro do intervalo
if (DHT.temperature >= 34 && DHT.temperature <= 36) {
digitalWrite(LED_PIN, LOW);
}
}
}
// Aguarda um curto período antes da próxima leitura
delay(500);
}