// Temperature Control System
#include <LiquidCrystal_I2C.h>
int buzzer = 11;
const float BETA = 3950;
LiquidCrystal_I2C lcd(0x27,20,4);
float temperatureC_ForSensor1 = 0.0;
float temperatureC_ForSensor2 = 0.0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
lcd.begin(16, 2);
lcd.print("WELCOME TO");
lcd.setCursor(0,1);
lcd.print("FIRE ALARM");
delay(2000); }
void loop() { // put your main code here, to run repeatedly:
int analogValueFromSensor1 = analogRead(A0);
int analogValueFromSensor2 = analogRead(A1);
Serial.println("From Flame Detector Sensor 1");
float temperatureC_ForSensor1 = 1 / (log(1 /
(1023. / analogValueFromSensor1 - 1)) / BETA + 1.0 /
298.15) - 273.15;
Serial.print("Flame Temperature: ");
Serial.print(temperatureC_ForSensor1);
Serial.println(" ℃");
Serial.println("From Flame Detector Sensor 2");
float temperatureC_ForSensor2 = 1 / (log(1 /
(1023. / analogValueFromSensor2 - 1)) / BETA + 1.0 /
298.15) - 273.15;
Serial.print("Flame Temperature: ");
Serial.print(temperatureC_ForSensor2);
Serial.println(" ℃"); delay(1000);
if (temperatureC_ForSensor1 > 40) { tone(buzzer, 450);
delay(500); noTone(buzzer); // delay(100); lcd.begin(16, 2); lcd.print("FIRE!! FIRE!! in"); lcd.setCursor(0,1); lcd.print("SECTION 1");
digitalWrite(LED_BUILTIN, HIGH);
delay(1000); }
if (temperatureC_ForSensor2 > 40) { tone(buzzer, 450);
delay(500);
noTone(buzzer); // delay(100);
lcd.begin(16, 2);
lcd.print("FIRE!! FIRE!! in");
lcd.setCursor(0,1);
lcd.print("SECTION 2");
digitalWrite(LED_BUILTIN, HIGH); delay(1000);
}
if((temperatureC_ForSensor1 > 20 &&
temperatureC_ForSensor1 < 40) && (temperatureC_ForSensor2 > 20 && temperatureC_ForSensor2 < 40)) {
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
lcd.begin(16, 2);
lcd.print("SAFE AREA");
delay(500);
lcd.begin(16, 2);
delay(500);
lcd.print("WELCOME TO");
lcd.setCursor(0,1);
lcd.print("FIRE ALARM");
delay(500);
}
}