int ntcPin = A0; // Pino analógico para o sensor NTC
int ldrPin = A1; // Pino analógico para o LDR
int led1Pin = 2; // Pino digital para o primeiro LED
int led2Pin = 3; // Pino digital para o segundo LED
int led3Pin = 4; // Pino digital para o terceiro LED
int buzzerPin = 8;
void setup() {
Serial.begin(9600);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Lendo a temperatura do sensor NTC
int sensorValue = analogRead(ntcPin);
float voltage = sensorValue * (5.0 / 1023.0); // Convertendo para tensão
float resistance = (5.0 * 10000.0) / voltage - 10000.0; // Calculando a resistência do NTC
float temperatureC = 1.0 / (log(resistance / 10000.0) / 3950.0 + 1.0 / 298.15) - 273.15; // Convertendo para temperatura em °C
float temperatureF = (temperatureC * 9.0 / 5.0) + 32; // Convertendo para Fahrenheit
// Exibindo a temperatura no Monitor Serial
Serial.print("Temperatura: ");
Serial.print(temperatureC);
Serial.print(" °C | ");
Serial.print(temperatureF);
Serial.println(" °F");
// Verificando se a temperatura está acima do limite
if (temperatureC > temperatureLimit) {
// Alerta visual e sonoro
digitalWrite(led1Pin, HIGH);
tone(buzzerPin, 1000, 1000); // Emitir um som por 1 segundo
} else {
// Desligar alerta visual e sonoro
digitalWrite(led1Pin, LOW);
noTone(buzzerPin);
}
// Lendo a luminosidade
int ldrValue = analogRead(ldrPin);
int numLEDs = map(ldrValue, 0, 1023, 0, 3); // Mapeando a leitura do LDR para o número de LEDs acesos
digitalWrite(led2Pin, numLEDs >= 1 ? HIGH : LOW);
digitalWrite(led3Pin, numLEDs >= 2 ? HIGH : LOW);
delay(1000); // Aguardar 1 segundo antes da próxima leitura
}