[go: up one dir, main page]

0% found this document useful (0 votes)
19 views61 pages

Ilovepdf - Merged 1

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 61

A

MINI PROJECT REPORT


On
IOT BASED BATTERY MONITORING SYSTEM FOR ELECTRIC VEHICLES
In partial fulfillment of the requirement for the award of the degree of

SUBMITTED BY
LUNAVATH SURYA VAMSHINATH 21641A0237
MOHAMMAD HAMDU 22645A0232
SAMARLA ARAVIND 22645A0243
KONGARA RAKESH 21641A0258
GODISHALA HEMANTH KUMAR 21641A0244

Under the guidance of


Dr.V.SATYANARAYANA
Associate Professor

DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING


VAAGDEVI COLLEGE OF ENGINEERING
(UGC Autonomous, Accredited by NBA, Accredited by NAAC with “A”)
Bollikunta, Khila Warangal (Mandal), Warangal Urban-506 005(T.S) 2024-2025
VAAGDEVI COLLEGE OF ENGINEERING
(UGC Autonomous, Accredited by NBA, Accredited by NAAC with “A”)
Bollikunta, Khila Warangal (Mandal), Warangal Urban-506 005(T.S)
DEPARTMENT OF ELECTRICALAND ELECTRONICS ENGINEERING

CERTIFICATE
This is to certify that the mini project report entitled “IOT BASED BATTERY MONITORING
SYSTEM FOR ELECTRIC VEHICLES” that is being submitted by LUNAVATH SURYA
VAMSHINATH (21641A0237) , MOHAMMAD HAMDU (22645A0232), SAMARLA ARAVIND
(22645A0243), KONGARA RAKESH (21641A0258), GODISHALA HEMANTH KUMAR
(21641A0244), of final year B.Tech (EEE) during the academic year (2024-25) in the partial fulfilment
of the requirements for the award of the bachelor degree from Jawaharlal Nehru Technological
University, Hyderabad, T.S.

Project Guide Co-Ordinator Head of the Department


ACKNOWLEDGEMENT

This mini project has been carried out in the department of Electrical Engineering of Vaagdevi College of
Engineering, Bollikunta, Warangal. Many people have helped me in the realization of this work and I
would like this opportunity to express my gratitude to all of them.
I am deeply grateful to Mr. P. Purna Chander Rao, Head of the Department (EEE) for his
constant support. I also express my sincere thanks to Supervisor Dr. V. Sathyanarayana for giving me
the opportunity to go further in studying my work. I would like to thank my Project Coordinator
Mrs K.Shravani for broadening my knowledge about.
I wish to express my gratitude to teaching & non-teaching staff of my Electrical and Electronics
Engineering department for their valuable corrections and comments.
I am grateful to the Principal and Vice Principal, Deans and Management of Vaagdevi College of
Engineering of providing all the facilities before completing this mini project work “IOT BASED
BATTERY MONITORING SYSTEM FOR ELECTRIC VECHILES” Special thanks to my family
and friends for supporting and encouraging me during the conduction of the mini project work.
Submitted by
LUNAVATH SURYA VAMSHINATH 21641A0237
MOHAMMAD HAMDU 22645A0232
SAMARLA ARAVIND 22645A0243
KONGARA RAKESH 21641A0258
GODISHALA HEMANTH KUMAR 21641A0244
DECLARATION

We declare that the work reported in the project entitled “ IOT BASED IOT BASED

BATTERY MONITORING SYSTEM FOR ELECTRIC VEHICLES ” is a record


of work done by us in partial fulfillment for the award for the Degree in Bachelor of Technology in
Electrical and Electronics Engineering, Vaagdevi college of engineering affiliated by JNTUH,
accredited by NBA, under the guidance of Dr.V.SATYANARAYANA Associate Professor, EEE
department. We hereby declare that the project work bears no resemblance to any on his project
submitted at Vaagdevi college of engineering or any on his college/university for the award of degree.

Submitted by
LUNAVATH SURYA VAMSHINATH 21641A0237
MOHAMMAD HAMDU 22645A0232
SAMARLA ARAVIND 22645A0243
KONGARA RAKESH 21641A0258
GODISHALA HEMANTH KUMAR 21641A0244
ABSTRACT
This project proposes an Internet of Things (IoT) enabled battery monitoring system for electric
vehicles, providing real-time state of charge (SOC) estimation and health diagnosis. The system
integrates advanced sensors, IoT connectivity, and machine learning algorithms to accurately predict
battery capacity, voltage, and temperature. Our system enables remote monitoring, reducing the need
for physical inspections and improving vehicle safety. Experimental results show high accuracy in SOC
estimation and detection of battery degradation, demonstrating the effectiveness of our loT-based
approach in enhancing electric vehicle performance and longevity.
CONTENTS

CHAPTER NO CHAPTER NAME PAGE NO

01 INTRODUCTION TO EMBEDDED SYSTEMS 03

1.1 APPLICATIONS OF EMBEDDED SYSTEMS 04

1.2 CHARACTERISTICS OF EMBEDDED SYSTEMS 05

1.3 PROCESSORS IN EMBEDDED SYSTEMS 05

1.4 DEBUGGING IN EMBEDDED SYSTEMS 06

1.5 RELIABILITY 08

1.6 TRACING 08

02 IOT BASED FAULT RELAY OPERATION 09-10

03 SOFTWARE REQUIREMENTS 11-20

3.1 INTRODUCTION TO ARDUINO IDE 11-12

3.1.1 FUNCTIONS 13

3.1.2 VOID SETUP 14

3.1.3 VOID LOOP 14

3.2 INTRODUCTION ARDUINO LIBRARIES 15

3.2.1 HOW TO INSTALL LIBRARY 15

3.3 HOW TO CONNECT ARDUINO BOARD 17

3.4 HOW TO UPLOAD PROGRAM 17-20

04 HARDWARE REQUIREMENTS 21-44

4.1 ESP32 WROOM MODULE 21-26

4.2 LCD DISPLAY 26-29

1
4.3 BUZZER 29-31

4.4 RESISTORS 31-33

4.5 LI ION BATTERY 34-37

4.6 CHARGING MODULE 37-39

4.7 ADAPTER 40

4.8 JUMPER WIRES 41-44

05 CIRCUIT DIAGRAM, PROGRAM CODE 45

5.1 CIRCUIT DIAGRAM 45

5.2 PROGRAM CODE 46-51

06 RESULT OF THE PROJECT 52

6.1 ADVANTAGES 52

6.2 APPLICATIONS 53

07 CONCLUSION AND FUTURE SCOPE 54

7.1 CONCLUSION 54

7.2 FUTURE SCOPE 55

08 REFERENCES 56

2
CHAPTER 1

INTRODUCTION TO EMBEDDED SYSTEMS

Embedded Technology is now in its prime and the wealth of knowledge available is
mind blowing. However, most embedded systems engineers have a common complaint.
There are no comprehensive resources available over the internet which deal with the various
design and implementation issues of this technology. Intellectual property regulations of
many corporations are partly to blame for this and also the tendency to keep technical know-
how within a restricted group of researchers.
An embedded computer is frequently a computer that is implemented for a particular
purpose. In contrast, an average PC computer usually serves a number of purposes: checking
email, surfing the internet, listening to music, word processing, etc... However, embedded
systems usually only have a single task, or a very small number of related tasks that they are
programmed to perform.
Every home has several examples of embedded computers. Any appliance that has a
digital clock, for instance, has a small embedded micro-controller that performs no other task
than to display the clock. Modern cars have embedded computers onboard that control such
things as ignition timing and anti-lock brakes using input from a number of different sensors.
Embedded computers rarely have a generic interface, however. Even if embedded
systems have a keypad and an LCD display, they are rarely capable of using many different
types of input or output. An example of an embedded system with I/O capability is a security
alarm with an LCD status display, and a keypad for entering a password.
An embedded system can be defined as a control system or computer system designed
to perform a specific task. Common examples of embedded systems include MP3 players,
navigation systems on aircraft and intruder alarm systems. An embedded system can also be
defined as a single purpose computer.
Most embedded systems are time critical applications meaning that the embedded
system is working in an environment where timing is very important: the results of an
operation are only relevant if they take place in a specific time frame. An autopilot in an
aircraft is a time critical embedded system. If the autopilot detects that the plane for some
reason is going into a stall then it should take steps to correct this within milliseconds or there
would be catastrophic result

3
1.1 APPLICATIONS OF EMBEDDED SYSTEM
Embedded systems are commonly found in consumer, cooking, industrial,
automotive, medical, commercial and military applications.
Telecommunications systems employ numerous embedded systems from telephone
switches for the network to cell phones at the end user. Computer networking uses
dedicated routers and network bridges to route data.
Consumer electronics include MP3 players, mobile phones, videogame
consoles, digital cameras, GPS receivers, and printers. Household appliances, such
as microwave ovens, washing machines and dishwashers, include embedded systems to
provide flexibility, efficiency and features. Advanced HVAC systems use
networked thermostats to more accurately and efficiently control temperature that can change
by time of day and season. Home automation uses wired- and wireless-networking that can
be used to control lights, climate, security, audio/visual, surveillance, etc., all of which use
embedded devices for sensing and controlling.
Transportation systems from flight to automobiles increasingly use embedded
systems. New airplanes contain advanced avionics such as inertial guidance
systems and GPS receivers that also have considerable safety requirements. Various electric
motors brushless DC motors, induction motors and DCmotors use electric/electronic motor
controllers. Automobiles, electric vehicles, and hybrid vehicles increasingly use embedded
systems to maximize efficiency and reduce pollution. Other automotive safety systems
include anti-lock braking system (ABS), Electronic Stability Control (ESC/ESP), traction
control (TCS) and automatic four-wheel drive.
Medical equipment uses embedded systems for vital signs monitoring, electronic
stethoscopes for amplifying sounds, and various medical imaging (PET, SPECT, CT,
and MRI)

