#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD (alamat I2C 0x27 biasanya digunakan)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Pin sensor Smoke (digantikan dengan Potentiometer di Wokwi)
const int smokeSensorPin = 34; // Pin analog yang digunakan untuk sensor smoke (MQ-2)
// Variabel untuk menyimpan nilai dari sensor smoke
int smokeLevel = 0;
void setup() {
// Memulai komunikasi serial
Serial.begin(115200);
// Inisialisasi LCD
lcd.begin();
lcd.setBacklight(1);
lcd.setCursor(0, 0);
lcd.print("Smoke Detector");
delay(2000); // Tampilkan pesan selama 2 detik
// Set pin sensor smoke sebagai input
pinMode(smokeSensorPin, INPUT);
}
void loop() {
// Membaca nilai analog dari sensor smoke (digantikan dengan potentiometer)
smokeLevel = analogRead(smokeSensorPin);
// Menampilkan nilai sensor ke serial monitor
Serial.print("Smoke Level: ");
Serial.println(smokeLevel);
// Menampilkan status pada LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Smoke Level:");
lcd.setCursor(0, 1);
lcd.print(smokeLevel);
// Jika level asap melebihi threshold tertentu, tampilkan peringatan
if (smokeLevel > 600) { // Sesuaikan dengan threshold yang sesuai
lcd.setCursor(0, 1);
lcd.print("Smoke Detected!");
tone(15, 1000); // Menghasilkan suara peringatan melalui buzzer di pin 15 (jika ada)
} else {
noTone(15); // Matikan suara jika tidak ada asap
}
delay(500); // Delay untuk pembacaan sensor setiap 500ms
}