@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }
COMPONENTS |
QUANTITY |
Arduino Uno |
2 |
Xbee S1 Module |
2 |
4×3 Keypad |
1 |
MQ135 Sensor |
1 |
MQ7 sensor |
1 |
Geared DC motor |
1 |
L293D Motor driver IC |
1 |
Battery 12V |
1 |
Voltage Regulator 7805 and 7812 IC |
7805 – 1 7812 – 1 |
Bread Board |
2 |
Connecting Wires |
As required |
Indicator LED |
1 |
BLOCK DIAGRAM:

TRANSCEIVER (ROBOT SIDE):
Keypad controlled and Industrial Gas Monitoring Wireless Robot Block Diagram

@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }
-
KEYPAD PIN
ARDUINO MEGA PIN.NO
R1
41
R2
43
R3
45
R4
57
C1
49
C2
51
C3
53
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }
LCD |
ARDUINO UNO |
RS |
13 |
RW |
GRND |
E |
12 |
D7 , D6, D5, D4 |
3, 4, 5, 6 respectively |





-
NUMBERS ON KEYPAD
DIRECTION OF ROBOT
2
FORWARD
8
BACKWARD
4
LEFT
6
RIGHT
1
CO GAS MEASUREMENT
FROM MQ7
3
AIR QUALITY
MEASUREMENT FROM
MQ135

In the loop() function, on pressing the key 1 or 3 it looks for the gas value measurement and sent wirelessly by Xbee, as the data received is a byte it is converted to integer using atoi function and stored in the buffer.


@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: left; orphans: 2; widows: 2 }
a:link { color: #0000ff }
Project Source Code
Project Source Code
### //Program to int Sensor_value = 0; char msg = ' '; #define Left_motor1 2 #define Left_motor2 3 #define Right_motor1 4 #define Right_motor2 5 void move_forward(); void move_backward(); void turn_left(); void turn_right(); void robo_stop(); void setup() { Serial.begin(9600); pinMode(Left_motor1, OUTPUT); pinMode(Left_motor2, OUTPUT); pinMode(Right_motor1, OUTPUT); pinMode(Right_motor2, OUTPUT); } void loop() { if(Serial.available() > 0) { msg = Serial.read(); if(msg == 'C') { Sensor_value = analogRead(0); //Serial.print("MQ135 = "); Serial.println(Sensor_value); Serial.println('n'); //delay(50); } if(msg == 'A') { int mq7_digital = analogRead(1); // Serial.print("MQ7 = "); Serial.println(mq7_digital); Serial.println('n'); } if(msg == 'F') { Serial.print("Forward"); move_forward(); } if(msg == 'B') { Serial.print("Backward"); move_backward(); } if(msg == 'R') { Serial.print("Right"); turn_right(); } if(msg == 'L') { Serial.print("Left"); turn_left(); } if(msg == 'S') { Serial.print("Stop"); robo_stop(); } } //delay(500); } void move_forward() { digitalWrite(Left_motor1, HIGH); digitalWrite(Left_motor2, LOW); digitalWrite(Right_motor1, HIGH); digitalWrite(Right_motor2, LOW); } void move_backward() { digitalWrite(Left_motor1, LOW); digitalWrite(Left_motor2, HIGH); digitalWrite(Right_motor1, LOW); digitalWrite(Right_motor2, HIGH); } void turn_right() { digitalWrite(Left_motor1, HIGH); digitalWrite(Left_motor2, LOW); digitalWrite(Right_motor1, LOW); digitalWrite(Right_motor2, LOW); } void turn_left() { digitalWrite(Left_motor1, LOW); digitalWrite(Left_motor2, LOW); digitalWrite(Right_motor1, HIGH); digitalWrite(Right_motor2, LOW); } void robo_stop() { digitalWrite(Left_motor1, LOW); digitalWrite(Left_motor2, LOW); digitalWrite(Right_motor1, LOW); digitalWrite(Right_motor2, LOW); } ###
Circuit Diagrams
Keypad_controlled-_and_Industrial_Gas_Monitoring_Wireless_Robot_Circuit_Diagram | ![]() |
Keypad_controlled-_and_Industrial_Gas_Monitoring_Wireless_Robot_Circuit_Diagram-2-min | ![]() |
Filed Under: Electronic Projects
Questions related to this article?
👉Ask and discuss on Electro-Tech-Online.com and EDAboard.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.