📊 Project Overview

  • Difficulty: Intermediate
  • Time Required: 4–6 hours
  • Age Group: 12–18 years
  • Subject: Robotics, IoT, Fire Safety
  • Total Cost: ₹1,500–₹2,000

🔥 Introduction to the Humanoid Fire Fighter Robot

Fire accidents in homes, schools, and hospitals are dangerous, and sending humans inside to extinguish them can be life-threatening. What if we could send a robot instead? In this exciting project, we will build a humanoid fire fighter robot that can be controlled wirelessly using your smartphone.

This isn’t just a simple car; it’s designed to look like a humanoid robot, complete with a “head” that holds a camera for live video streaming and a “body” that carries a water tank and a Bluetooth speaker for making emergency announcements. By using the NodeMCU ESP8266, we can control the robot’s movement and water pump from a safe distance over Wi-Fi. This is an excellent project for science exhibitions and Class 10–12 STEM submissions.


🧠 What You Will Learn

📡 IoT Control

  • Control motors via Wi-Fi
  • Create a web interface
  • Wireless pump activation

📷 Live Surveillance

  • Stream video to phone
  • Remote monitoring
  • First-person view (FPV)

🔊 Safety Features

  • Remote voice announcements
  • Fire extinguishing system
  • Sunboard chassis design

📦 Components Needed

To build this robot, you will need the following electronic components and materials. You can find most of these on the STEM ROBO HUB store.

🧠 NodeMCU ESP8266

  • Wi-Fi microcontroller
  • Controls motors & pump
  • Creates local server

🚗 BO Motors & Wheels

  • 4x Gear motors (150RPM)
  • 4x Rubber wheels
  • High torque for load

💦 Water System

  • 5V Submersible Pump
  • Flexible pipe
  • Small water container

🔋 Power & Drive

  • L298N Motor Driver
  • 2x 18650 Li-ion Batteries
  • Battery Holder (2-slot)
Component Quantity Approx. Price (₹)
NodeMCU ESP8266 1 ₹350
L298N Motor Driver 1 ₹180
BO Motors + Wheels 4 ₹300
5V Water Pump + Pipe 1 ₹150
18650 Battery + Holder 1 set ₹250
Sunboard Sheet (A3) 2 ₹100
Mini Bluetooth Speaker 1 ₹250
Total ₹1,580

⚙️ How It Works

💡 The Dual-Phone Setup

This robot uses a clever “Dual-Phone” system. One smartphone is mounted on the robot’s “head” to act as an IP Camera, streaming live video to the user. The second smartphone is in your hand, used to view the video and control the robot’s movement via Wi-Fi.

The core of the robot is the NodeMCU ESP8266. It connects to your mobile phone via Wi-Fi and creates a web server (or connects to an app like Blynk). When you press buttons on your phone screen, the NodeMCU receives the commands and instructs the L298N motor driver to spin the motors forward, backward, left, or right.

For the fire-fighting mechanism, a 5V water pump is connected to a relay or transistor controlled by the NodeMCU. When you press the “Extinguish” button on your app, the pump activates, spraying water through a pipe mounted on the robot’s arm. Additionally, a small Bluetooth speaker on the robot allows you to play recorded voice messages like “Evacuate immediately!” from your phone, making it a true rescue robot.


🛠️ Step-by-Step Build

1

Build the Chassis

  1. Cut a piece of Sunboard (approx. 20cm x 15cm) for the base.
  2. Cut two vertical side panels to resemble the “legs” and “body” of a humanoid robot.
  3. Attach the 4 BO motors to the base using glue or clamps.
  4. Fix the wheels onto the motors.
2

Mount the Water System

  1. Place a small plastic container (like a cut water bottle) on the back of the chassis to hold water.
  2. Submerge the 5V water pump inside the container.
  3. Route the output pipe along the robot’s “arm” so it points forward. You can use a zip tie to secure it.
3

Install Electronics

  1. Mount the L298N motor driver in the center of the chassis.
  2. Place the NodeMCU on a small breadboard or stick it directly using double-sided tape.
  3. Secure the 18650 battery holder at the rear for balance.
4

The Humanoid “Head” & Speaker

  1. Cut a Sunboard piece to form a head/neck structure.
  2. Attach a mobile phone holder or a simple slot to hold the “Camera Phone”.
  3. Mount the mini Bluetooth speaker on the chest area of the robot. This will be used for announcements.

