#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// LCD setup (0x27 or 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Pins
int gasSensorPin = A0;
int buzzerPin = 8;
// Threshold values
int threshold = 500;
int threshold1 = 750;
void setup() {
lcd.init();
lcd.backlight();
pinMode(buzzerPin, OUTPUT);
pinMode(gasSensorPin, INPUT);
lcd.setCursor(0, 0);
lcd.print("Gas Monitoring");
delay(2000);
lcd.clear();
}
void loop() {
int gasValue = analogRead(gasSensorPin);
lcd.setCursor(0, 0);
lcd.print("Gas: ");
lcd.print(gasValue);
lcd.print(" "); // clear extra chars
// Check highest danger first
if (gasValue > threshold1) {
lcd.setCursor(0, 1);
lcd.print("VERY DANGEROUS!");
digitalWrite(buzzerPin, HIGH);
}
else if (gasValue > threshold) {
lcd.setCursor(0, 1);
lcd.print("GAS DETECTED! ");
digitalWrite(buzzerPin, HIGH);
}
else {
lcd.setCursor(0, 1);
lcd.print("Safe ");
digitalWrite(buzzerPin, LOW);
}
delay(500);
}