for non-invasive internal inspections. Embedded systems within medical equipment


are often powered by industrial computers.
Embedded systems are used in transportation, fire safety, safety and security, medical
applications and life critical systems, as these systems can be isolated from hacking and thus,
be more reliable. For fire safety, the systems can be designed to have greater ability to handle
higher temperatures and continue to operate. In dealing with security, the embedded systems
can be self-sufficient and be able to deal with cut electrical and communication systems.

4
1.2 CHARACTERISTICS OF EMBEDDED SYSTEM
Embedded systems are designed to do some specific task, rather than be a general-
purpose computer for multiple tasks. Some also have real-time performance constraints that
must be met, for reasons such as safety and usability; others may have low or no performance
requirements, allowing the system hardware to be simplified to reduce costs.
Embedded systems are not always standalone devices. Many embedded systems consist
of small parts within a larger device that serves a more general purpose. For example,
the Gibson Robot Guitar features an embedded system for tuning the strings, but the overall
purpose of the Robot Guitar is, of course, to play music. Similarly, an embedded system in
an automobile provides a specific function as a subsystem of the car itself.
Embedded systems range from no user interface at all, in systems dedicated only to one
task, to complex graphical user interfaces that resemble modern computer desktop operating
systems. Simple embedded devices use buttons, LEDs, graphic or character LCDs (HD44780
LCD for example) with a simple menu system.
More sophisticated devices which use a graphical screen with touch sensing or screen-
edge buttons provide flexibility while minimizing space used: the meaning of the buttons can
change with the screen, and selection involves the natural behavior of pointing at what is
desired. Handheld systems often have a screen with a "joystick button" for a pointing device.
Some systems provide user interface remotely with the help of a serial (e.g. RS-
232, USB, I²C, etc.) or network (e.g. Ethernet) connection. This approach gives several
advantages: extends the capabilities of embedded system, avoids the cost of a display,
simplifies BSP and allows one to build a rich user interface on the PC. A good example of
this is the combination of an embedded web server running on an embedded device (such as
an IP camera) or a network router. The user interface is displayed in a web browser on a PC
connected to the device, therefore needing no software to be installed.

1.3 PROCESSORS IN EMBEDDED SYSTEMS


Embedded processors can be broken into two broad categories. Ordinary microprocessors
Embedded processors can be broken into two broad categories. Ordinary microprocessors
(μP) use separate integrated circuits for memory and peripherals. Microcontrollers (μC) have
on-chip peripherals, thus reducing power consumption, size and cost. In contrast to the
personal computer market, many different basic CPU architectures are used, since software is

5
custom-developed for an application and is not a commodity product installed by the end
user. Both Von Neumann as well as various degrees of Harvard architectures are
used. RISC as well as non-RISC processors are found. Word lengths vary from 4-bit to 64-
bits and beyond, although the most typical remain 8/16-bit. Most architecture come in a large
number of different variants and shapes, many of which are also manufactured by several
different companies.
Numerous microcontrollers have been developed for embedded systems use. General-
purpose microprocessors are also used in embedded systems, but generally require more
support circuitry than microcontrollers. (P) use separate integrated circuits for memory and
peripherals. Microcontrollers (μC) have on-chip peripherals, thus reducing power
consumption, size and cost. In contrast to the personal computer market, many different
basic CPU architectures are used, since software is custom-developed for an application and
is not a commodity product installed by the end user. Both Von Neumann as well as various
degrees of Harvard architectures are used. RISC as well as non-RISC processors are found.
Word lengths vary from 4-bit to 64-bits and beyond, although the most typical remain 8/16-
bit. Most architecture come in a large number of different variants and shapes, many of which
are also manufactured by several different companies.
Numerous microcontrollers have been developed for embedded systems use. General-
purpose microprocessors are also used in embedded systems, but generally require more
support circuitry than microcontrollers.

1.4 DEBUGGING IN EMBEDDED SYSTEMS


Embedded debugging may be performed at different levels, depending on the
facilities available. The different metrics that characterize the different forms of embedded
debugging are: does it slow down the main application, how close is the debugged system or
application to the actual system or application, how expressive are the triggers that I can set
for debugging (e.g., I want to inspect the memory when a particular program counter value is
reached), and what can I inspect in the debugging process (such as, only memory, or memory
and registers, etc.).
From simplest to most sophisticated they can be roughly grouped into the following areas:
Interactive resident debugging, using the simple shell provided by the embedded
operating system (e.g. Forth and Basic)

6
External debugging using logging or serial port output to trace operation using either
a monitor in flash or using a debug server like the Remedy Debugger which even works for
heterogeneous multicore systems.
An in-circuit debugger (ICD), a hardware device that connects to the microprocessor
via a JTAG or Nexus interface. This allows the operation of the microprocessor to be
controlled externally, but is typically restricted to specific debugging capabilities in the
processor.
An in-circuit emulator (ICE) replaces the microprocessor with a simulated equivalent,
providing full control over all aspects of the microprocessor.
A complete emulator provides a simulation of all aspects of the hardware, allowing all
of it to be controlled and modified, and allowing debugging on a normal PC. The downsides
are expense and slow operation, in some cases up to 100 times slower than the final system.
For SoC designs, the typical approach is to verify and debug the design on an FPGA
prototype board. Tools such as Certus are used to insert probes in the FPGA RTL that make
signals available for observation. This is used to debug hardware, firmware and software
interactions across multiple FPGA with capabilities similar to a logic analyser.
Unless restricted to external debugging, the programmer can typically load and run
software through the tools, view the code running in the processor, and start or stop its
operation. The view of the code may be as HLL source-code, assembly code or mixture of
both.
Because an embedded system is often composed of a wide variety of elements, the
debugging strategy may vary. For instance, debugging a software- (and microprocessor-)
centric embedded system is different from debugging an embedded system where most of the
processing is performed by peripherals (DSP, FPGA, and co-processor). An increasing
number of embedded systems today use more than one single processor core. A common
problem with multi-core development is the proper synchronization of software execution. In
such a case, the embedded system design may wish to check the data traffic on the busses
between the processor cores, which requires very low-level debugging, at signal/bus level,
with a analyser, for instance.

7
1.5 RELIABILITY
Embedded systems often reside in machines that are expected to run continuously for
years without errors, and in some cases recover by themselves if an error occurs. Therefore,
the software is usually developed and tested more carefully than that for personal computers,
and unreliable mechanical moving parts such as disk drives, switches or buttons are avoided.
Specific reliability issues may include :
• The system cannot safely be shut down for repair, or it is too inaccessible to repair.
Examples include space systems, undersea cables, navigational beacons, bore-hole
systems, and automobiles.
• The system must be kept running for safety reasons. "Limp modes" are less tolerable.
Often backups are selected by an operator. Examples include aircraft navigation, reactor
control systems, safety-critical chemical factory controls, train signals.
• The system will lose large amounts of money when shut down: Telephone switches,
factory controls, bridge and elevator controls, funds transfer and market making,
automated sales and service.
A variety of techniques are used, sometimes in combination, to recover from errors—
both software bugs such as memory leaks, and also soft errors in the hardware:

1.6 TRACING
Real-time operating systems (RTOS) often supports tracing of operating system
events. A graphical view is presented by a host PC tool, based on a recording of the system
behaviour The trace recording can be performed in software, by the RTOS, or by special
tracing hardware. RTOS tracing allows developers to understand timing and performance
issues of the software system and gives a good understanding of the high-level system
behaviours. Commercial tools QUADOURS or IAR Systems exists.

8
CHAPTER 2
IOT BASED BATTERY MONITORING SYSTEM FOR
ELECTRIC VEHICLES

The increasing reliance on battery-powered devices and systems, from smartphones to


electric vehicles, has underscored the importance of effective battery management. Efficient
battery monitoring is crucial for ensuring the longevity, performance, and safety of battery-
operated systems. One key aspect of battery management is the continuous observation of
critical parameters such as temperature, voltage, and current. These parameters provide
insight into the health of a battery, alerting users to potential faults or inefficiencies that can
lead to degraded performance or even hazardous situations.
In the context of industrial applications, renewable energy storage systems, and electric
vehicles, the proper functioning of batteries is paramount. High temperatures, for instance,
can cause irreversible damage to a battery’s internal components, while an unstable voltage
or overcurrent condition can compromise the safety and efficiency of the entire system. Thus,
maintaining an optimal operating range for these variables is essential for preventing
premature battery failures and ensuring maximum efficiency.
The Internet of Things (IoT) revolution has transformed how data is collected, analyzed, and
used, creating new possibilities for real-time monitoring of remote systems. In battery
management, IoT allows for the seamless transmission of crucial battery metrics—such as
temperature, voltage, and current—to a cloud-based platform, where they can be analyzed
and accessed via mobile devices. This enables users to monitor the health of their battery
systems from anywhere, anytime, thus making preventive maintenance more feasible and
reducing the likelihood of unexpected failures. Furthermore, the ability to receive instant
alerts when parameters exceed safe thresholds enhances safety and reliability.
This documentation outlines the development of a Battery Management IoT System,
designed to continuously monitor temperature, voltage, and current, and transmit this data to
a mobile interface via an IoT platform. This system utilizes a microcontroller integrated with
relevant sensors to capture real-time data, which is then transmitted using a Wi-Fi
communication module. Users can visualize this information on their mobile devices,
enabling proactive battery maintenance and ensuring optimal battery performance.
The system focuses on three primary metrics:

