Wi-Fi Control Car
A PROJECT REPORT
Submitted by
Dhruv Gor, Karan Mehta & Aditya Dave
In fulfillment for the award of the degree
of
BACHELOR OF ENGINEERING
in
Electronics Engineering Department
Birla Vishwakarma Mahavidyalaya
(BVM), Anand, Gujarat
Gujarat Technological University, Ahmedabad
December 2011
1
Birla Vishwakarma Mahavidyalaya (BVM)
Electronics Department
2011
CERTIFICATE
Date:
This is to certify that Mr. DHRUV GOR_ID No. 20EL100, KARAN MEHTA ID No
20EL098 and ADITYA DAVE_ID No. 20EL099 of B.Tech. (Electronics Engineering)
SEM-IV has satisfactorily completed the term work of the subject Mini Project (2EL31)
prescribed by BVM an Autonomous Institution during the Academic Year 2022-2023.
Guide: Prof. Mahendra Prajapati
Head of the Department Lab Teacher
ABSTRACT
When this WIFI-controlled car is powered on, the Nodemcu board
connects to the Blynk cloud via a WiFi connection. Then, when you press
the Commands (Forward, Backward, Left, Right) buttons on the interface
created in the Blynk app, those values will be sent to the Nodemcu board
via the Blynk cloud.
Then, the gear motors rotate according to those values. The L298 Motor
driver board is used for this. Also, the speed of these motors can be
controlled by the slider created in the Blynk app.
OBJECTIVES
To make a Wifi Control Car using Nodemcu ESP8266 board with
Blynk App.
INDEX
1. Introduction
2. Components Required
3. Procedure and Working
4. Circuit Diagram
5. Component Description
6. Blynk Arduino Source Code
7. Advantages
8. Disadvantages
9. Application
10. Future Scope & Conclusion
11. References
INTRODUCTION
ESP8266 Car Control using Android App and WiFi and this is a very
interesting project, in which we will see how to make a robot car
controlled by a Smartphone. This Robot car can pair up with any
smartphone that will be used as a transmitter or few call it remote.
This Car is equipped with 4 gear motors that provide this mini beast the
required torque.
We will look at the highlighting features of this car:
This is Controlled by Wi-Fi hence this device is functional with any
smartphone or computer with Wi-Fi capability
As this uses lithium-ion battery it has the capacity of 4000mah which is
sufficient for long time working
Speed of Motors can be changed as per the requirements
COMPONENTS REQUIRED
1. Nodemcu ESP8266
2. Lithium-ion/ DC 9V batteries
3. Battery case
4. L298N Motor driver
5. BO motors(4 pieces)
6. Rubber wheels(4 pieces)
7. Jumper wires
8. Small wooden pieces for building frame (10x20cm)
PROCEDURE AND WORKING:
Place BO motors on the corners of wooden board and couple them with gel
type super glue, I would recommend using this as it does not leave any
sticky mess between the surfaces.
I do not recommend using hot glue as it weakens the plastic body and the
adhesive strength is not too high.
Once we have the motor ready we can start to make connections.
The logic here is very simple 2 motors run on same connections as we are
making an 4WD car.
If you are not sure of exact terminals as in most of the cases motors + and
– are not given because they matter only in the direction of rotation you
can change them accordingly.
You can attach a wheel and connect battery so that you can mark the
directions before soldering the wires.
Once the circuit is complete we can add wheels to the motor shaft.
Now, Open the blynk app , let’s set up these buttons. First, click the up
button and enter the button name as you like. After, change the PIN value
to “virtual V0”. Change the edge type to “PILL” mode.
Second, click the down button and enter the button name as you like.
After, change the PIN value to “virtual V7”. Change the edge type to
“PILL” mode.
Third, click the left button and enter the button name as you like. After,
change the PIN value to “virtual V8”. Change the edge type to “PILL”
mode.
Last, click the right button and enter the button name as you like. After,
change the PIN value to “virtual V9”. Change the edge type to “PILL”
mode
CIRCUIT DIAGRAM
COMPONENTS DESCRIPTION
L298 Motor Driver
L298N motor driver is necessary to drive any motors via external power
supply.
This is because power from the Microcontroller board is not sufficient
enough to driver 4 motors while with the drivers you can easily connect
such motors.
What we are using is a DUAL H bridge driver, it requires 12v dc supply
and provides 5v supply that runs control board and motors.
It has 4 pins for signal input from the board that gives directions for motor.
Add jumper wires between Motor driver and breadboard, Just follow this
Circuit connection.
D1 ->Input 1
D2 ->Input 2
D3 -> Input 3
D4 ->Input 4
This completes circuit, Don’t power this until you add some codes.
Nodemcu ESP8266
The NodeMCU (node Microcontroller unit) is an open-source software
and hardware development environment built around an inexpensive
System-on-a-Chip (SoC) called the ESP8266. The ESP8266, designed and
manufactured by Espressif Systems, contains the crucial elements of a
computer: CPU, RAM, networking (WiFi), and even a modern operating
system and SDK. That makes it an excellent choice for Internet of Things
(IoT) projects of all kinds.
The Arduino project created an open-source hardware design and software
SDK for their versatile IoT controller. Similar to NodeMCU, the Arduino
hardware is a microcontroller board with a USB connector, LED lights,
and standard data pins. It also defines standard interfaces to interact with
sensors or other boards. But unlike NodeMCU, the Arduino board can
have different types of CPU chips (typically an ARM or Intel x86 chip)
with memory chips, and a variety of programming environments. There is
an Arduino reference design for the ESP8266 chip as well. However, the
flexibility of Arduino also means significant variations across different
vendors. For example, most Arduino boards do not have WiFi capabilities,
and some even have a serial data port instead of a USB port.
BLYNK ARDUINO CODE FOR WIFI CAR
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define IN1 D1
#define IN2 D2
#define IN3 D3
#define IN4 D4
// Go to the Project Settings (nut icon).
char auth[] = "t8gFgu9bJIoSJbeepIbItnksb9gUmQeW";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "123456789";
char pass[] = "123456789";
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
Blynk.begin(auth, ssid, pass);
void loop()
{
// waits 15ms for the servo to reach the position
Blynk.run();
}
//Robot starts
BLYNK_WRITE(V7)
{
int pinValue7 = param.asInt(); // assigning incoming value from pin V1 to
a variable
Serial.println(pinValue7);
if(pinValue7==HIGH)
{
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
Serial.println("Forward");
}
else
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
Serial.println("Stop");
}
}
BLYNK_WRITE(V8)
{
int pinValue8 = param.asInt(); // assigning incoming value from pin V2 to
a variable
Serial.println(pinValue8);
if(pinValue8==HIGH)
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
Serial.println("Backward");
}
else
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
Serial.println("Stop");
}
}
BLYNK_WRITE(V9)
{
int pinValue9 = param.asInt(); // assigning incoming value from pin V3 to
a variable
Serial.println(pinValue9);
if(pinValue9==HIGH)
{
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
Serial.println("Right");
}
else
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
Serial.println("Stop");
}
}
BLYNK_WRITE(V0)
{
int pinValue0 = param.asInt(); // assigning incoming value from pin V4 to
a variable
Serial.println(pinValue0);
if(pinValue0==HIGH)
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
Serial.println("Left");
}
else
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
Serial.println("Stop");
}
}
ADVANTAGES
It can easily control through smartphone via Blynk app.
It is faster and easier than Bluetooth module.
Only 2 DC batteries or 1 Li-ion battery would be enough for running 4
motors.
ESP8266 has high sensitivity and connectivity.
By using a motor driver we easily use 4 motors at one time.
DISADVANTAGES
As it is Wifi connected so it needs a faster and more stable connection for
running a car
It consumes high battery so it drain very fast.
APPLICATIONS
Used for low-level surveillance applications.
Used in transportation of small things like equipments in the campus
area of the industry or a company.
CONCLUSION
The Internet of Things (IoT) is consisting of physical devices which can be
given an IP address and can be uniquely identified. It can be defined on the
basis of three types. In this paper IoT is used to control electric vehicle for
parameters like acceleration, brake, and steering, and also for this Wi-Fi
enabled microcontroller is used to provide GPS coordinates for updated
position of vehicle after an interval of every 5000 milliseconds and display
images and live stream of video.
REFERENCES
https://www.ijsr.net
https://srituhobby.com/how-to-make-a-wifi-controlled-car-using-
nodemcu-and-blynk-app-step-by-step-instructions