#include <math.h>
#define NTC_PIN 34 // Pin analógico conectado al pin 'S' del módulo NTC
#define BUZZER_PIN 13 // Pin digital conectado al positivo del Buzzer
const float BETA = 3950.0; // Coeficiente Beta del termistor NTC en Wokwi
void setup() {
Serial.begin(115200);
pinMode(BUZZER_PIN, OUTPUT);
// Resolución estándar del ADC en ESP32 (12 bits: 0 a 4095)
analogReadResolution(12);
}
void loop() {
int adc = analogRead(NTC_PIN);
// Validación para evitar errores matemáticos en log() o divisiones por cero
if (adc > 0 && adc < 4095) {
// Ecuación de Steinhart-Hart / Beta para el módulo NTC
float temp = 1.0 / (log(1.0 / (4095.0 / adc - 1.0)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperatura: ");
Serial.print(temp, 1); // Muestra 1 decimal
Serial.println(" °C");
// Control de la alarma sonora
if (temp > 40.0) {
Serial.println("¡ALERTA! Temperatura mayor a 40°C. Activando buzzer.");
tone(BUZZER_PIN, 1000); // Tono a 1000 Hz
} else {
noTone(BUZZER_PIN); // Apaga el buzzer
}
}
delay(500); // Actualiza cada medio segundo
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4