9
1. Temperature: Monitoring battery temperature is crucial because excessive heat can
significantly reduce battery life and, in extreme cases, result in dangerous situations,
including thermal runaway.
2. Voltage: Battery voltage indicates the charge level and general health of the battery.
Consistently low or high voltage readings can signify issues such as overcharging,
undercharging, or cell imbalance.
3. Current: Tracking the current drawn by a load from the battery is important for
assessing power consumption and identifying any irregularities such as overcurrent,
which can indicate system overloads or faults.
The integration of these sensors within the IoT framework allows users to receive timely
information on their battery system’s condition and take necessary action when thresholds are
breached. This real-time data can be critical in applications such as solar power systems,
where batteries store energy and must operate efficiently over long periods.
This project utilizes a microcontroller platform (such as Arduino or ESP32) for its flexibility,
low cost, and compatibility with a wide range of sensors and IoT communication modules. A
Wi-Fi module enables the system to communicate with an IoT cloud platform, such as
Arduino IoT Cloud or any similar service, where data is processed and displayed. The end-
user can then access this data through a user-friendly mobile interface, which presents real-
time readings and historical data trends in an easy-to-understand format.
By implementing this IoT-based battery management system, users can benefit from remote
monitoring capabilities that offer convenience, safety, and efficiency improvements. The
system reduces the need for manual checks and enhances battery reliability by providing
early warning signals for potential failures. This documentation covers the design,
implementation, and functioning of this innovative solution, ensuring that users have a
comprehensive understanding of how to develop, deploy, and benefit from this IoT-based
battery management system.
In today’s connected world, IoT-based battery management solutions are increasingly
important for various applications ranging from portable electronics to large-scale energy
storage systems. As technology advances and energy demands grow, the need for efficient,
intelligent battery management systems becomes more apparent. This project seeks to address
this need by providing a scalable, real-time monitoring solution that is both cost-effective and
easy to implement, offering significant advantages over traditional battery management
systems.

10
CHAPTER 3

SOFTWARE REQUIREMENTS

Software used in this project for uploading code onto Arduino is Arduino IDE.

3.1 INTRODUCTION TO ARDUINO IDE


IDE stands for Integrated Development Environment. Pretty fancy sounding, and
should make you feel smart any time you use it. The IDE is a text editor-like program that
allows you to write Arduino code.When you open the Arduino program, you are opening the
IDE. It is intentionally streamlined to keep things as simple and straightforward as possible.
When you save a file in Arduino, the file is called a sketch – a sketch is where you save the
computer code you have written.The coding language that Arduino uses is very much like
C++ (―see plus plus‖), which is a common language in the world of computing. The code you
learn to write for Arduino will be very similar to the code you write in any other computer
language – all the basic concepts remain the same – it is just a matter of learning a new
dialect should you pursue other programming languages.

11
The code you write is ―human readable‖, that is, it will make sense to you (sometimes), and
will be organized for a human to follow. Part of the job of the IDE is to take the human
readable code and translate it into machine-readable code to be executed by the Arduino. This
process is called compiling.The process of compiling is seamless to the user. All you have to
do is press a button. If you have errors in your computer code, the compiler will display an
error message at the bottom of the IDE and highlight the line of code that seems to be the
issue. The error message is meant to help you identify what you might have done wrong –
sometimes the message is very explicit, like saying, ―Hey – you forget a semicolon‖,
sometimes the error message is vague.Why be concerned with a semicolon you ask? A
semicolon is part of the Arduino language syntax, the rules that govern how the code is
written. It is like grammar in writing. Say for example we didn’t use periods when we wrote
– everyone would have a heck of a time trying to figure out when sentences started and
ended. Or if we didn’t employ the comma, how would we convey a dramatic pause to the
reader?

12
And let me tell you, if you ever had an English teacher with an overactive red pen, the
compiler is ten times worse. In fact – your programs WILL NOT compile without perfect
syntax. This might drive you crazy at first because it is very natural to forget syntax. As you
gain experience programming you will learn to be assiduous about coding grammar.
3.1.1 FUNCTION ( )
Functions are pieces of code that are used so often that they are encapsulated in
certain keywords so that you can use them more easily. For example, a function could be the
following set of instructions…
This set of simple instructions could be encapsulated in a function that we call
WashDog. Every time we want to carry out all those instructions we just type Wash Dog and
voila – all the instructions are carried out.In Arduino, there are certain functions that are used
so often they have been built into the IDE. When you type them, the name of the function
will appear orange. The function pinMode(), for example, is a common function used to
What’s designate the mode of an Arduino pin.the deal with the parentheses following
the function Pin mode? Many functions require arguments to work. An argument is
information the function uses when it runs.For our WashDog function, the arguments might
be dog name and soap type, or temperature and size of a bucket.

13
Pin Mode (13,OUTPUT);
The argument 13 refers to pin 13, and OUTPUT is the mode in which you want the
pin to operate. When you enter these arguments the terminology is called passing. You pass
the necessary information to the functions. Not all functions require arguments, but opening
and closing parentheses will stay regardless though empty.
Notice that the word OUTPUT is blue. There are certain keywords in Arduino that are
used frequently and the colour blue helps identify them. The IDE turns them blue
automatically. Now we won’t get into it here, but you can easily make your own functions in
Arduino, and you can even get the IDE to colour them for you. We will, however, talk about
the two functions used in nearly EVERY Arduino program.
3.1.2 VOID SETUP ( )
The function, setup(), as the name implies, is used to set up the Arduino board. The Arduino
executes all the code that is contained between the curly braces of setup() only once. Typical
things that happen in setup() are setting the modes of pins, startingYou might be wondering
what void means before the function setup(). Void means that the function does not return
information. Some functions do return values – our Wash Dog function might return the
number of buckets it required to clean the dog. The functional Analog Read() returns an
integer value between 0-1023. If this seems a bit odd now, don’t worry as we will cover
every common Arduino function in depth as we continue the course.
Let us review a couple things you should know about setup ()…
1. setup () only runs once.
2. setup () needs to be the first function in your Arduino sketch.
3. setup () must have opened and closing curly braces.
3.1.4 VOID LOOP ( )

You have to love the Arduino developers because the function names are so telling.
As the name implies, all the code between the curly braces in loop () is repeated over and
over again – in a loop. The loop () function is where the body of your program will reside. As
with setup (), the function loop () does not return any values, therefore the word void
precedes it.
Does it seem odd to you that the code runs in one big loop? This apparent lack of
variation is an illusion. Most of your code will have specific conditions lying in wait which
will trigger new actions.

14
If you have a temperature sensor connected to your Arduino for example, then when
the temperature gets to a predefined threshold you might have a fan kick on. The looping
code is constantly checking the temperature waiting to trigger the fan. So even though the
code loops over and over, not every piece of the code will be executed every iteration of the
loop.

3.2 INTRODUCTION ARDUINO LIBRARIES


Libraries are a collection of code that makes it easy for you to connect to a sensor,
display, module, etc. For example, the built-in LiquidCrystal library makes it easy to talk to
character LCD displays. There are hundreds of additional libraries available on the Internet
for download. The built-in libraries and some of these additional libraries are listed in the
reference. To use the additional libraries, you will need to install them.
Arduino libraries are managed in three different places: inside the IDE installation
folder, inside the core folder and in the libraries folder inside your sketchbook. The way
libraries are chosen during compilation is designed to allow the update of libraries present in
the distribution. This means that placing a library in the ―libraries‖ folder in your sketchbook
overrides the other libraries versions.
The same happens for the libraries present in additional cores installations. It is also
important to note that the version of the library you put in your sketchbook may be lower
than the one in the distribution or core folders, nevertheless it will be the one used during
compilation. When you select a specific core for your board, the libraries present in the core’s
folder are used instead of the same libraries present in the IDE distribution folder.
Last, but not least important is the way the Arduino Software (IDE) upgrades itself: all the
files in Programs/Arduino (or the folder where you installed the IDE) are deleted and a new
folder is created with fresh content. This is why we recommend that you only install libraries
to the sketchbook folder so they are not deleted during the Arduino IDE update process.
3.2.1 HOW TO INSTALL A LIBRARY
To install a new library into your Arduino IDE you can use the Library Manager
(available from IDE version 1.6.2). Open the IDE and click to the "Sketch" menu and
then Include Library > Manage Libraries.

15
Then the Library Manager will open and you will find a list of libraries that are already
installed or ready for installation. In this example we will install the Bridge library. Scroll the
list to find it, click on it, then select the version of the library you want to install. Sometimes
only one version of the library is available. If the version selection menu does not appear,
don't worry: it is normal.