🔌 Circuit Diagram

Follow these connections carefully to ensure your robot works correctly.

Circuit diagram for Humanoid Fire Fighter Robot with NodeMCU and L298N

Figure 1: Wiring diagram for NodeMCU, L298N, and Water Pump

Key Connection Tip: The NodeMCU operates on 3.3V logic, but the L298N works fine with it. However, never power the motors directly from the NodeMCU pins. Always use the 18650 batteries to power the L298N and Pump.

  • Motors to L298N: Connect left motors to OUT1 & OUT2; right motors to OUT3 & OUT4.
  • L298N to NodeMCU:
    • IN1 → D1 (GPIO 5)
    • IN2 → D2 (GPIO 4)
    • IN3 → D3 (GPIO 0)
    • IN4 → D4 (GPIO 2)
  • Water Pump: Connect the pump through a Relay Module or a TIP122 transistor. Connect the Relay Signal pin to NodeMCU D5 (GPIO 14).
  • Power: Connect the 7.4V (2x Li-ion) battery pack to the 12V and GND terminals of the L298N. Connect the L298N’s 5V output to the NodeMCU VIN pin to power the microcontroller.

💻 Code

We will use a simple Web Server code. This code creates buttons on a webpage to control the robot and the pump. Upload this using the Arduino IDE.

Humanoid_Robot.ino
Arduino C++

#include 

const char* ssid = "FireFighterBot";  // Name of your Robot's Wi-Fi
const char* password = "12345678";    // Password

WiFiServer server(80);

// Motor Pins
int IN1 = 5;  // D1
int IN2 = 4;  // D2
int IN3 = 0;  // D3
int IN4 = 2;  // D4

// Pump Pin
int PUMP = 14; // D5

void setup() {
Serial.begin(115200);

pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(PUMP, OUTPUT);

// Stop everything initially
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
digitalWrite(PUMP, HIGH); // Assuming Relay is Active LOW

// Connect to Wi-Fi
Serial.println();
Serial.print("Configuring access point...");
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.begin();
Serial.println("HTTP server started");
}

void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}

String request = client.readStringUntil('\r');
client.flush();

// Control Logic
if (request.indexOf("/FORWARD") != -1) {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
else if (request.indexOf("/BACKWARD") != -1) {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
else if (request.indexOf("/LEFT") != -1) {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
else if (request.indexOf("/RIGHT") != -1) {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
else if (request.indexOf("/STOP") != -1) {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}
else if (request.indexOf("/PUMP_ON") != -1) {
digitalWrite(PUMP, LOW); // Turn Relay ON
}
else if (request.indexOf("/PUMP_OFF") != -1) {
digitalWrite(PUMP, HIGH); // Turn Relay OFF
}

// Serve the HTML Page
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("");
client.println("");
client.println("

Fire Fighter Robot

");
client.println("
“); client.println(“ “); client.println(““); client.println(““); client.println(“ “); client.println(“


“); client.println(“ “); client.println(““); client.println(“

");
}

⚠️ Troubleshooting

❌ Problem: Robot Moves in Wrong Direction

  • Swap the wires of the motor that is spinning the wrong way at the L298N connector.
  • Ensure IN1/IN2 control the Left motor and IN3/IN4 control the Right motor.

❌ Problem: NodeMCU Resets When Motors Start

  • This is a power issue. The motors are drawing too much current and dropping the voltage.
  • Ensure your 18650 batteries are fully charged.
  • Add a capacitor (e.g., 1000uF) across the L298N power input.

❌ Problem: Pump Not Working

  • Check if the Relay LED turns on when you press the button.
  • Verify the pump is connected to the COM and NO (Normally Open) ports of the relay.

❓ FAQ

❓ Can I use a 9V battery instead of 18650s?

No! Standard 9V HW batteries have very low current capacity and cannot run 4 motors and a pump. Use Li-ion 18650 batteries.

❓ How do I see the camera video?

Install an “IP Webcam” app on the phone mounted on the robot. It will give you a URL (e.g., 192.168.1.5:8080) which you can open in a browser on your controller phone.

❓ What material is best for the body?

Sunboard (PVC foam sheet) is lightweight, easy to cut with a paper cutter, and sturdy enough for this project.

🛒 Get Your Robot Components from STEM ROBO HUB!

Ready to build this life-saving robot? We have the NodeMCU, motors, pumps, and chassis kits available at the best prices for students.

Shop Now →