Blaze Buster
Arduino Powered Fire Fighting Bot
Components and supplies
1
Water pump DC 3-5V
1
DS18B20 HHC Temperature Sensor Module
1
servo motor
1
Chassis Car 4wd
1
Water pipe
2
18650 li-ion battery
1
Arduino UNO R3 - Made in italy
1
Ultrasonic Sensor - HC-SR04
Tools and machines
1
Jumper wires (Male to Female)
1
The open-source Arduino Software (IDE)
1
Soldering kit
Apps and platforms
1
Arduino IDE
Project description
Code
Fire Fighting Bot Code
cpp
For any further details dont hesitate to contact.
1#include <Servo.h> 2#include "IR_remote.h" 3#include "Keymap.h" 4 5IRremote ir(3); 6 7Servo water_servo; 8int starting_Angle; 9int Avoidance_distance; 10int manual_Or_Automatic; 11byte ir_Status; 12unsigned long previousMillis = 0UL; 13unsigned long interval = 1000UL; 14int currentMillis = 0; 15 16//Flame sensor pin is D7, Pump pin is D8, Rotating platform (Servo) is D12. 17//NOTE: if manual_Or_Automatic value is 0, then it is on Automatic mode. Else its manual. 18//Used with Ultrasonic Avoidance Car made by LAFVIN 19// Fadel Taha {Copyright 2023} 20 21float checkdistance() { 22 digitalWrite(12, LOW); 23 delayMicroseconds(2); 24 digitalWrite(12, HIGH); 25 delayMicroseconds(10); 26 digitalWrite(12, LOW); 27 float distance = pulseIn(13, HIGH) / 58.00; 28 delay(10); 29 return distance; 30} 31 32void Stop() { 33 digitalWrite(2,LOW); 34 analogWrite(5,0); 35 digitalWrite(4,HIGH); 36 analogWrite(6,0); 37} 38 39void Move_Backward(int speed) { 40 digitalWrite(2,LOW); 41 analogWrite(5,speed); 42 digitalWrite(4,HIGH); 43 analogWrite(6,speed); 44} 45 46void Rotate_Left(int speed) { 47 digitalWrite(2,LOW); 48 analogWrite(5,speed); 49 digitalWrite(4,LOW); 50 analogWrite(6,speed); 51} 52 53void Rotate_Right(int speed) { 54 digitalWrite(2,HIGH); 55 analogWrite(5,speed); 56 digitalWrite(4,HIGH); 57 analogWrite(6,speed); 58} 59 60void Move_Forward(int speed) { 61 digitalWrite(2,HIGH); 62 analogWrite(5,speed); 63 digitalWrite(4,LOW); 64 analogWrite(6,speed); 65} 66void setup() { 67 Serial.begin(9600); 68 IRremote ir(3); 69 70 pinMode(8, OUTPUT); 71 pinMode(7, INPUT); 72 pinMode(12, OUTPUT); 73 pinMode(13, INPUT); 74 pinMode(2, OUTPUT); 75 pinMode(5, OUTPUT); 76 pinMode(4, OUTPUT); 77 pinMode(6, OUTPUT); 78 //water_servo.attach(12); 79 water_servo.attach(11); 80 digitalWrite(8, LOW); 81 manual_Or_Automatic = 0; 82 ir_Status = ""; 83} 84 85/*void IR_control_Function() { 86 ir_Status = ir.getIrKey(ir.getCode(),1); 87 if (ir_Status == IR_KEYCODE_UP && manual_Or_Automatic == 1){ 88 Move_Forward(100); 89 Serial.println("Moving forward..."); 90 delay(300); 91 Stop(); 92 } else if (ir_Status == IR_KEYCODE_DOWN && manual_Or_Automatic == 1){ 93 Move_Backward(100); 94 Serial.println("Moving backward..."); 95 delay(300); 96 Stop(); 97 } else if (ir_Status == IR_KEYCODE_LEFT && manual_Or_Automatic == 1){ 98 Rotate_Left(70); 99 Serial.println("Moving right..."); 100 delay(300); 101 Stop(); 102 } else if (ir_Status == IR_KEYCODE_RIGHT && manual_Or_Automatic == 1){ 103 Rotate_Right(70); 104 Serial.println("Moving left..."); 105 delay(300); 106 Stop(); 107 } 108}*/ 109 110/*void IR_recieve() 111{ 112 if (ir_Status == IR_KEYCODE_1) 113 { 114 Serial.println("AUTOMATIC MODE ON"); 115 manual_Or_Automatic = 1; 116 } else if (ir_Status == IR_KEYCODE_0) 117 { 118 Serial.println("MANUAL MODE ON"); 119 manual_Or_Automatic = 0; 120 } 121}*/ 122 123void is_Fire_Detected() 124{ 125 if (digitalRead(7) == 0) 126 { //IF FIRE IS DETECTED 127 Stop(); 128 Serial.println("|||FLAME DETECTED|| Car Stopped. Servo about to start."); 129 water_servo.write(starting_Angle); 130 digitalWrite(8, HIGH); 131 for (int i=0; i < 60; i++) 132 { 133 water_servo.write(i); 134 Serial.println("ServoLoop "+i); 135 delay(10); 136 } 137 digitalWrite(8, LOW); 138 } 139} 140 141void ultrasonic_Function() 142{ 143 int awareness_Distance = 25; 144 while (true) 145 { 146 Avoidance_distance = checkdistance(); 147 if (Avoidance_distance <= awareness_Distance) 148 { 149 if (Avoidance_distance <= 15) 150 { 151 Stop(); 152 delay(100); 153 Move_Backward(50); 154 delay(1000); 155 } else 156 { 157 Stop(); 158 delay(100); 159 Rotate_Left(100); 160 delay(600); 161 } 162 } 163 else 164 { 165 Move_Forward(70); 166 delay(1000); 167 break; 168 } 169 } 170} 171 172void loop() { 173 digitalWrite(8, LOW); 174 int starting_Angle = 0; 175 int Avoidance_distance = 0; 176 Avoidance_distance = checkdistance(); 177 water_servo.write(starting_Angle); 178 Serial.println("Moving forward."); 179 //Move_Forward(75); 180 //delay(1000); 181 ultrasonic_Function(); 182 Stop(); 183 delay(1000); 184 if (digitalRead(7) == 0) 185 { //IF FIRE IS DETECTED 186 while (digitalRead(7) == 0) 187 { 188 water_servo.write(starting_Angle); 189 Serial.println("|||FLAME DETECTED|| Car Stopped. Servo about to start."); 190 digitalWrite(8, HIGH); //PUMP WILL START WORKING 191 for (int i=0; i < 60; i++) 192 { 193 water_servo.write(i); 194 Serial.println("ServoLoop "+i); 195 delay(10); 196 } 197 digitalWrite(8, LOW); 198 } 199 } 200 digitalWrite(8, LOW); 201 Rotate_Left(75); 202 delay(2100); 203 Stop(); 204 /*else 205 { 206 digitalWrite(8, LOW); 207 Rotate_Left(50); 208 delay(1200); 209 Stop(); 210 }*/ 211}
Documentation
Arduino Based FIre Fighting Bot
Arduino Based FIre Fighting Bot
https://www.youtube.com/watch?v=6XmQuVhEc50
Schematic Drawing
Circuit
Drawing.jpg

Comments
Only logged in users can leave comments