16
Finally click on install and wait for the IDE to install the new library. Downloading
may take time depending on your connection speed. Once it has finished, an Installed tag
should appear next to the Bridge library. You can close the library manager. You can now
find the new library available in the Sketch > Include Library menu. If you want to add your
own library to Library Manager, follow these instructions.
3.3 HOW TO CONNECT ARDUINO BOARD
If you're using a serial board, power the board with an external power supply (6 to 25
volts DC, with the core of the connector positive). Connect the board to a serial port on your
computer. On the USB boards, the power source is selected by the jumper between the USB
and power plugs. To power the board from the USB port (good for controlling low power
devices like LEDs), place the jumper on the two pins closest to the USB plug. To power the
board from an external power supply (needed for motors and other high current devices),
place the jumper on the two pins closest to the power plug. Either way, connect the board to a
USB port on your computer. On Windows, the Add New Hardware wizard will open; tell it
you want to specify the location to search for drivers and point to the folder containing the
USB drivers you unzipped in the previous step.
The power LED should go on.

3.4 HOW TO UPLOAD A PROGRAM


The content of circuits and Arduino sketches can vary greatly. Before you get started,
there is one simple process for uploading a sketch to an Arduino board that you can refer
back to.

Follow these steps to upload your sketch:

Connect your Arduino using the USB cable.

The square end of the USB cable connects to your Arduino and the flat end connects to a
USB port on your computer.

Choose Tools –Board - Arduino Uno to find your board in the Arduino menu.

You can also find all boards through this menu, such as the Arduino MEGA 2560 and
Arduino Leonardo.

17
Choose the correct serial port for your board.

You find a list of all the available serial ports by choosing Tools-Serial Port→ comX or
/dev/TTY XXXXX. X marks a sequentially or randomly assigned number. In Windows, if
you have just connected your Arduino, the COM port will normally be the highest number,
such as com 3 or com 15.

Many devices can be listed on the COM port list, and if you plug in multiple Arduinos, each
one will be assigned a new number. On Mac OS X, the /dev/TTY.USB modem number will
be randomly assigned and can vary in length, such as /dev/tty.usbmodem1421 or
/dev/tty.usbmodem262471. Unless you have another Arduino connected, it should be the only
one visible.

Click the Upload button.

This is the button that points to the right in the Arduino environment. You can also use the
keyboard shortcut Ctrl + U for Windows or CMD +U for Mac OS X.

Using Arduino iot Cloud:


With the Arduino IoT Cloud desktop or mobile platform, you can quickly connect, manage
and monitor your devices from anywhere in the world.
Arduino IoT Cloud allows you to automatically create any code to program your device with
- just add a couple of lines to customize it how you want. If you’re new to Arduino don’t
worry there’s example code for hundreds of sensors and actuators.
The following steps will guide you to start using the Arduino IoT Cloud:

Install the Arduino Create Agent plugin.


Check if you have a cloud compatible board. The picture below shows all official Arduino
boards that are compatible.
Create an Arduino account by signing up to Arduino.
Access the Arduino IoT Cloud from any page on arduino.cc by clicking on the bento menu
(9dots) on the top right corner, or you can go directly to the Arduino IoT Cloud. Creating a
Thing

18
The user journey always begins by creating a new Thing. In the Thing overview, we can
choose what device to use, what Wi-Fi network we want to connect to, and create variables
that we can monitor and control.
Next, we need to add a device by clicking on the "Select device" button on the Thing
overview. Here, we choose from any board that we have already been configured, or select
the Configure new device option.
Now we can add our first variable by clicking on the Add variable button. We can choose
name, data type, update the setting and interaction mode for our variable. There are several
data types we can choose from, such as int, float, Boolean, long, char. There are also special
variables, such as Temperature, Velocity, and Luminance that can be used. The variables we
create are automatically generated into a sketch file.
Finally, we need to connect to a Wi-Fi network by simply clicking the Configure button in
the network section. Enter your network credentials and click Save. This information will
also be generated into your sketch file!
Building the Sketch
Now that you are all set up, let’s have a look at the interface!
A special sketch file can now be found in the Sketch tab, which includes all of the
configurations that you have made. When the sketch has been uploaded, it will work as a
regular sketch, but it will also update the Cloud variables that we use!
Additionally, each time we create a variable that has the Interaction Mode enabled, a function
will also be generated. Every time this variable is triggered from the Cloud, it will execute the
code within this function! This means that we can leave most of the code out of the loop()
and only run code when needed.
When we are happy with our sketch, we can upload it to our board, by clicking the upload
button.
After we have successfully uploaded the code, we can open the Serial Monitor tab to view
information regarding our connection. If it is successful, it will print connected to network_
name and connected to cloud.
If it fails to connect, it will print the errors here as well. Now that we have configured the
device & network, created variables, completed the sketch and successfully uploaded the
code, we can move on to the fun part, the dashboard
Creating the dashboard
Dashboards are visual user interfaces for interacting with your boards over the Cloud, and we
can set up many different setups depending on what your IoT project needs.

19
We can access our dashboards by clicking on the Dashboards tab at the top of the Arduino
IoT Cloud interface, where we can create new dashboards, and see a list of dashboards
created for other Things.

If we click on Create new dashboard, we enter a dashboard editor. Here, we can create
something called widgets. Widgets are the visual representation of our variables we create,
and there are many different ones to choose from. Below is an example using several types of
widgets.

When we create widgets, we also need to link them to our variables. This is done by clicking
on a widget we create, selecting a Thing, and selecting a variable that we want to link.

Once it is linked, we can either interact with it, for example a button, or we can monitor a
value from a sensor. As long as our board is connected to the cloud, the values will update
automatically

Arduino Iot Cloud Remote.

20
CHAPTER 4

HARDWARE REQUIREMENTS

1. ESP32 WROOM MODULE

2. LCD DISPLAY

3. BUZZER

4. RESISTORS

5. LI ION BATTERY

6. TYPE C CHARGING MODULE

7. ADAPTER

8. JUMPERS

4.1 ESP32 WROOM MODULE


ESP32 is a series of low-cost, low-power system on a chip microcontroller with
integrated WiFi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica
Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa LX7
dual-core microprocessor or a single-core RISC-V microprocessor and includes built-in
antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and
powermanagement modules. ESP32 is created and developed by Espressif Systems, a
Shanghaibased Chinese company, and is manufactured by TSMC using their 40 nm
process.[2] It is a successor to the ESP8266 microcontroller.
A. System and Memory

ESP32 is a dual-core system with two Harvard Architecture Xtensa LX6 CPUs. All
embedded memory, external memory and peripherals are located on the data bus and/or
the instruction bus of these CPUs. The microcontroller has two cores – PRO_CPU for
protocol and APP_CPU for application, however, the purposes of those are not fixed.
The address space for both data and instruction bus is 4GB and the peripheral address
space is 512KB. Moreover, the embedded memories are 448KB ROM, 520KB SRAM

21
and two 8KB RTC memory. The external memory supports up to four times 16MB Flash
[4].
B. Clock and Timer

ESP32 can use either the internal Phase Lock Loop (PLL) of 320MHz or an external
crystal. It is also possible to use an oscillating circuit as a clock source at 2-40MHz to
generate the master clock CPU_CLK for both CPU cores. This clock can be as high as
160MHz for high performance or lower to TABLE I. MICROCONTROLLES FOR THE
IOT DESIGN [4]-[7] Chip (Module) ESP32 (ESP-WROOM-32)
ESP8266 (ESP8266-12E) CC32 (CC3220MODSF) Xbee (XB2B-WFPS-001) Details:
CPU Tensilica Xtensa
LX6 32 bit Dual-Core at 160/240 MHz Tensilica LX106 32 bit at 80 MHz (up to 160
MHz) ARM CortexM4 at 80 MHz N/A SRAM 520 KB 36 KB available 256 KB N/A
FLASH 2MB (max. 64MB) 4MB (max. 16MB) 1MB (max. 32MB) N/A Voltage 2.2V to
3.6V 3.0V to 3.6V 2.3V to 3.6V 3.14V to 3.46V Operating Current 80 mA average 80
mA average N/A N/A Programmable Free (C, C++, Lua, etc.) Free (C, C++, Lua, etc.) C
(Simple Link SDK) AT and API commands Open source Yes ,No Connectivity: Wi-Fi
802.11 b/g/n 802.11 b/g/n 802.11 b/g/n 802.11 b/g/n Bluetooth® 4.2 BR/EDR + BLE - -
- UART 3 2 2 1 I/O: GPIO 32 17 21 10 SPI 4 2 1 1 I2C 2 1 1 - PWM 8 - 6 - ADC 18
(12-bit) 1 (10-bit) 4 (12-bit) 4 (12-bit) DAC
2 (8-bit) - - - Size 25.5 x 18.0 x 2.8 mm 24.0 x 16.0 x 3.0 mm 20.5 x 17.5 x 2.5 mm 24.0
x 22.0 x 3.0 mm Prize £8 £5 £16 £23 144 reduce the power consumption. All other
clocks, like the APB_CLK for peripherals are driven by the master clock. In addition,
there are several low power clocks like the internal RTC_CLK with a default frequency
of 150kHz and the option to adjust it for deep sleep modes. There are four 64-bit timers
for generic purposes with 16-bit presales with a range from 2 to 65536. Each timer uses
the APB clock, usually at 80MHz. Those timers can count either up or down, be frozen
and trigger events. Besides 4 generic timers there are also timers to drive the PWM
controller. There are 8 high speed and 8 low speed PWM channels, each driven by four
timers [4].
C. Block Diagram and Functions
ESP32 microcontroller structure is designed to operate under the following protocols –
TCP/IP, full

22
802.11 b/g/n/e/I WLAN MAC, and Wi-Fi Direct specification. The microcontroller can
provide Basic Service Set (BSS) STA and SoftAP operations under the Distributed
Control Function (DCF) protocol. It is also support P2P group operation compliant with
the latest Wi-Fi P2P protocol.

