How to Build a Wi-Fi Controlled Car Using NodeMCU, Blynk IoT, and L298N Motor Driver

Iot car

In this project, we will build a Wi-Fi-controlled car using NodeMCU, Blynk IoT, and an L298N motor driver. This project allows you to control the car using your smartphone via the Blynk app, providing a fun and interactive way to explore IoT, robotics, and home automation. We’ll guide you step-by-step through the process of assembling the car, writing the code, and setting up the Blynk app for Wi-Fi control.

Let’s get started!

Materials Needed:

  1. NodeMCU (ESP8266)
  2. 4 BO Motors
  3. L298N Motor Driver Module
  4. Buzzer and LED
  5. Jumper Wires
  6. Power Supply (6V-12V battery or equivalent)
  7. Wi-Fi enabled device (smartphone/tablet)
  8. Blynk IoT app installed

Step 1: Assembling the Hardware

Wiring the Motors:

  • Connect the 4 BO motors to the L298N motor driver.
  • Motor A (left side) is connected to OUT1 and OUT2.
  • Motor B (right side) is connected to OUT3 and OUT4.
  • Attach the power supply to the 12V, GND, and 5V pins of the L298N. The motors will get power from this connection.

Wiring the NodeMCU to L298N:

  • Connect the IN1, IN2, IN3, and IN4 of the L298N to the following NodeMCU pins:
    • IN1 -> D1
    • IN2 -> D2
    • IN3 -> D4
    • IN4 -> D5

Buzzer and LED (Horn):

  • Connect the buzzer to pin D8 of the NodeMCU.
  • If you’re using an LED as a horn indicator, connect it in parallel with the buzzer.
Iot car

Step 2: Setting Up the Blynk IoT App

  1. Create a New Template in Blynk IoT:
  • Open the Blynk app, create a new template, and name it “IoT-Based Car.”
  • Add virtual pins (V1, V2, V3, V4 for motor control and V5 for the buzzer and LED).
  1. Set Up Widgets:
  • Add Button Widgets in the Blynk app for the following controls:
    • V1 & V2: Right/Left motor control
    • V3 & V4: Forward/Backward motor control
    • V5: Buzzer/LED as a horn
  1. Configure Virtual Pins:

Configure each button to toggle between ON and OFF using their respective virtual pins (V1-V5).

Step 3: Writing the Code

#define BLYNK_TEMPLATE_ID "TMPL3duWfaQ9j"
#define BLYNK_TEMPLATE_NAME "IotBasedCar"
#define BLYNK_AUTH_TOKEN "YourAuthToken"

#include <BlynkSimpleEsp8266.h>
#include <ESP8266WiFi.h>

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "YourSSID";  // Your Wi-Fi name
char pass[] = "YourPassword";  // Your Wi-Fi password

const int motorPin1 = 5;  // D1
const int motorPin2 = 4;  // D2
const int motorPin3 = 2;  // D4
const int motorPin4 = 14; // D5
const int buzzer = 15;    // D8

BLYNK_WRITE(V1) {
  int RightValue = param.asInt();
  digitalWrite(motorPin1, RightValue);
}

BLYNK_WRITE(V2) {
  int LeftValue = param.asInt();
  digitalWrite(motorPin3, LeftValue);
}

BLYNK_WRITE(V3) {
  int ForwardValue = param.asInt();
  digitalWrite(motorPin1, ForwardValue);
  digitalWrite(motorPin3, ForwardValue);
}

BLYNK_WRITE(V4) {
  int BackwardValue = param.asInt();
  digitalWrite(motorPin2, BackwardValue);
  digitalWrite(motorPin4, BackwardValue);
}

BLYNK_WRITE(V5) {
  int HornValue = param.asInt();
  digitalWrite(buzzer, HornValue);
}

void setup() {
  Blynk.begin(auth, ssid, pass);
  
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(buzzer, OUTPUT);
}

void loop() {
  Blynk.run();
}


Explanation of the Code:

  • We use BlynkSimpleEsp8266 to interface the NodeMCU with the Blynk app.
  • BLYNK_WRITE functions control the motors and horn based on the virtual pin input from the Blynk app.
  • V1 and V2 handle the right and left motor controls.
  • V3 and V4 control the forward and backward movements.
  • V5 is dedicated to the buzzer and LED for the horn function.

Step 4: Uploading Code to NodeMCU

  1. Open the Arduino IDE and paste the code.
  2. Install the necessary libraries (BlynkSimpleEsp8266, ESP8266WiFi).
  3. Select the correct board (NodeMCU 1.0) and COM port.

Upload the code to your NodeMCU.

Step 5: Testing Your Wi-Fi Controlled Car

  • Power up the NodeMCU and ensure that it connects to your Wi-Fi.
  • Open the Blynk app, and use the buttons to control the car’s movement and horn.
  • Test each direction (forward, backward, left, and right) to ensure everything is working correctly.
  • Press the horn button to activate the buzzer and LED.

Conclusion:
Congratulations! You’ve successfully built a Wi-Fi-controlled car using NodeMCU and Blynk IoT. This project introduces you to IoT and robotics, giving you control over a mobile robot via a Wi-Fi connection. You can expand this project by adding more features like sensors or camera modules to create an advanced version of the car.