#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define MQ5_AO A0 // Analog pin for MQ-5
#define MQ5_DO 7 // Digital pin for MQ-5
Servo myServo; // Create servo object
int redled=3;
int greenled=2;
int buzzer=4;
LiquidCrystal_I2C lcd(0x27,18,19); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
pinMode(redled, OUTPUT);
pinMode(greenled, OUTPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(redled, LOW);
delay(500);
digitalWrite(redled, HIGH);
digitalWrite(greenled, LOW);
delay(500);
digitalWrite(greenled, HIGH);
digitalWrite(buzzer, LOW);
delay(500);
digitalWrite(buzzer, HIGH);
myServo.attach(9); // Attach servo to pin 9
myServo.write(0); // Start at 0 degrees
pinMode(MQ5_DO, INPUT);
lcd.init(); // Initialize the LCD
lcd.backlight(); // Turn on the backlight
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Welcome to all");
lcd.setCursor(0,1);
lcd.print("Gas Sensor Ready");
delay(2000);
lcd.clear();
}
void loop()
{
int gasValue = analogRead(MQ5_AO); // Read analog value
int gasDetected = digitalRead(MQ5_DO); // Read digital signal
if (gasValue<=170)
{
lcd.setCursor(0,0);
lcd.print("Status: Safe ");
lcd.setCursor(0, 1);
lcd.print("No Gas Leakage");
digitalWrite(greenled, LOW);
digitalWrite(buzzer, HIGH);
myServo.write(0);
delay(500);
digitalWrite(greenled, HIGH);
}
if (gasValue>170)
{
lcd.setCursor(0,0);
lcd.print("Status: Not Safe ");
lcd.setCursor(0, 1);
lcd.print("Gas Detected!...");
digitalWrite(redled, LOW);
digitalWrite(buzzer, LOW);
myServo.write(100);
delay(500);
digitalWrite(redled, HIGH);
}
}