Smoke and LPG Gas Detection Robot

Introduction:-

LPG Gas Leakage and smoke detection is the most needed criteria in the oil and gas industries. It is also needed in the modern house hold and restaurant to save human life in the kitchens.  Gas leakage leads to various accidents resulting in both material loss and human injuries. The risk of explosion, firing, suffocation are based on their physical properties such toxicity, flammability, etc. The number of deaths due to explosion of gas cylinders has been increasing in recent years. The reason for such explosion is due to substandard cylinders, old valves, worn out regulators and lack of awareness in handling gas cylinders. The LPG or propane is a flammable mixture of hydrocarbon gases used as fuel in many applications like homes, hostels, industries, automobiles, vehicles because of its desirable properties which include high calorific value, less smoke, less soot, and meager harm to the environment. Natural gas is another widely used fuel in homes. Both gases burns to produce clean energy, however there is a serious problem of their leakage. Being heavier than air, these gases do not disperse easily. It may lead to suffocation when inhaled and may lead to explosion.

In this article, i have made a gas detection Robot to save human life in all criteria.

 

Materials Required:-

  1. Arduino Uno

2) Motor Drive board

3) Robo Chassis

4) BO motor

5) BO Wheel

6) Castor Wheel

7) Gas Sensor

8) Accessories

Block Diagram:-

Explanation:-

I have mentioned the arrow how to understand the input and output of the sensor and the other devices like motor drive. I have feed the signal from the gas sensor to the arduino. The arduino has programmed to measure the amount of gas presented around the atmosphere. The buzzer is an OUTPUT device which indicates the user using sound signals. so the buzzer has been controlled with the arduino. The motor drive has been connected to the arduino with two BO Motors for the movement of the robot.

Circuit Diagram:-

I didn’t attached the image of the circuit diagram due to some technical issues. But i have mentioned the connection details below to construct the hardware.

  1. connect the A0 pin of the gas sensor to the A0 pin of the arduino
  2. connect the +5v buzzer to the 2 pin and 3rd pin of the arduino
  3. connect the IN1, IN2, IN3, IN4 pin of the motor drive to the pin number 8,9,10,11 of the arduino uno

 Basic construction:-

connect the BO motor to the robotic chassis with proper jumper wire soldering to connect it to the motor drive. I have used the tags to stick the motor drive to the chassis. But i recommend you to use proper screws and nut for making the robot. Place the castor wheel to the robotic chassis.

Solder the +12v and gnd of the motor drive to the DC pin at the back of the arduino. so that the input power is shared to both the arduino and motor drive.

Attach the motor drive and gas sensor to the robotic chassis with the help of Spacer as i shown in the picture. so that it can fix stable when the robot moves.

Solder the buzzer with jumper wires. so that it is more convenient to fix it on the arduino uno board.

connect the buzzer to the 2nd and 3rd pin of the arduino as i shown in the picture

Connect the A0 pin of the gas sensor to the A0 pin of the arduino. connect the vcc and gnd of the gas sensor to the +5v and gnd of the arduino.

Connect the IN1, IN2, IN3, IN4 of the motor drive to the 8,9,10,11 of the arduino using the jumper wires

Fix the motor wheel to the BO motor so that the hardware construction is Over.

Code:-

int LmotorUp = 10; //initialising Arduino port 10 be be called as LmotorUp
int LmotorDn = 11; //initialising Arduino port 11 be be called as LmotorDn
int RmotorUp = 8; //initialising Arduino port 8 be be called as RmotorUp
int RmotorDn = 9; //initialising Arduino port 9 be be called as RmotorDn
int senPin = A0; //initialising Arduino port 13 be be called as sensor
int buz_pos=2;
int buz_neg=3;

void setup()
{
Serial.begin(9600);
// pinMode(senPin,INPUT);
pinMode(LmotorUp,OUTPUT);//Setting ports as OUTPUTS as they
pinMode(LmotorDn,OUTPUT);//supply signal values to motor driver
pinMode(RmotorUp,OUTPUT);
pinMode(buz_pos,OUTPUT);
pinMode(buz_neg,OUTPUT);
pinMode(RmotorDn,OUTPUT);
digitalWrite(buz_pos,LOW);
digitalWrite(buz_neg,LOW);
Serial.println(” Welcomes you”);
delay(1000);
}

void loop()
{

int input = analogRead(senPin);
Serial.println(input);
if(input>900)
{
MoveF();
digitalWrite(buz_pos,LOW);
}
else
{
Stop();
digitalWrite(buz_pos,HIGH);
delay(500);
digitalWrite(buz_pos,LOW);
delay(500);
}

}

void MoveF()
{
Serial.println(” Wireless Robot Forward”);
digitalWrite(LmotorUp,HIGH); //As said in video we are writing a Digital HIGH to the upper left pin of the motor driver
digitalWrite(LmotorDn,LOW); //As said in video we are writing a Digital LOW to the lower left pin of the motor driver
digitalWrite(RmotorUp,HIGH); //As said in video we are writing a Digital HIGH to the upper right pin of the motor driver
digitalWrite(RmotorDn,LOW); //As said in video we are writing a Digital LOW to the lower right pin of the motor driver

// As a result the robot will move forward
}

void MoveB()
{
Serial.println(“Wireless Robot Backward”);
digitalWrite(LmotorUp,LOW); //Reverse logic of above
digitalWrite(LmotorDn,HIGH);
digitalWrite(RmotorUp,LOW);
digitalWrite(RmotorDn,HIGH);
}

void MoveL()
{
Serial.println(“Wireless Robot Left”);
digitalWrite(LmotorUp,LOW); //we are completely stopping the left motor and allowing the right motor to move forward
digitalWrite(LmotorDn,LOW); //this will cause the robot to move left
digitalWrite(RmotorUp,HIGH);
digitalWrite(RmotorDn,LOW);
}

void MoveR()
{
Serial.println(“Wireless Robot Right”);
digitalWrite(LmotorUp,HIGH);//we are completely stopping the right motor and allowing the left motor to move forward
digitalWrite(LmotorDn,LOW);//this will cause the robot to move right
digitalWrite(RmotorUp,LOW);
digitalWrite(RmotorDn,LOW);
}

void Stop()
{
Serial.println(“Wireless Robot Stop”);
digitalWrite(LmotorUp,LOW);//Writing a digital LOW to all pins associated with movement of motor driver causes all motors to stop
digitalWrite(LmotorDn,LOW);
digitalWrite(RmotorUp,LOW);
digitalWrite(RmotorDn,LOW);
}

void sensor()
{

if(digitalRead(senPin) == HIGH)
{
Serial.println(“Gas Detected on the Mine\n\r Take Immediate Precaution”);
delay(3000);

}
}

 

Result and observation:-

Now you can observe the robot moves forward . when you feed some LPG gas using lighter or any other device, the robo will stops and gives buzzer indication.

Leave a Reply

Your email address will not be published. Required fields are marked *