A parte da luminária está ok, preciso que o código do cooler resfriador faça a leitura dentro de um período de tempo, ou faça uma média de temperaturas se for maior ou igual a 28º, ou a temperatura que eu definir, irá acionar o cooler, isso é necessário, pois o sensor de temperatura ficou muito sensível, e o cooler fica ligando e desligando sem necessidade.
#include <Thermistor.h> //INCLUSÃO DA BIBLIOTECA
#define pinBotao 2
#define pinLED 3
#define cooler 5
boolean estadoBotao = false;
Thermistor temp(5); //VARIÁVEL DO TIPO THERMISTOR, INDICANDO O PINO ANALÓGICO (A5) EM QUE O TERMISTOR ESTÁ CONECTADO
unsigned long delay1 = 0;
unsigned long tempo = 14400000; //Tempo ligado = 4h
//-----------------------------------------------------------------
int temperatura = 0;
void setup() {
pinMode(pinBotao, INPUT_PULLUP);
pinMode(pinLED, OUTPUT);
Serial.begin(9600);
}
//-----------------------------------------------------------------
void loop() {
if (digitalRead(pinBotao) == LOW){ // Se botao foi pressionado
while (digitalRead(pinBotao) == LOW) { // Enquanto botao pressionado
delay(30); // Debouncing
estadoBotao = !estadoBotao; // Inverte status do botão
delay1 = millis(); // Atualiza delay1
}
if (estadoBotao){ // Se status do botao for true
digitalWrite( pinLED, HIGH); // Liga LED
if ((delay1 + tempo) < millis()) // Fica ligado por tempo mseg
{
estadoBotao = false; // Depois de tempo mseg status LED false
}
}
else // Se status botao for false
{
digitalWrite( pinLED, LOW); // Desliga LED
}
}
//-----------------------------------------------------------------
int temperature = temp.getTemp(); //VARIÁVEL DO TIPO INTEIRO QUE RECEBE O VALOR DE TEMPERATURA CALCULADO PELA BIBLIOTECA
Serial.print("Temperatura: "); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.print(temperature); //IMPRIME NO MONITOR SERIAL A TEMPERATURA MEDIDA
Serial.println("*C"); //IMPRIME O TEXTO NO MONITOR SERIAL
if (temperature >= 28)
{
digitalWrite(cooler, HIGH);
}
else
{
digitalWrite(cooler, LOW);
}
}