#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat default untuk modul PCF8574
int Sensor_gas = A0; // Pin untuk membaca sensor gas
int potensiometerPin = A1; // Pin untuk membaca potensiometer
int redLED = 4; // Pin untuk LED merah
int greenLED = 3; // Pin untuk LED hijau
int buzzer = 5; // Pin untuk buzzer
int sensorThreshold = 400; // Ambang batas untuk deteksi gas
void setup() {
pinMode(Sensor_gas, INPUT); // Mengatur pin sensor gas sebagai input
pinMode(redLED, OUTPUT); // Mengatur pin LED merah sebagai output
pinMode(greenLED, OUTPUT); // Mengatur pin LED hijau sebagai output
pinMode(buzzer, OUTPUT); // Mengatur pin buzzer sebagai output
lcd.begin(16, 2); // Menginisialisasi LCD
lcd.clear(); // Menghapus tampilan LCD
Serial.begin(9600); // Menginisialisasi komunikasi serial
}
void loop() {
int analogSensor = analogRead(Sensor_gas); // Membaca nilai dari sensor gas
int analogPotensiometer = analogRead(potensiometerPin); // Membaca nilai dari potensiometer
// kita Menggunakan nilai potensiometer untuk mensimulasikan kebocoran gas
// Kita bisa menggunakan analogPotensiometer sebagai input untuk deteksi
if (analogSensor > sensorThreshold) {
digitalWrite(redLED, HIGH); // Menyalakan LED merah
digitalWrite(greenLED, LOW); // Mematikan LED hijau
lcd.setCursor(0, 0);
lcd.print("Kondisi Ruangan:");
lcd.setCursor(2, 1);
lcd.print("GAS BOCOR! ");
tone(buzzer, 750, 1000); // Mengaktifkan buzzer
} else {
lcd.setCursor(0, 0);
lcd.print("Kondisi Ruangan:");
lcd.setCursor(2, 1);
lcd.print("Gas aman ");
digitalWrite(redLED, LOW); // Mematikan LED merah
digitalWrite(greenLED, HIGH); // Menyalakan LED hijau
noTone(buzzer); // Mematikan buzzer
}
// Menampilkan nilai potensiometer pada LCD
lcd.setCursor(0, 2); // Memindahkan kursor ke baris ke-2
lcd.print("Konsentrasi Gas:");
lcd.print(analogSensor); // Menampilkan nilai potensiometer
lcd.print(" "); // Menambahkan spasi agar menghapus karakter yang tersisa
delay(1000); // Jeda Waktu 1 detik untuk pembacaan berikutnya
}