ESP32 Block Diagram

ESP32 Wroom Module

23
The ESP32-WROOM is one of the most popular modules in the ESP32 family of
microcontrollers, developed by Espressif Systems. It is a powerful and versatile Wi-Fi and
Bluetooth-enabled chip designed for IoT (Internet of Things) applications. The module
provides a wide range of functionalities that make it ideal for both hobbyist projects and
industrial-grade solutions. Here's an overview of its key features and benefits:
1. Dual-Core Processor
The ESP32-WROOM is equipped with a dual-core Xtensa® 32-bit LX6 microprocessor,
which can run at clock speeds up to 240 MHz. This high-performance processor makes it
capable of handling complex tasks, such as real-time data processing, communication, and
even edge computing applications.
2. Wi-Fi Connectivity
One of the standout features of the ESP32-WROOM is its integrated Wi-Fi (802.11 b/g/n)
capabilities. This allows the module to connect to a local wireless network, communicate
with cloud services, or act as a local web server. Its robust Wi-Fi connectivity makes it ideal
for IoT applications where remote monitoring, control, or data acquisition is required.
3. Bluetooth Integration
In addition to Wi-Fi, the ESP32-WROOM also supports Bluetooth 4.2 (including BLE –
Bluetooth Low Energy). This dual functionality allows developers to create applications that
can communicate with both Wi-Fi networks and nearby Bluetooth devices, expanding the
range of potential use cases. For example, you can develop IoT solutions that use Bluetooth
for local data transfer while using Wi-Fi for cloud connectivity.
4. Power Efficiency
The ESP32-WROOM is designed with low power consumption in mind, featuring multiple
power-saving modes. It can operate in deep sleep, light sleep, and modem sleep modes,
making it suitable for battery-powered applications. This is especially useful for IoT projects
that require long-term deployment in the field, where power efficiency is critical.
5. I/O Pins and Peripherals
The module offers a wide variety of I/O pins and built-in peripherals, including:
• GPIOs: 34 programmable GPIO pins that can be used for digital I/O operations.

• ADC (Analog-to-Digital Converters): 18 ADC channels, allowing the module to read


analog signals from sensors.

• DAC (Digital-to-Analog Converters): Two DAC channels for generating analog signals.

24
• PWM (Pulse Width Modulation): Useful for controlling motors, LEDs, and other
devices.
• UART, I2C, SPI, and I2S: Multiple communication interfaces for connecting various
sensors, displays, and external modules.
6. Memory and Storage
The ESP32-WROOM typically comes with 4 MB of flash memory, although some variants
may offer larger storage. It also includes 520 KB of SRAM, which provides ample memory
for running multiple processes and storing temporary data.
7. Security Features

Security is a top priority in IoT applications, and the ESP32-WROOM includes various built-
in security features such as:
• Hardware encryption: Supports AES, SHA, and RSA encryption to secure
communication.
• Secure Boot: Ensures that only verified firmware is executed on the device.

• Flash encryption: Protects data stored in the flash memory from unauthorized access.
8. Development and Programming
The ESP32-WROOM is supported by a large and active community of developers. It can be
programmed using popular frameworks and languages, including:
• Arduino IDE: The most beginner-friendly option for programming the ESP32, with
extensive libraries and community support.
• Espressif’s ESP-IDF (IoT Development Framework): A more powerful and
flexible option for advanced users who need greater control over their projects.

• MicroPython: A lightweight Python interpreter that allows rapid prototyping.


• PlatformIO: A professional development environment with support for multiple
platforms and libraries.
9. Applications of ESP32-WROOM
The versatility of the ESP32-WROOM allows it to be used in a wide range of applications,
including:
• IoT Devices: Ideal for smart home automation, environmental monitoring, and
industrial IoT systems.
• Wearable Devices: With its Bluetooth Low Energy (BLE) functionality, it can be
used for fitness trackers or health monitoring devices.

25
• Smart Agriculture: Can be deployed in agriculture to monitor soil conditions,
temperature, and moisture levels.
• Robotics and Drones: The module’s real-time communication capabilities make it
suitable for controlling robots, drones, or other automated systems.
• Smart Energy: Used in smart energy management systems for monitoring and
optimizing power consumption.
10. Variants of ESP32-WROOM
There are different variants of the ESP32-WROOM module, offering slight variations in
memory, clock speed, and additional features. Some popular variants include:

• ESP32-WROOM-32: The standard version with 4 MB of flash and dual-core processor.

• ESP32-WROOM-32D and 32U: Variants that differ in antenna design (PCB antenna vs
U.FL connector for an external antenna).
• ESP32-WROVER: A version that includes PSRAM (Pseudo-Static RAM), useful for
applications that require more memory, such as image processing or video streaming.
Conclusion
The ESP32-WROOM module is a powerful and flexible solution for IoT projects,
providing a comprehensive set of features for wireless communication, power
management, and sensor integration. Its ease of use, combined with robust performance,
makes it one of the go-to choices for developers building IoT systems. Whether you are
working on home automation, industrial monitoring, or smart devices, the ESP32-
WROOM offers a versatile platform for innovative and scalable solutions.

4.2 LCD DISPLAY

26
A liquid-crystal display (LCD) is a flat-panel display or other electronically
modulated optical device that uses the light-modulating properties of liquid crystals
combined with polarizers. Liquid crystals do not emit light directly, instead using a backlight
or reflector to produce images in color or monochrome. LCDs are available to display
arbitrary images (as in a general-purpose computer display) or fixed images with low
information content, which can be displayed or hidden. For instance: preset words, digits,
and seven-segment displays, as in a digital clock, are all good examples of devices with these
displays. They use the same basic technology, except that arbitrary image are made from a
matrix of small pixels, while other displays have larger elements. LCDs can either be
normally on (positive) or off (negative), depending on the polarizer arrangement.
LCDs are used in a wide range of applications, including LCD televisions, computer
monitors, instrument panels, aircraft cockpit displays, and indoor and outdoor signage. Small
LCD screens are common in LCD projectors and portable consumer devices such as digital
cameras, watches, digital clocks, calculators, and mobile telephones, including smartphones.
LCD screens are also used on consumer electronics products such as DVD players, video
game devices and clocks. LCD screens have replaced heavy, bulky cathode-ray tube (CRT)
displays in nearly all applications. LCDs are slowly being replaced by OLEDs, which can be
easily made into different shapes, and have a lower response time, wider color gamut,
virtually infinite color contrast and viewing angles, lower weight for a given display size and
a slimmer profile (because OLEDs use a single glass or plastic panel whereas LCDs use two
glass panels; the thickness of the panels increases with size but the increase is more
noticeable on LCDs) and potentially lower power consumption (as the display is only "on"
where needed and there is no backlight). Attempts to maintain the competitiveness of LCDs
are quantum dot displays, marketed as SUHD, QLED or Trolamines, which are displays with
blue LED backlighting and a Quantum-dot enhancement film (QDEF) that converts part of
the blue light into red and green, offering similar performance to an OLED display at a lower
price, but the quantum dot layer that gives these displays their characteristics cannot yet be
recycled.

Since LCD screens don't use phosphors, they rarely suffer image burn-in when a static
image is displayed on a screen for a long time, e.g., the table frame for an airline flight
schedule on an indoor sign. LCDs are, however, susceptible to image persistence. [3] The
LCD screen is more energy-efficient and can be disposed of more safely than a CRT can. Its

27
low electrical power consumption enables it to be used in battery powered electronic
equipment more

efficiently than a CRT can be. By 2008, annual sales of televisions with LCD screens
exceeded sales of CRT units worldwide, and the CRT became obsolete for most purposes.
This library allows an Arduino board to control Liquid Crystal displays (LCDs) based on the
Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs. The
library works with in either 4- or 8-bit mode (i.e. using 4 or 8 data lines in addition to the rs,
enable, and, optionally, the row control lines).

Liquid Crystal() Description Creates a variable of type Liquid Crystal. The display can be
controlled using 4 or 8 data lines. If the former, omit the pin numbers for d0 to d3 and leave
those lines unconnected. The RW pin can be tied to ground instead of connected to a pin on
the Arduino; if so, omit it from this function’s parameters. Syntax Liquid Crystal(rs, enable,
d4, d5, d6, d7) Liquid Crystal(rs, rw, enable, d4, d5, d6, d7) Liquid Crystal(rs, enable, d0, d1,
d2, d3, d4, d5, d6, d7) Liquid Crystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)
Parameters rs: the number of the Arduino pin that is connected to the RS pin on the LCD rw:
the number of the Arduino pin that is connected to the RW pin on the LCD (optional) enable:
the number of the Arduino pin that is connected to the enable pin on the LCD d0, d1, d2, d3,
d4, d5, d6, d7: the numbers of the Arduino pins that are connected to the corresponding data
pins on the LCD. d0, d1, d2, and d3 are optional; if omitted, the LCD will be controlled using

28
only the four data lines (d4, d5, d6, d7). Liquid Crystal - ―Hello World!‖ The Liquid Crystal
library allows you to control LCD displays that are compatible with the Hitachi HD44780
driver. There are many of them out there, and you can usually tell them by the 16-pin
interface. This example sketch prints ―Hello World!‖ to the LCD and shows the time in
seconds since the Arduino was reset. output of the sketch on a 2x16 LCD The LCDs have a
parallel interface, meaning that the microcontroller has to manipulate several interface pins at
once to control the display.
The interface consists of the following pins
• A register select (RS) pin that controls where in the LCD’s memory you’re writing data to.
You can select either the data register, which holds what goes on the screen, or an instruction
register, which is where the LCD’s controller looks for instructions on what to do next.

