Building a Wi-Fi Camera Car Rover with ESP32-CAM and L298N

Previously I had build couple of RC controlled car with Arduino with Bluetooth, controlled with NodeMCU WiFi and wrote note on it in my diary note Arduino-Based Bluetooth Carautonomous robot car and Two wheels WiFi control NodeMCU Car

Now for weeks, I had been itching to build something small, mobile, and intelligent—something that could move around and stream live video, all controlled over Wi-Fi. I wanted to keep it minimal but still functional. That’s when the idea struck: “Why not turn the ESP32-CAM into a roving surveillance car?”

Building a Wi-Fi Camera Car Rover with ESP32-CAM and L298N

Here’s the journey.

๐Ÿš— What I Wanted to Build

My goal was to make a wireless car that could be:

  • Driven remotely via a browser

  • Capable of transmitting real-time video

  • Built using low-cost, off-the-shelf components

I also wanted to avoid extra modules like Bluetooth or external camera units. The ESP32-CAM, with its built-in OV2640 camera and Wi-Fi support, seemed like a perfect candidate.

๐Ÿ”ง Gathering the Gear

Here’s what I used:

  • ESP32-CAM board (the AI-Thinker model)

  • L298N motor driver IC

  • Two small DC motors with a wheel chassis

  • A rechargeable battery pack (I used a 12V source)

  • FTDI adapter to upload code to the ESP32-CAM

  • Jumper wires and a breadboard for quick prototyping

I designed a simple two-wheel car with the third point resting on a castor wheel. The ESP32-CAM went on top, like a surveillance tower.

Circuit Diagram

Following is the circuit diagram of 

๐Ÿ› ️ The Build Process

1. Programming the ESP32-CAM

The ESP32-CAM has no built-in USB port, so I connected an FTDI adapter to it:

  • TX → RX, RX → TX (crossed)

  • 5V and GND to power it

  • GPIO0 to GND to enable flashing mode

I used the Arduino IDE with the ESP32 board package installed. I wrote a basic sketch that:

  • Connected the ESP32-CAM to my Wi-Fi

  • Started the camera

  • Launched a web server that streamed video and accepted movement commands

2. Motor Control

The L293D module driver was wired to the two motors and four GPIO pins (GPIO 4, 2, 14, and 15). Based on incoming commands from the web interface, these pins turned the motors forward, backward, or rotated them for turning.

๐ŸŒ Controlling It Remotely

Once the sketch was uploaded, I restarted the board (after disconnecting GPIO0 from GND). The Serial Monitor showed the ESP32-CAM’s IP address. Typing this into a browser pulled up a neat web page—complete with video stream and four control buttons: Forward, Back, Left, Right.

Tapping the buttons controlled the car in real time while showing exactly what it "saw."

๐Ÿš€ What Worked, What Could Be Better

What went well:

  • The video stream was surprisingly smooth on a strong Wi-Fi signal

  • The browser control worked on both PC and mobile

  • The setup was compact and neat

What could improve:

  • There’s no speed control—it’s all or nothing

  • No reverse camera view

  • No obstacle detection

๐Ÿง  Next Steps

Now that the basic prototype is done, I’m thinking of adding:

  • Pan and tilt control using servos

  • Battery level monitoring

  • Maybe even voice control using a smartphone!

๐Ÿงพ Final Thoughts

Building this project was a fun introduction to using the ESP32-CAM beyond just static video applications. It taught me about GPIO control, web interface design, and embedded camera streaming—all in one package.

If you’re looking to explore robotics or DIY surveillance systems, this is a highly rewarding weekend project.

Post a Comment

Previous Post Next Post