#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C (alamat I2C bisa 0x27 atau 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Deklarasi pin
int sensorPin = A0; // Pin untuk sensor MQ-2
int buzzerPin = 8; // Pin untuk buzzer
int ledPin = 7; // Pin untuk LED
int sensorValue = 0; // Variabel untuk menyimpan nilai sensor
int threshold = 300; // Ambang batas deteksi asap rokok
void setup() {
// Setup LCD
lcd.begin(16, 2);
lcd.backlight();
// Setup untuk buzzer dan LED
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
// Setup untuk sensor
pinMode(sensorPin, INPUT);
// Menampilkan pesan awal di LCD
lcd.setCursor(0, 0);
lcd.print("Deteksi Asap");
lcd.setCursor(0, 1);
lcd.print("Siap...");
delay(2000); // Tunggu 2 detik
}
void loop() {
// Membaca nilai sensor MQ-2
sensorValue = analogRead(sensorPin);
// Tampilkan nilai sensor di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nilai: ");
lcd.print(sensorValue);
// Jika nilai lebih dari threshold, berarti asap rokok terdeteksi
if (sensorValue > threshold) {
// Nyalakan buzzer dan LED
digitalWrite(buzzerPin, HIGH);
digitalWrite(ledPin, HIGH);
// Tampilkan pesan "Asap Terdeteksi" di LCD
lcd.setCursor(0, 1);
lcd.print("Asap Terdeteksi");
} else {
// Matikan buzzer dan LED
digitalWrite(buzzerPin, LOW);
digitalWrite(ledPin, LOW);
// Tampilkan pesan aman di LCD
lcd.setCursor(0, 1);
lcd.print("Aman");
}
delay(1000); // Tunggu 1 detik sebelum membaca lagi
}