• A Read/Write (R/W) pin that selects reading mode or writing mode.

• An Enable pin that enables writing to the registers 8 data pins (D0 -D7). The states of these
pins (high or low) are the bits that you’re writing to a register when you write, or the values
you’re reading when you read.

• There’s also a display contrast pin (Vo),

• power supply pins (+5V and Gnd) and

• LED Backlight (Bklt+ and BKlt-) pins that you can use to power the LCD, control the
display contrast, and turn on and off the LED backlight, respectively. The process of
controlling the display involves putting the data that form the image of what you want to
display into the data registers, then putting instructions in the instruction register. The
LiquidCrystal Library simplifies this for you so you don’t need to know the low-level
instructions. The Hitachi-compatible LCDs can be controlled in two modes: 4-bit or 8-bit.

can be classified into two main types: active buzzers and

4.3 BUZZER
A buzzer is an electroacoustic device that generates sound when an electrical signal is applied
to it. It is widely used in electronic projects and systems for producing audible alerts,
notifications, or alarms. Buzzers passive buzzers.

29
1. Active Buzzer

An active buzzer has a built-in oscillator, which means it can produce sound simply by being
powered with a DC voltage. When voltage is applied, the buzzer generates sound without
needing an external frequency or driving circuit. This makes it easy to use in projects where a
continuous sound is required, such as alarms or notification systems.

• Operating Voltage: 3V to 12V (varies depending on the model).


• Features:
o No external signal or oscillation required.
o Easy to use in simple circuits.
o Fixed frequency sound, typically around 2kHz to 4kHz.
• Usage Example: A low-voltage battery alarm or a doorbell.

2. Passive Buzzer
A passive buzzer does not have a built-in oscillator, meaning it requires an external driving
signal to produce sound. This allows for more flexibility, as you can control the frequency
and type of sound produced, such as tones, beeps, or melodies. It is commonly controlled by
microcontrollers (like Arduino) or other timing circuits.
• Operating Voltage: 3V to 12V.
• Features:

30
o Requires an external oscillation signal (usually provided by a PWM pin from a
microcontroller).
o Capable of producing varying tones and frequencies.
o More versatile in terms of sound output.
• Usage Example: Audio feedback in a game console or tone-generating applications.
Applications of Buzzers in IoT Projects
Buzzers are used in various IoT applications where audio alerts are necessary to signal
specific conditions. In a Battery Management IoT System, for instance, a buzzer could be
used to alert the user when:
• The battery temperature exceeds safe limits.
• The voltage drops below a critical threshold.
• The current goes beyond safe operating levels, indicating possible overload.
In such systems, the buzzer acts as an immediate warning system, supplementing the visual
data displayed on a mobile app. This ensures that users are made aware of critical conditions
even if they are not actively monitoring the data.
4.4 RESISTORS
Resistors are one of the most fundamental components in electronic circuits. Their primary
function is to resist the flow of electrical current, allowing control over the voltage and
current in a circuit. Resistors are widely used in various applications, including voltage
division, current limiting, and signal conditioning. In IoT systems, resistors play a crucial role
in ensuring that sensors, microcontrollers, and other components operate within safe voltage
and current levels.
Basic Characteristics of Resistors
• Resistance: Measured in ohms (Ω), resistance determines how much the resistor
opposes the flow of current. Higher resistance means less current flows through the
resistor for a given voltage.
• Power Rating: Measured in watts (W), the power rating defines how much power the
resistor can safely dissipate without damage. Common power ratings include 1/8W,
1/4W, 1/2W, and 1W. The power dissipated by a resistor is calculated using P=I2RP
= I^2RP=I2R, where PPP is power, III is current, and RRR is resistance.
• Tolerance: This indicates how close the actual resistance value is to the stated value,
typically expressed as a percentage (e.g., ±5%).

31
Types of Resistors

1. Fixed Resistors: These have a set resistance value that cannot be changed. Common
types include:
o Carbon Film Resistors: Affordable and commonly used in general
applications, available in a wide range of values.
o Metal Film Resistors: Offer better accuracy and temperature stability, making
them ideal for precision circuits.
o Wire-Wound Resistors: Used for high-power applications due to their ability
to dissipate large amounts of heat.
2. Variable Resistors: These resistors allow their resistance value to be adjusted.
Examples include:
o Potentiometers: Often used for volume control in audio devices or tuning
circuits.
o Rheostats: Used in applications requiring high current adjustments.
Resistor in IoT Systems
In IoT projects, resistors are essential for ensuring that sensor signals, communication
modules, and microcontrollers operate reliably. For example:
• Voltage Level Shifting: When connecting a 5V system (like Arduino) to a 3.3V system
(like ESP32), resistors can be used to create a voltage divider to shift logic levels.
• Current Protection: Resistors are used to protect analog and digital sensors from excessive
current, ensuring stable readings and preventing sensor damage.
Resistor Color Code
Resistors are often marked with colored bands that indicate their resistance value and
tolerance. The color code is read from left to right, with the first two or three bands

32
representing the significant digits of the resistance value, the next band representing a
multiplier, and the final band indicating tolerance.
Common Color Code Chart:
• Black = 0
• Brown = 1
• Red = 2
• Orange = 3
• Yellow = 4
• Green = 5
• Blue = 6
• Violet = 7
• Gray = 8
• White = 9

33
4.5 LI ION BATTERY
Lithium-ion (Li-ion) batteries are a type of rechargeable battery that have become widely
popular in many applications due to their high energy density, low self-discharge rate, and
relatively long cycle life. They are used in a range of devices such as smartphones, laptops,
electric vehicles, and even large-scale energy storage systems. Their efficiency, lightweight
nature, and high voltage make them an ideal choice for modern portable electronics and
energy systems.
Key Characteristics of Li-ion Batteries

1. High Energy Density: Li-ion batteries offer a high energy density, which means they
can store a significant amount of energy in a relatively small size and weight. This
makes them perfect for portable devices and applications where weight is a concern
(e.g., electric vehicles and drones).
2. Rechargeable: Unlike single-use batteries, Li-ion batteries can be recharged hundreds
to thousands of times, depending on the usage and charge cycles. This makes them
cost-effective in the long run, despite their higher initial cost compared to other
battery types like NiMH (Nickel Metal Hydride) or NiCd (Nickel Cadmium).

3. Low Self-Discharge Rate: Li-ion batteries have a lower self-discharge rate compared
to other types of rechargeable batteries. This means that they lose very little charge
when not in use, making them ideal for standby power applications.

4. Voltage: Each Li-ion cell typically has a nominal voltage of 3.6V to 3.7V, which is
higher than other rechargeable batteries like NiMH (1.2V per cell). This means fewer
cells are required in series to achieve a desired voltage, reducing size and complexity.

5. Cycle Life: The cycle life of a Li-ion battery refers to the number of complete charge
and discharge cycles it can undergo before its capacity starts to degrade significantly.
Li-ion batteries typically have a cycle life of 300 to 500 cycles, with some high-
quality cells offering up to 1000 cycles.

6. No Memory Effect: Li-ion batteries do not suffer from the "memory effect," which
was a common issue with older NiCd batteries. Memory effect refers to the loss of
battery capacity when it is repeatedly charged before fully discharging.

1. Anode: The anode is typically made of graphite, which stores lithium ions during
charging.

34
2. Components of a Li-ion Battery

3. Cathode: The cathode is made of a lithium-based material such as lithium cobalt oxide
(LiCoO₂), lithium iron phosphate (LiFePO₄), or lithium manganese oxide (LiMn₂O₄).
4. Electrolyte: The electrolyte is a lithium salt solution in an organic solvent, which
allows the movement of lithium ions between the anode and cathode during charging
and discharging.

5. Separator: A porous separator prevents direct contact between the anode and cathode,
while still allowing the flow of ions.

Charging and Discharging Process

• Charging: During charging, lithium ions move from the cathode to the anode through
the electrolyte, while electrons move through the external circuit, charging the battery.

• Discharging: When the battery is in use, lithium ions move from the anode back to
the cathode, generating electrical energy as electrons flow through the external circuit
to power a device.

Advantages of Li-ion Batteries

1. High Efficiency: Li-ion batteries have a high charge and discharge efficiency (about
90-95%), which makes them suitable for energy-demanding applications.

2. Long Lifespan: When properly managed, Li-ion batteries can have a long service
life. However, they do degrade over time and can lose capacity with each charge
cycle.

3. Lightweight: Li-ion batteries are much lighter than other rechargeable batteries with
the same capacity, making them ideal for portable electronics and electric vehicles.

4. Low Maintenance: Unlike other battery technologies, Li-ion batteries do not require
periodic discharges to maintain their health. They also don’t need special conditions
for charging.

Challenges and Safety Concerns

1. Overcharging and Overheating: Li-ion batteries are sensitive to overcharging and


can overheat if charged improperly, potentially leading to thermal runaway and, in

