#define BUZZER_PIN A1 // Còi cảnh báo
#define NTC_PIN A0 // Chân nối cảm biến NTC 10K
#define WARNING_TEMP 30 // Ngưỡng nhiệt độ cảnh báo
const float BETA = 3950; // Hệ số Beta của cảm biến NTC
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Đọc giá trị từ cảm biến NTC
int sensorValue = analogRead(NTC_PIN);
// Tính toán nhiệt độ từ giá trị ADC
float temperature = 1 / (log(1 / (1023.0 / sensorValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
// In nhiệt độ lên Serial Monitor
Serial.print("Nhiệt độ: ");
Serial.print(temperature);
Serial.println(" °C");
// Nếu nhiệt độ vượt quá ngưỡng, bật còi cảnh báo
if (temperature > WARNING_TEMP) {
tone(BUZZER_PIN, 1000);
delay(150);
noTone(BUZZER_PIN);
} else {
noTone(BUZZER_PIN);
}
delay(100); // Đợi 1 giây trước khi đọc nhiệt độ mới
}