Speed Breaker Project
Speed Breaker Project
Submitted by
Submitted by
NANDAN N R 2SD20EE021
NEEHARIKA NAIK 2SD20EE022
PRATIMA PRABHU 2SD20EE024
PRABHUGOUDA M BANNETTI 2SD20EE025
1
2
SDM COLLEGE OF ENGINEERING AND
TECHNOLOGY, DHARWAD-580002
(An autonomous Institution affiliated to
Visvesvaraya Technological University, Belagavi – 590018)
DECLARATION
We hereby declare that the entire project has been carried out by us in 7th semester and 8th
semester, submitted to Visvesvaraya Technological University as a part of the B. E
curriculum, is a record of an original work done by us under guidance of Dr.Basavaraj S
Shalvadi and this project work is submitted in the partial fulfillment of requirement for the
award of Bachelor of Engineering.
-Nandan N R (2SD20EE021)
-Neeharika Naik (2SD20EE022)
-Pratima Prabhu (2SD20EE024)
-Prabhugouda M Bannetti (2SD20EE025)
ACKNOWLEDGEMENT
We sincerely acknowledge the help received from various persons and sources in collecting
data and information in completing the major project phase, satisfactorily. We thank our
parents for their continuous encouragement, motivation, and blessing without which any of
us would not have reached this stage.
We take the immense pleasure to thank our Head of the Department Dr. S. G. ANKALIKI
for permitting us to take on this project.
The great opportunity to express our deep sense of gratitude and affectionate repeat to our
guide Dr. BASAVARAJ S SHALVADI not only for his full support and guidance but also
for his valuable suggestions and help at any time, which led to successful completion of the
major project.
CONTENTS
Abstract
1.1 General
1.2 Literature Survey
1.3 Problem Statement
1.4 Objectives
3.1 Flowchart
5.1 Advantages
5.2 Disadvantages
5.3 Conclusion
5.4 Future Scope
References 19
Appendix 20-24
LIST OF FIGURES
Battery packs, consisting of multiple cells connected in series, power a vast array of devices. However, slight
variations in individual cell capacities and discharge rates can lead to unequal voltage and state of charge
(SOC) over time. Cell balancing is a critical technique that addresses this imbalance. This project explores
the concept of cell balancing in battery packs. This project explains how they redistribute energy to maintain
equivalent SOC across all cells. Finally, it touches upon the benefits of cell balancing, emphasizing its role
in maximizing battery pack performance and longevity. In series-connected cells, the weakest link determines
the overall usable capacity. Cell balancing prevents a single weaker cell from limiting the entire pack's power
output. Imbalanced cells can lead to overcharging or over-discharging of some cells, accelerating their
degradation. Cell balancing maintains equal SOC, promoting longer battery life. Overcharged or overheated
cells pose safety risks. Cell balancing mitigates these risks by keeping all cells within safe voltage and
temperature limits.
Unequal cell voltages can affect the overall performance of the battery pack. Cell balancing ensures
consistent voltage across cells, leading to smoother and more reliable power delivery.
Implementation of cell balancing using Battery Management System
CHAPTER 1
INTRODUCTION
1.1 General
In the realm of energy storage systems, battery management holds paramount importance for ensuring the
longevity, efficiency, and safety of battery packs. Among the critical functionalities of a Battery Management
System (BMS), cell balancing stands out as a fundamental process to optimize the performance and lifespan
of battery cells within a pack. This introduction aims to elucidate the implementation of cell balancing within
a BMS framework, delving into its significance, methods, and benefits. Cell balancing addresses the inherent
variability among individual battery cells within a pack, which can arise due to manufacturing discrepancies,
operational conditions, or aging effects. This variability manifests as differences in cell voltage, capacity, and
internal resistance, leading to uneven charging and discharging across the battery pack. Left unattended, these
imbalances can accelerate degradation, compromise safety, and diminish overall pack performance. Cell
balancing is seamlessly integrated into the broader functionality of a Battery Management System (BMS).
The BMS continuously monitors the voltage, temperature, and SOC of individual cells, utilizing sophisticated
algorithms to determine the need for cell balancing. Upon detection of imbalances exceeding predefined
thresholds, the BMS initiates balancing operations to ensure optimal cell performance and pack longevity. In
conclusion, cell balancing constitutes a crucial aspect of modern battery management systems, playing a
pivotal role in optimizing the performance, safety, and longevity of battery packs. Through the judicious
implementation of balancing techniques within BMS frameworks, manufacturers and users alike can unlock
the full potential of energy storage systems while ensuring reliability and safety in diverse applications.
[1] Analysis of Cell Balancing Techniques in BMS For Electric Vehicle Amar Nath; Bhooshan
Rajpathak 2022 International Conference on Intelligent Controller and Computing for Smart
Power (ICICCSP).
This paper discusses different cell balancing methods used in EV BMS. It was presented at the
International Conference on Intelligent Controller and Computing for Smart Power (ICICCSP) in 22.
The focuses on analyzing the pros and cons of various Cell balancing techniques.
[2] Evaluation and Comparative Study of Cell Balancing Methods for Lithium-Ion Batteries
2021 Used in Electric Vehicles Department of Electrical and Electronics Engineering, Amrita
School of Engineering, Bengaluru, Amrita Vishwa Vidyapeetham, India.
The paper has proposed a system which is very effective, which evaluates and compares different cell
balancing methods specifically for Lithium-Ion batteries, the most common type in EVs. It dives
deeper into the performance of each technique, comparing factors like balancing speed and efficiency.
[3] A Comparative Analysis of Cell Balancing Techniques for Battery Management System 2022
Tejaswini S, Subhash Kumar N, Surakshitha P, Swarna K R, Varshitha H M International
Research Journal of Engineering and Technology (IRJET).
This paper offers a comparative analysis of cell balancing techniques for BMS in general, which might
include applications beyond EVs. It was published in the International Research Journal of
Engineering and Technology (IRJET). This paper likely explores the advantages and disadvantages
of different balancing methods.
The cell balancing techniques in electric vehicles (EVs) addresses the vital need to maintain consistent state
of charge (SoC) within EV battery packs for safety, longevity, and performance. However, a comprehensive
evaluation framework for the diverse array of cell balancing methods is lacking. It also examines their impact
on battery pack efficiency, lifespan, and thermal management. By considering emerging technologies like
advanced chemistries, this study aims to provide guidance for EV advancement and sustainability.
1.4 Objectives
The objectives of this project are:
• To obtain the voltage level, SOC of individual cells, power rating of battery pack using ESP-32 and
BMS module.
• To establish wireless communication to transmit data of SOC of individual cells to a central server.
• To achieve balanced condition of all individual cells.
• To develop an alert system to notify operators about abnormal conditions, aiding in timely response.
CHAPTER 2
METHODOLOGY
Battery Sensor likely refers to three separate voltage sensors, one for each of the three batteries. These sensors
would measure the voltage of each cell. Current Sensor: This block measures the current flowing into or out
of the battery pack. ESP32 is an ESP32 microcontroller, which is a low-power, Wi-Fi and Bluetooth enabled
microcontroller. It would be responsible for reading the voltage and current sensor data and controlling the
other components. Regulator refers to a voltage regulator, which supplies a stable voltage to the ESP32
microcontroller and other circuitry. An LCD screen is used to display the voltage and current measurements.
The server block likely refers to a cloud-based platform, such as ThingSpeak, where the data from the ESP32
microcontroller can be stored and visualized. The application block likely refers to a software application that
can be used to view the data stored on the server. For instance, an application on a smartphone could be used
to monitor the health of the batteries.
Overall, this system appears designed to monitor the voltage and current of a 3-cell Li-ion battery pack. It
would not actively balance the cells, but it could be used to identify any cells that are significantly different
in voltage from the others. This information could then be used to manually balance the cells using an external
balancing circuit.
The ESP32 controller continuously monitors the voltage of each cell in the series-connected Li-ion battery
pack using a voltage divider circuit. It compares these voltages to a preset threshold. If a cell falls below the
threshold, the ESP32 triggers charging for that cell until all cells reach a balanced state of charge.
Additionally, a buzzer alerts when a cell's voltage reaches critically low levels. The ESP-32 not only measures
individual cell voltage but also estimates their state of charge (SoC) and calculates the total pack voltage by
summing the individual cell voltages. Finally, considering the load's current rating, the system calculates the
total power consumption by multiplying the total pack voltage by the load current.
1) ESP-WROOM-32:
The board which I have has 30 Pins (15 pins on each side). There are some board with 36 Pins and some with
slightly less Pins. So, double check the pins before making connections or even powering up the board.
• ESP-WROOM-32 Module
• Two rows of IO Pins (with 15 pins on each side)
• CP2012 USB – UART Bridge IC
• micro–USB Connector (for power and programming)
• AMS1117 3.3V Regulator IC
• Enable Button (for Reset)
• Boot Button (for flashing)
• Power LED (Red)
• User LED (Blue – connected to GPIO2)
• Some passive components
The LCD panel used in this block interfaced with micro-controller through output port. This is a 16 character
× 2Line LCD module, capable of display numbers, characters, and graphics. The display contains two internal
byte-wide registers, one for commands (RS=0) and the second for character to be displayed (RS=1). It also
contains a user programmed Ram area (the character RAM) character that can be formed using dot matrix
that can be programmed to generate any desired. Two distinguished between these areas, the hex command
byte will be signified that the display RAM address 00h is chosen
Connection to a PC parallel port is mostly simple. These displays can handle eight-bit input directly. They
also need two extra lines to control which kind of data has just arrived and when the data is meant to be stable.
Those signals are also called RS (Register Select, instruction or data register) and EN (enable).
So it has to control ten data lines (8 bits + RS + EN) and one common ground (GND) line, which make eleven
lines to the parallel port. Data read back is not supported by the driver and so it does not require extra line for
this. The following table shows the needed connection.
A light-emitting diode (LED) is a semiconductor light source. LEDs are used as indicator lamps in many
devices and are increasingly used for other lighting.
The LED consists of a chip of semiconducting material doped with impurities to create a p-n junction. As in
other diodes, current flows easily from the p-side, or anode, to the n-side, or cathode, but not in the reverse
direction. Charge-carriers—electrons and holes—flow into the junction from electrodes with different
voltages. When an electron meets a hole, it falls into a lower energy level, and releases energy in the form of
a photon.
4) LM7805:
The MC78XX/LM78XX/MC78XXA series of three terminal positive regulators are available in the TO-
220/D-PAK package and with several fixed output voltages, making them useful in a wide range of
applications. Each type employs internal current limiting, thermal shut down and safe operating area
protection, making it essentially indestructible. If adequate heat sinking is provided, they can deliver over 1A
output current. Although designed primarily as fixed voltage regulators, these devices can be used with
external components to obtain adjustable voltages and currents.
• Output Current up to 1A
• Output Voltages of 5, 6, 8, 9, 10, 12, 15, 18, 24V
• Thermal Overload Protection
• Short Circuit Protection
• Output Transistor Safe Operating Area Protection.
Power supply is a reference to a source of electrical power. A device or system that supplies electrical or
other types of energy to an output load or group of loads is called a power supply unit or PSU. In this
project, a +5 V DC regulated power supply is derived from the power supply unit designed and
implemented. The Figure shows the circuit diagram designed to get the +5 V DC regulated power supply
for the project. A full-wave rectifier is a device that has two or more diodes arranged so that load current
flows in the same direction during each half cycle of the ac supply.
A DC power supply system, which maintains constant voltage irrespective of fluctuations in the main supply
or variation in the load, is known as Regulated Power supply.
The 7805 IC referred to fixed positive voltage regulator, which provides fixed voltage 5 volts. The 7805
regulator is known as fixed voltage regulator. Fixed –Voltage regulator design has been greatly simplified by
the introduction of 3-terminal regulator ICs such as the 78xx series of positive regulators and the 79xxx series
of negative regulators, which incorporate features such as built-in fold back current limiting and thermal
protection, etc. These ICs are available with a variety of current and output voltages ratings, as indicated by
the ‘xxx’ suffix; current ratings are indicated by the first part of the suffix and the voltage ratings by the last
two parts of the suffix. Thus, a 7805 device gives a 5V positive output at a 1a rating, and a 79L15 device
gives a 15V negative output at a 100mA rating.3-terminal regulators are very easy to use.
The regulators ICs typically give about 60dB of ripple rejection, so 1V of input ripple appears as a mere 1mV
of ripple on the regulated output. A rectified filter and unregulated DC voltage is given to pin of IC regulator.
A bypass capacitor is connected between input and ground to bypass the ripples and oscillations. The output
capacitor is connected between output and ground to improve transient response. The unregulated input is
applied to the IC must be always more than the regulated output.
7) Lithium-Ion Batteries:
Lithium-ion batteries are incredibly popular these days. You can find them in laptops, PDA’s, cell phones
and iPODS. They're so common because, pound for pound, they're some of the most energetic rechargeable
batteries available.
Lithium-ion batteries have also been in the news lately. That’s because these batteries have the ability to burst
into flames occasionally. It's not very common — just two or three battery packs per million have a problem
— but when it happens, it's extreme. In some situations, the failure rate can rise, and when that happens you
end up with a worldwide battery recall that can cost manufacturers millions of dollars.
Voltage measurement is the simplest task that we can perform using Arduino internal ADC.Arduino internal
ADC reference voltage is 5V (Vref=5V) so maximum voltage that we can measure without using external
circuit is 5V. It is having 10-bit resolution, 210=1024 values for 0 to 5v scale. 0V corresponds to 0 ADC
reading and 5V corresponds to 1023. Single ADC value represents 4.88mV i.e 1=4.88mV.
To measure higher voltages than 5V we need external voltage divider to match the ADC requirements, It
converters required measurement voltage in to 0 to 5V scale. It can be created using two resistors as shown
in figure 2.1. Here we are measuring 0 to 50V DC. In this example battery is used as voltage source to be
measured you can measure maximum 50V DC. In market voltage sensors are available these are just voltage
divider circuits.
Where:
Vref=5V
9) ThingSpeak Server:
ThingSpeak is a platform providing various services exclusively targeted for building IoT applications. It
offers the capabilities of real-time data collection, visualizing the collected data in the form of charts, ability
to create plugins and apps for collaborating with web services, social network and other APIs. We will
consider each of these features in detail below.The core element of ThingSpeak is a ‘ThingSpeak Channel’.
A channel stores the data that we send to ThingSpeak and comprises of the below elements:
• 8 fields for storing data of any type - These can be used to store the data from a sensor or from an
embedded device.
• 3 location fields - Can be used to store the latitude, longitude and the elevation. These are very useful for
tracking a moving device and 1 status field - A short message to describe the data stored in the channel.
CHAPTER 3
SOFTWARE REALIZATION
3.1 Flowchart
CHAPTER 4
HARWARE REALIZATION
The hardware model implements a cell balancing system for three 4-volt lithium-ion cells using an ESP32
microcontroller, LCD display, Linear ADC3008 IC, LEDs, voltage divider circuits, and LM7805 voltage
regulators. The system monitors individual cell voltages, calculates State of Charge (SoC), and transmits data
to a ThingSpeak server.
Fig 4.2.1 Experimental results displayed on LCD during unbalanced condition of three individual lithium ion
cells.
Here all three cells have different voltages and states of charge. Cell 3, with a voltage of 2.8 volts which is
below the threshold, triggers a "Cell 3 is Low" message on the LCD, accompanied by a buzzer beep. The
total power is then calculated based on the load current displayed on the LCD.
Fig 4.2.2 Graphical representation of C1, SOC1, C2, SOC2, C3, SOC3, during unbalanced condition.
Cell 3 with a voltage of 2.8 volts which is below the threshold, triggers a "Cell 3 is Low" message on the
LCD. The total power is then calculated based on the load current,its corresponding graphs as appeared in the
ThingSpeak Server.
Fig 4.2.3 Experimental results displayed on LCD during unbalanced condition of three individual lithium ion
cells.
Here all three cells having almost similar voltages and states of charge. The total power is then calculated
based on the load current displayed on the LCD which depicts the balanaced condition for all three Li-ion
cells.
Fig 4.2.4 Graphical representation of C1, SOC1, C2, SOC2, C3, SOC3 for cell balanced condition.
Here all three cells have achieved having almost similar voltages and states of charge, considering the load
current and the total power , graphs are obtained in the ThingSpeak Server.
CHAPTER 5
5.1 Advantages
• Informed Decision-Making: Provides valuable insights for EV manufacturers and researchers to make
informed decisions about selecting the most effective cell balancing techniques.
• Enhanced EV Performance: Helps improve the overall performance, efficiency, and safety of electric
vehicle battery packs.
• Cost Optimization: Allows for cost-effective design choices by identifying the most efficient and
economically viable cell balancing methods.
• Safety Enhancement: Aids in the development of safer EVs by addressing issues related to cell
overcharging, undercharging, and thermal management.
5.2 Disadvantages
• Complexity: The research process can be complex due to the need for diverse testing conditions and
data analysis.
• Rapid Technological Changes: The rapidly evolving EV technology landscape may make it challenging
to keep the study findings up-to-date.
• Limited Generalization: Study results may be specific to the battery types and EV models under
investigation, limiting generalizability.
5.3 Conclusion
• By implementing the outlined system with an ESP-32 microcontroller, a BMS module, and wireless
communication, this system establishes a robust and informative battery management solution, promoting
optimal battery health, performance, and longevity.
• We can now obtain real-time data on individual cell voltage, State of Charge (SOC), and overall battery
pack power rating. This granular information provides a clear picture of battery health and performance.
• The system facilitates wireless communication, enabling the transmission of individual cell SOC data to
a central server or cloud storage. This allows for remote monitoring and analysis of battery performance.
• The BMS module actively balances individual cells within the battery pack, ensuring all cells operate at
similar levels. This promotes uniform battery degradation and extends overall battery lifespan.
• The system proactively generates alerts for abnormal conditions such as excessive voltage, temperature,
or low SOC. These timely notifications allow operators to take preventive maintenance actions,
minimizing downtime and potential safety hazards.
The future of cell balancing in Battery Management Systems (BMS) is brimming with innovation. Machine
learning algorithms will optimize balancing, reducing wasted energy. Predictive maintenance based on cell
behavior will identify potential issues before they arise. Active balancing circuits with improved components
will minimize power loss, while thermal management systems will ensure efficient heat dissipation during
balancing. To handle the growing complexity of larger battery packs, modular balancing architectures and
wireless communication are being explored. As battery technology advances, BMS will adapt to next-
generation options like solid-state batteries and even handle mixed chemistries within a single pack. These
advancements promise a future of intelligent, efficient, and adaptable cell balancing, maximizing battery
performance, lifespan, and safety for all.
REFERENCES
[1] Analysis of Cell Balancing Techniques in BMS For Electric Vehicle Amar Nath; Bhooshan
Rajpathak 2022 International Conference on Intelligent Controller and Computing for Smart
Power (ICICCSP).
[2] Evaluation and Comparative Study of Cell Balancing Methods for Lithium-Ion Batteries 2021
Used in Electric Vehicles Department of Electrical and Electronics Engineering, Amrita School
of Engineering, Bengaluru, Amrita Vishwa Vidyapeetham, India.
[3] A Comparative Analysis of Cell Balancing Techniques for Battery Management System 2022
Tejaswini S, Subhash Kumar N, Surakshitha P, Swarna K R, Varshitha H M International
Research Journal of Engineering and Technology (IRJET).
APPENDIX
#include<LiquidCrystal_I2C.h>
#include <mcp3008.h>
#include <WiFi.h>
String apiKey = "92S1Z2DSF7127QPT"; // Enter your Write API key from ThingSpeak
const char *ssid = "ESP32"; // // replace with your wifi ssid and wpa2 key
const char *pass = "123456789"; //
const char* server = "api.thingspeak.com";
WiFiClient client;
int V_disp1 = 0;
int V_disp2 = 0;
int V_disp3 = 0;
float C1, C2, C3;
float SOC1, SOC2, SOC3;
int Buzzer = 27;
int pulse = 0, Unit = 0, Amount = 0, disp_amount = 0;
volatile int flag = 0;
const int sensorIn = 34; // pin where the OUT pin from sensor is connected on Arduino
int mVperAmp = 185; // this the 5A version of the ACS712 -use 100 for 20A Module and 66 for 30A
Module
int Watt = 0;
double Voltage = 0;
double VRMS = 0;
double AmpsRMS = 0;
void ReadVoltage1()
{
// V_disp = mcp.analogRead(0);
V_disp1 = mcp.analogRead(0);
C1 = ((V_disp1 * 15.0f) / 1023.0f);
if(C1 > 4.1) C1 = 4.1;
void ReadVoltage3()
{
// V_disp = mcp.analogRead(0);
V_disp3 = mcp.analogRead(2);
C3 = ((V_disp3 * 15.0f) / 1023.0f);
if(C3 > 4.1) C3 = 4.1;
SOC3 = (C3 * 100.0) / 4.1;
Serial.println("Voltage 3: " + String(C3));
Serial.println("SoC 3: " + String(SOC3));
}
void ReadCurrent()
{
Voltage = getVPP();
VRMS = (Voltage ) * 0.707; //root 2 is 0.707
AmpsRMS = ((VRMS * 1000) / mVperAmp) ; //0.3 is the error I got for my sensor
Serial.print(AmpsRMS);
Serial.print(" Amps RMS --- ");
// Watt = (AmpsRMS * 240 / 1.2);
// note: 1.2 is my own empirically established calibration factor
// as the voltage measured at D34 depends on the length of the OUT-to-D34 wire
// 240 is the main AC power voltage – this parameter changes locally
float getVPP()
{
float result;
int readValue; // value read from the sensor
int maxValue = 0; // store max value here
int minValue = 1023; // store min value here ESP32 ADC resolution
return result;}
void PostData()
{
if (client.connect(server, 80)) // "184.106.153.149" or api.thingspeak.com
{
postStr += String(C1+C2+C3);
postStr += "&field8=";
postStr += String(AmpsRMS);
// postStr += "\r\n\r\n";
Serial.println(postStr);
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
Serial.println(postStr);
Serial.println("%. Send to Thingspeak.");
delay(200);
Serial.println(client.readStringUntil('\n')); }
client.stop();}
void LCDFun(String MSG1, String MSG2 , int DELAY,int buzzstat)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(MSG1);
lcd.setCursor(0, 1);
lcd.print(MSG2);
if(buzzstat == 1) digitalWrite(Buzzer , HIGH);
delay(DELAY);
digitalWrite(Buzzer , LOW);}
void setup()
{
Serial.begin(9600);
pinMode(Buzzer , OUTPUT);
digitalWrite(Buzzer , LOW);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print(" BMS ");
lcd.setCursor(0, 1);
lcd.print(" SYSTEM ");
mcp.begin(_SCLK, _MISO, _MOSI, _SS);
delay(1000);
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");}
Serial.println("");
Serial.println("WiFi connected");}
void loop()
{
ReadVoltage1();
LCDFun("C1: "+String(C1)+"VDC","SoC 1: "+String(SOC1)+"%",1500,0);
if(SOC1 < 70) LCDFun("Cell 1 is LOW","",1500,1);
ReadVoltage2();
LCDFun("C2: "+String(C2)+"VDC","SoC 2: "+String(SOC2)+"%",1500,0);
if(SOC2 < 70) LCDFun("Cell 2 is LOW","",1500,1);
ReadVoltage3();
LCDFun("C3: "+String(C3)+"VDC","SoC 3: "+String(SOC3)+"%",1500,0);
if(SOC3 < 70) LCDFun("Cell 3 is LOW","",1500,1);
ReadCurrent();
float TotalV = C1 + C2 + C3;
float TotalP = TotalV * AmpsRMS;
}