35
rare cases, causing the battery to catch fire or explode. This is why many Li-ion
batteries come with a Battery Management System (BMS), which regulates charge
and discharge cycles, preventing overcharging, overheating, and overcurrent.
2. Degradation Over Time: Even though Li-ion batteries are durable, they do degrade
over time. Factors such as high temperatures, deep discharges, and long periods of
inactivity can reduce the lifespan and capacity of Li-ion batteries.
3. Cost: Li-ion batteries are generally more expensive than traditional battery types due
to their complex manufacturing processes and materials.
4. Environmental Concerns: Disposal of Li-ion batteries can have environmental
impacts, as they contain materials like lithium, cobalt, and other metals that require
special recycling processes to prevent harm to the environment.
Applications of Li-ion Batteries
• Portable Electronics: Used in smartphones, laptops, tablets, cameras, and other
portable gadgets due to their high energy density and lightweight nature.
• Electric Vehicles (EVs): Li-ion batteries are commonly used in electric cars like
Tesla vehicles due to their ability to store large amounts of energy in a small space.
• Energy Storage Systems: Li-ion batteries are increasingly used in home energy
storage systems, such as Tesla’s Powerwall, which stores energy generated by solar
panels or other renewable sources for later use.
• IoT Devices: Many IoT devices use Li-ion batteries due to their high energy
efficiency and low maintenance needs. These batteries allow IoT devices to run for
long periods on a single charge.
Li-ion Battery in IoT Projects
In an IoT-based Battery Management System (BMS), Li-ion batteries are a common choice
for energy storage. The system monitors parameters like:
• Temperature: Li-ion batteries are sensitive to heat, and continuous temperature
monitoring ensures safe operation.

• Voltage: Monitoring the voltage of each cell helps prevent overcharging or deep
discharge, which can degrade the battery.

• Current: By monitoring the current, the BMS can detect overcurrent situations and
take appropriate action to prevent damage to the battery or the load.

36
Safety Measures in Li-ion Batteries

Li-ion batteries often come with integrated safety features like:


• Protection Circuit Modules (PCM): These modules prevent overcharging, over-
discharging, and short circuits.
• Battery Management System (BMS): A more advanced system that monitors each
cell’s voltage, current, and temperature, balancing the charge between cells and
providing additional protection.

4.6 CHARGING MODULE


A Type-C charging module is an electronic module that facilitates charging of devices
through a USB Type-C connector. USB Type-C is a versatile and powerful connector
standard that offers high-speed data transfer, video output, and most notably, fast and
efficient power delivery for charging devices. In the context of projects like IoT systems,
DIY electronics, or battery management systems, a Type-C charging module is often used to
charge lithium-ion batteries or to power microcontrollers and other components.
Features of a Type-C Charging Module
1. USB-C Connector: The module features a USB Type-C port, which is reversible,
meaning the cable can be inserted in either direction, making it user-friendly. The
Type-C connector supports higher current and voltage than previous USB types,
allowing for faster charging.
2. Power Delivery (PD): Many Type-C modules support USB Power Delivery, a fast
charging protocol that enables dynamic adjustment of voltage and current. USB PD
can provide up to 100W of power (20V, 5A) depending on the device, making it
suitable for charging a wide range of batteries and devices.

37
3. Integrated Charging Circuit: The module includes an onboard charging IC, which
controls the charging process, ensuring the correct current and voltage are supplied to
the battery. This circuit typically has built-in safety features like overvoltage,
overcurrent, and short-circuit protection.
4. Battery Compatibility: Type-C charging modules are commonly used to charge
lithium-ion or lithium-polymer (LiPo) batteries, but they can be adapted to charge
other battery chemistries with the correct configuration.
5. Adjustable Voltage and Current: Some advanced Type-C modules allow for
adjustable output voltage and current, providing flexibility for charging different
batteries or powering various devices.
6. LED Indicators: Many modules come with LEDs that indicate charging status. A
typical setup includes a red LED for charging and a green or blue LED for when the
battery is fully charged.
Key Components of a Type-C Charging Module
1. Type-C Port: The USB Type-C connector is the input port through which the module
receives power from a charger or power source.
2. Charging IC: The integrated circuit responsible for managing the charging process.
Common charging ICs include the TP4056 for single-cell Li-ion batteries.
3. Voltage Regulators: Some modules include voltage regulators to step down or adjust
the voltage from the USB-C power supply to match the battery’s charging
requirements.
4. Protection Circuits: To protect the battery and other connected devices, the module
often includes protection circuits that safeguard against overcharging, overcurrent,
overheating, and short circuits.

38
Types of Type-C Charging Modules
1. Basic Type-C Charging Modules:
o Typically used for charging single-cell lithium-ion batteries (3.7V nominal,
4.2V full charge).
o Modules like the TP4056 USB-C Charger can charge a single Li-ion battery
with up to 1A of current.
o These are compact and affordable, making them ideal for DIY projects like
small IoT devices or battery-powered gadgets.
2. Type-C with USB Power Delivery (PD):
o More advanced modules that support USB PD can dynamically negotiate
higher voltages and currents, suitable for charging multi-cell battery packs or
higher-capacity devices.
o These modules are ideal for larger applications like laptops, power banks, or
battery management systems requiring more power.
3. Type-C Buck/Boost Converter Modules:
o These modules include a buck (step-down) or boost (step-up) converter,
allowing for the adjustment of the output voltage from the USB-C input.
o They are used in projects where the charging voltage or power delivery needs
to be adapted for different devices or battery configurations.

39
4.7 ADAPTER
An AC adapter, AC/DC adapter, or AC/DC converter is a type of external power
supply, often enclosed in a case similar to an AC plug. Other common names include plug
pack, plug-in adapter, adapter block, domestic mains adapter, line power adapter, wall
wart, power brick, and power adapter. Adapters for battery-powered equipment may be
described as chargers or rechargers (see also battery charger). AC adapters are used with
electrical devices that require power but do not contain internal components to derive the
required voltage and power from mains power. The internal circuitry of an external power
supply is very similar to the design that would be used for a built-in or internal supply.
External power supplies are used both with equipment with no other source of power
and with battery-powered equipment, where the supply, when plugged in, can sometimes
charge the battery in addition to powering the equipment.
Use of an external power supply allows portability of equipment powered either by
mains or battery without the added bulk of internal power components, and makes it
unnecessary to produce equipment for use only with a specified power source; the same
device can be powered from 120 VAC or 230 VAC mains, vehicle or aircraft battery by using
a different adapter.

40
4.8 JUMPERS
Jumper wires are small electrical wires with connector pins or exposed ends that are used to
create temporary or permanent electrical connections between components on a breadboard
or between devices. They are essential in prototyping, testing circuits, and working with
development boards like Arduino, Raspberry Pi, and other microcontroller platforms.
Jumper wires are available in various lengths, colors, and connector types, which makes them
versatile for a wide range of electronic applications.
Types of Jumper Wires
Jumper wires come in three primary types based on the type of connectors they have:
1. Male-to-Male (M-M):
o These wires have male pin connectors on both ends, which are designed to be
inserted into female headers, such as those on a breadboard or microcontroller
pins.
2. Male-to-Female (M-F):
o These wires have a male pin on one end and a female socket on the other.
They are useful for connecting components that have male pins to other
devices with female headers.
3. Female-to-Female (F-F):

o These wires have female sockets on both ends and are used to connect
components or devices that have male pins.

Common Uses of Jumper Wires


1. Breadboard Prototyping:
o Jumper wires are commonly used to connect components on a breadboard,
making it easy to test and modify circuits. The wires allow for quick changes
and rearrangements without soldering.
2. Connecting Microcontrollers:
o Jumper wires are frequently used to connect microcontroller pins (such as on
Arduino, ESP32, or Raspberry Pi) to external sensors, modules, or other
components. For example, you might use jumper wires to connect an Arduino
Nano to a sensor on a breadboard.

41
3. Interfacing Sensors and Modules:

o They are used to interface sensors (e.g., temperature, motion) or modules (e.g.,
Wi-Fi, Bluetooth) with development boards for rapid prototyping in IoT and
embedded systems.

4. Debugging and Testing:

o Jumper wires are ideal for creating temporary connections during testing and
debugging circuits. Their flexibility and reusability make them convenient for
troubleshooting.

Materials and Features

1. Wire Material:

o Jumper wires are typically made from copper or tinned copper, which offers
good conductivity and flexibility. They are insulated with PVC or silicone for
safety and durability.

2. Gauge:

o The wire gauge of jumper wires typically ranges from 22 to 28 AWG. Thinner
wires (higher AWG) are easier to bend and manipulate in tight spaces, while
thicker wires (lower AWG) can carry more current.

3. Colors:

o Jumper wires come in various colors to help identify different connections in a


circuit. Common colors include red (for power), black (for ground), and other
colors for signal wires.

4. Lengths:

o Jumper wires come in various lengths, typically ranging from 4 cm to 30 cm


or more. Longer wires are useful for connecting distant components, while
shorter wires help keep a circuit neat and organized.

42
Applications of Jumper Wires

1. Arduino Projects:

o Jumper wires are essential for connecting sensors, actuators, and other
components to an Arduino board for building various projects such as
robotics, IoT systems, or automation.

2. Raspberry Pi Projects:

o In Raspberry Pi projects, jumper wires are used to connect GPIO pins to


external devices like LEDs, motors, or sensors to control physical systems.

3. Circuit Prototyping:

o They are widely used in circuit design for prototyping before moving to a final
soldered design or printed circuit board (PCB).

4. Educational Purposes:

o Jumper wires are often used in educational settings, allowing students and
hobbyists to quickly set up and modify electronic circuits during learning and
experimentation.

43
Best Practices for Using Jumper Wires

• Color Coding: Use different colored wires for different types of connections (e.g.,
red for power, black for ground, and other colors for signals) to avoid confusion when
building complex circuits.

