#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C
#include <Wire.h> // Library untuk komunikasi I2C
#define BUZZER_PIN 8 // Pin untuk buzzer
#define TEMPERATURE_PIN A0 // Pin untuk sensor suhu
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi objek LCD dengan alamat I2C dan ukuran
void setup() {
lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2
lcd.print("Fire Monitoring"); // Menampilkan teks di LCD
pinMode(BUZZER_PIN, OUTPUT); // Mengatur pin buzzer sebagai output
}
void loop() {
int temperature = getTemperature(); // Membaca suhu dari sensor
lcd.setCursor(0, 1); // Mengatur posisi kursor ke baris kedua LCD
lcd.print("Temperature: " + String(temperature) + "C "); // Menampilkan suhu di LCD
if (temperature > 50) { // Jika suhu melebihi 50 derajat Celsius
lcd.clear(); // Menghapus tampilan LCD
lcd.print("Fire Detected!"); // Menampilkan pesan "Fire Detected!" di LCD
tone(BUZZER_PIN, 1000); // Menyalakan buzzer dengan frekuensi 1000 Hz
delay(1000); // Menunda selama 1 detik
noTone(BUZZER_PIN); // Mematikan buzzer
delay(1000); // Menunda selama 1 detik
}
}
int getTemperature() {
int rawValue = analogRead(TEMPERATURE_PIN); // Membaca nilai analog dari sensor suhu
float voltage = (rawValue / 1024.0) * 5.0; // Menghitung tegangan berdasarkan nilai analog
float temperature = (voltage - 0.5) * 100; // Menghitung suhu berdasarkan tegangan
return int(temperature); // Mengembalikan suhu dalam bentuk integer
}