Gas sensor interface with Arduino and I2C LCD in proteus

Gas sensor interface with Arduino and I2C LCD in proteus

In this article we will learn how to interface arduino with Gas sensor and I2C LCD in proteus.
In the last post we will learn how to interface arduino UNO with voice-controlled Robot in proteus. You can visit our website,
I hope you appreciate my work, let’s discuss about today’s project.

Components which we use in this project are listed below:

  1. Arduino UNO
  2. Gas sensor
  3. I2C
  4. LCD display
  5. Resistor (10k)
  6. Buzzer
  7. Resistor variable (1k)
  8. LEDs
  9. Jumper wires

Diagram of this project is below:

Gas sensor interface with Arduino and I2C LCD in proteus
Gas sensor interface with Arduino and I2C LCD in proteus

Construction of Gas sensor interface with Arduino and I2C LCD in proteus:

  • Connect A4 pin of Arduino with the pin 15 of I2C
  • Connect A5 pin of Arduino with the pin 14 of I2C
  • Connect A0 pin of Arduino with the out pin of Gas sensor through one side of R10k
  • Connect the other side of R10k with the GND
  • Connect the GND point of Gas sensor with the GND
  • Connect the VCC point of Gas sensor with the +ve
  • Connect the test pin of gas sensor with the out pin of Variable
  • Connect the +ve pin of variable with the +ve
  • Connect the –ve pin of variable with GND
  • Connect the A0,A1,A2 of I2C with the GND
  • Connect the VSS pin of LCD display with the GND
  • Connect the VDD pin of LCD display with the +ve point
  • Connect the P0 pin of I2C with the pin RS of LCD  display
  • Connect the P1 pin of I2C with the pin RW of LCD display
  • Connect the P2 pin of I2C with the pin E of LCD display
  • Connect the P3 pin of I2C with the pin D3 of LCD display
  • Connect the P4 pin of I2C with the pin D4 of LCD display
  • Connect the P5 pin of I2C with the pin D5 of LCD display
  • Connect the P6 pin of I2C with the pin D6 of LCD display
  • Connect the P7 pin of I2C with the pin D7 of LCD display
  • Connect the pin 12 of Arduino with the one side of R1
  • Connect the other side of R1 with the +ve side of LED
  • Connect the –ve side of LED with the GND through –ve side of other LED and –ve point of Buzzer
  • Connect the pin 11 of Arduino with the one side of R2
  • Connect the other side of R2 with the +ve side of LED
  • Connect the +ve side of Buzzer with the one side of R3
  • Connect the other side of R3 with the pin 5 of Arduino

Working of Gas sensor interface with Arduino and I2C LCD in proteus:

A gas sensor interface with Arduino and an I2C LCD involves connecting a gas sensor to an Arduino microcontroller and then displaying the sensor data on an I2C LCD screen. This can be used to monitor the concentration of gases in the environment

Applications of Gas sensor interface with Arduino and I2C LCD in proteus:

  1. Indoor Air Quality Monitor
  2. Gas Leak Detector
  3. Environmental Monitoring
  4. Greenhouse Gas Monitoring
  5. Smart Home Automation

Advantages of Gas sensor interface with Arduino and I2C LCD in proteus:

  1. Real-time Monitoring
  2. User-Friendly Interface
  3. Alerts and Warnings
  4. Data Logging
  5. Automation

Program code of this project is below:

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

 

LiquidCrystal_I2C lcd(0x20, 16, 2);

 

#define gasSensor A0

#define buzzer 5

#define ledGreen 11

#define ledRed 12

#define SMOKE_THRESHOLD 100 // Adjust this threshold value as needed

 

void setup() {

lcd.init();

lcd.backlight();

lcd.setCursor(0, 0);

lcd.print(“Projectiot123”);

 

pinMode(gasSensor, INPUT);

pinMode(buzzer, OUTPUT);

pinMode(ledGreen, OUTPUT);

pinMode(ledRed, OUTPUT);

delay(500);

}

 

void loop() {

// Read data from the sensor

int gas_value = analogRead(gasSensor);

 

// Check data from sensor if there is smoke

if (gas_value >= SMOKE_THRESHOLD) {

lcd.clear();

lcd.setCursor(1, 0);

lcd.print(“Smoke detected”);

tone(buzzer, 1000, 500);

digitalWrite(ledRed, HIGH);

digitalWrite(ledGreen, LOW);

} else {

lcd.clear();

lcd.setCursor(1, 0);

lcd.print(“Normal”);

noTone(buzzer);

digitalWrite(ledGreen, HIGH);

digitalWrite(ledRed, LOW);

}

delay(500);

}