#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
// Inisialisasi LCD (RS, E, D4, D5, D6, D7)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Inisialisasi RTC
RTC_DS3231 rtc;
// Tentukan pin untuk buzzer dan sensor api
const int buzzer = 10;
const int flameSensor = A0;
void setup() {
// Atur jumlah kolom dan baris LCD
lcd.begin(20, 4);
// Cetak pesan ke LCD
lcd.print("Fire Detector");
// Inisialisasi komunikasi I2C
Wire.begin();
// Inisialisasi RTC
rtc.begin();
// Atur tanggal dan waktu secara manual
// rtc.adjust(DateTime(2024, 1, 9, 8, 40, 48));
// Atur tanggal dan waktu secara otomatis dari komputer
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
pinMode(buzzer, OUTPUT);
}
void loop() {
// Baca data tanggal dan waktu dari RTC
DateTime now = rtc.now();
// Tampilkan tanggal di LCD
lcd.setCursor(0, 1); // Pindah ke baris kedua
lcd.print("Date: ");
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
// Baca nilai dari sensor api
int analogValue = analogRead(flameSensor);
// Nyalakan buzzer jika api terdeteksi
if(analogValue < 196) { // Sesuaikan nilai threshold sesuai kebutuhan Anda
digitalWrite(buzzer,HIGH);
} else {
digitalWrite(buzzer,LOW);
}
}