• Shorter is Better: Use the shortest length of jumper wire possible to reduce signal
interference and keep your project neat and organized.

• Check Connections: Ensure that jumper wires are properly inserted into the
breadboard or connectors and that the male and female ends are securely attached to
avoid loose connections or circuit failures.

• Avoid Overloading: Be mindful of the current rating of the wires to avoid


overheating or damage. For low-power projects, standard jumper wires are sufficient,
but high-power applications may require thicker wires.

44
CHAPTER 5

CIRCUIT DIAGRAM, PROGRAM CODE

5.1 CIRCUIT DIAGRAM

Block Diagram

45
5.2 PROGRAM CODE

#include "thingProperties.h"

#include <LiquidCrystal_I2C.h>

int analogInPin = 35; // Analog input pin

int buzzerPin = 26; // Buzzer connected to digital pin 12

int sensorValue;

float calibration = 0.36; // Check Battery voltage using multimeter &


add/subtract the value

LiquidCrystal_I2C lcd(0x27, 16, 2);

#define LM35_PIN 33

// Constants for calculation

const float voltageReference = 3.3; // Voltage reference of ESP32 (in Volts)

const int adcMaxValue = 4095; // Max ADC value for 12-bit resolution

const float tempCoefficient = 0.01; // 10mV per degree Celsius for LM35

void setup() {

// Initialize serial and wait for port to open:

46
Serial.begin(9600);

// This delay gives the chance to wait for a Serial Monitor without blocking if
none is found

delay(1500);

analogReadResolution(12);

lcd.init();

lcd.backlight();

lcd.setCursor(0, 0);

lcd.print("BMS Ready");

pinMode(buzzerPin, OUTPUT); // Set buzzer pin as output

digitalWrite(buzzerPin, LOW); // Ensure buzzer is off at the start

// Defined in thingProperties.h

initProperties();

// Connect to Arduino IoT Cloud

ArduinoCloud.begin(ArduinoIoTPreferredConnection);

The following function allows you to obtain more information

related to the state of network and IoT Cloud connection and errors

47
the higher number the more granular information you’ll get.

The default is 0 (only errors).

Maximum is 4

setDebugMessageLevel(2);

ArduinoCloud.printDebugInfo();

void loop() {

ArduinoCloud.update();

sensorValue = analogRead(analogInPin);

voltage = (((sensorValue * 3.3) / 4096) * 2 + calibration); //multiply by two as


voltage divider network is 100K & 100K Resistor

bat_percentage = mapfloat(voltage, 2.8, 4.2, 0, 100); //2.8V as Battery Cut off


Voltage & 4.2V as Maximum Voltage

if (bat_percentage >= 100) {

bat_percentage = 100;

if (bat_percentage <= 0) {

bat_percentage = 1;

48
// Buzzer logic for 95% battery

if (bat_percentage >= 95) {

beepBuzzer(); // Beep the buzzer twice when battery percentage is 95%

Serial.print("Analog Value = ");

Serial.print(sensorValue);

Serial.print("\t Output Voltage = ");

Serial.print(voltage);

Serial.print("\t Battery Percentage = ");

Serial.println(bat_percentage);

delay(1000);

lcd.setCursor(0, 0); // First row

lcd.print("Voltage =");

lcd.print(voltage);

lcd.print("v ");

lcd.setCursor(0, 1);

lcd.print("Percentage =");

lcd.print(bat_percentage);

49
lcd.print("% ");

int adcValue = analogRead(LM35_PIN);

// Convert the ADC value to voltage

float voltage = (adcValue * voltageReference) / adcMaxValue;

// Calculate temperature in Celsius

float temperatureC = voltage / tempCoefficient;

// Display the temperature in Celsius

Serial.print("Temperature: ");

Serial.print(temperatureC);

Serial.println(" °C");

temp = temperatureC;

// Function to beep the buzzer twice

void beepBuzzer() {

for (int i = 0; i < 2; i++) {

digitalWrite(buzzerPin, HIGH); // Turn on the buzzer

delay(200); // Beep duration

digitalWrite(buzzerPin, LOW); // Turn off the buzzer

delay(200); // Pause between beeps

50
float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{

return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

Since Temp is READ_WRITE variable, onTempChange() is

executed every time a new value is received from IoT Cloud.

void onTempChange() {

// Add your code here to act upon Temp change

51
CHAPTER 6
RESULT OF THE PROJECT

6.1 ADVANTAGES

• Real-time Monitoring: Provides continuous data on battery health,


charge levels, temperature, and voltage, enabling immediate action if
issues arise.
• Enhanced Safety: Alerts users to potential hazards, such as overheating
or voltage irregularities, reducing the risk of battery failures or fires.
• Predictive Maintenance: Analyzes data to predict battery life and
performance, allowing for timely maintenance or replacement, which can
extend the overall lifespan of the battery.

52
• Optimized Charging: Helps in managing charging cycles more
effectively by analyzing usage patterns and suggesting optimal charging
times to enhance battery longevity.
• Data Analytics: Collects and processes historical data, enabling insights
into usage patterns and performance trends, which can inform design
improvements and better battery management systems.
• Remote Access: Allows users to monitor battery status from anywhere,
providing convenience and peace of mind.
• Cost Efficiency: By preventing battery degradation and failures, it can
reduce long-term costs associated with repairs and replacements.
• Improved User Experience: Provides users with detailed information
and notifications, enhancing the overall experience of owning and
operating an EV.

6.2 APPLICATIONS

State of Charge (SoC) Monitoring: Continuously tracks the battery's charge


level, providing real-time information to the driver and optimizing charging
cycles.

State of Health (SoH) Assessment: Evaluates battery health and performance


over time, helping identify degradation and the need for maintenance or
replacement.

Temperature Monitoring: Tracks battery temperature to prevent overheating and


ensures safe operating conditions, enhancing safety.

Remote Diagnostics: Enables remote troubleshooting and diagnostics of battery-


related issues, facilitating quicker resolutions without the need for physical
inspections.

Predictive Maintenance: Uses data analytics to predict potential failures and


schedule maintenance before issues arise, improving reliability.

53
CHAPTER 7

CONCLUSION AND FUTURE SCOPE

7.1 CONCLUSION

The Battery Management IoT System that integrates features such as temperature, voltage,
and current monitoring via mobile devices is a highly efficient and reliable solution for
managing and optimizing battery performance. With the inclusion of Li-ion batteries, Type-C
charging modules, and robust monitoring systems, this project demonstrates how IoT can
improve the performance, safety, and lifespan of batteries in various applications.

This system provides real-time data on battery health, ensuring early detection of potential
faults such as overheating, overvoltage, or excessive current. The incorporation of IoT
technology allows remote monitoring, which enhances convenience and accessibility,
especially in applications like electric vehicles, renewable energy storage, and portable
electronic devices.

Furthermore, the system not only ensures proper battery management and longevity but also
promotes energy efficiency by preventing unnecessary charging cycles and optimizing power
usage.

7.2 FUTURE SCOPE

The Battery Management IoT System can be further enhanced and expanded in the
following areas:

1. Integration with Renewable Energy Sources: Future versions of the system could
be integrated with solar panels or other renewable energy sources, allowing smart
charging and energy management for off-grid systems or sustainable energy solutions.
This would optimize energy usage and further reduce the environmental impact.

2. Scalability for Larger Applications: The system can be scaled up for larger
industrial applications, such as energy storage systems in power grids or electric

54
vehicle fleets. In these cases, more complex battery arrangements and advanced
monitoring algorithms could be implemented to handle larger capacities and more
cells.

3. Machine Learning for Predictive Maintenance: By incorporating machine learning


algorithms, the system could predict battery health degradation, anticipate faults
before they occur, and optimize charging and discharging cycles based on usage
patterns. This would enhance the system's ability to extend battery life and improve
overall efficiency.

4. Enhanced Security Features: With the growing use of IoT in critical systems, future
iterations could implement enhanced cybersecurity protocols to protect data and
ensure secure communication between devices and cloud services.

5. Integration with Cloud Platforms: The system can be further enhanced by


integrating it with cloud platforms for big data analysis, allowing long-term
performance tracking and insights. Cloud integration would also facilitate multi-
device access and control, making it easier to manage multiple battery systems from a
single interface.

6. Advanced Communication Protocols: Introducing advanced communication


protocols like 5G or LoRaWAN could further improve the system’s connectivity and
range, especially for remote or large-scale deployments.

55
CHAPTER 8

REFERENCES

[1] M. Lavanya, P. Muthukannan, Y.S.S. Bhargav, V. Suresh, ―IoT Based Automated


Temperature and Humidity Monitoring and Control‖, Journal of Chemical and
Pharmaceutical Sciences ISSN: 0974- 2115.

[2] Vignesh Mani, Abhilasha, Gunasekhar,‖IoT Based Smart Energy Management System‖,
International Journal of Applied Engineering Research ISSN 0973-4562 Volume 12, Number
16 (2017) pp. 5455-5462

[3] Harish N1, Prashal V2 and Dr. D. Sivakumar3,‖ IOT Based Battery Management
System‖, International Journal of Applied Engineering Research ISSN 0973-4562 Volume
13, Number 8 (2018) pp.5711-5714

[4] Abhay Shatrudhan Jha1, Anuj Kalkar2, Mandar Ghanekar3, Neeraj Pal4, Sangeeta
kotecha5, "Battery Management System", International Research Journal of Engineering and
Technology (IRJET)

56

You might also like