0% found this document useful (0 votes)
28 views83 pages

Sample Report

The document outlines the design and functionality of a Biometric Vehicle Starter that utilizes an ESP32 microcontroller, a fingerprint sensor, and a GSM module for enhanced vehicle security. This system allows only authorized users to start the vehicle through fingerprint recognition and sends real-time SMS alerts in case of unauthorized access attempts. The proposed system aims to provide a cost-effective, efficient, and modern alternative to traditional vehicle ignition methods, addressing the limitations of existing security systems.

Uploaded by

Ch santhoshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views83 pages

Sample Report

The document outlines the design and functionality of a Biometric Vehicle Starter that utilizes an ESP32 microcontroller, a fingerprint sensor, and a GSM module for enhanced vehicle security. This system allows only authorized users to start the vehicle through fingerprint recognition and sends real-time SMS alerts in case of unauthorized access attempts. The proposed system aims to provide a cost-effective, efficient, and modern alternative to traditional vehicle ignition methods, addressing the limitations of existing security systems.

Uploaded by

Ch santhoshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 83

BIOMETRIC VEHICLE STARTER

ABSTRACT

The "Biometric Vehicle Starter with ESP32, GSM, and Fingerprint Module" is a smart vehicle security system that
enhances safety and eliminates unauthorized access using biometric authentication. This system utilizes an
ESP32 microcontroller as the central control unit, integrated with a fingerprint sensor module to recognize and
verify authorized users. Only verified fingerprints can start the vehicle, ensuring personalized and secure access.
Additionally, the GSM module enables real-time SMS alerts to the vehicle owner in case of unauthorized access
attempts or suspicious activity. This project provides a low-cost, efficient, and highly secure alternative to
traditional vehicle locking and starting systems by combining biometric technology.

First time fingerprint access with open lock and second time finger print access allow engine ON. Unautherised
fingerprint access buzzer ON. All notification will send to SMS through GSM module.
CHAPTER 1
INTRODUCTION

1.1Introduction:

In today’s world, vehicle theft and unauthorized access are major concerns for vehicle owners.
Traditional key-based ignition systems are often vulnerable to duplication and tampering. To address
these security challenges, modern technological advancements are being incorporated into vehicle
systems. One such innovation is the Biometric Vehicle Starter, which enhances vehicle safety by
allowing only authorized users to start the vehicle using fingerprint recognition.

This system integrates an ESP32 microcontroller, a fingerprint sensor module, and a GSM module to
create a secure, IoT-based vehicle starting mechanism. The ESP32 acts as the central control unit,
managing fingerprint authentication and communication. When a registered fingerprint is detected, the
ESP32 activates the ignition system. If an unregistered or suspicious attempt is made, the GSM module
instantly sends an SMS alert to the owner’s mobile phone, ensuring real-time monitoring.

By combining biometric verification with wireless communication, this system provides an intelligent,
reliable, and user-friendly solution for vehicle security. It not only prevents unauthorized access but also
adds a modern and personalized approach to vehicle control.

Using this we can access door and engine access through biometric module.
CHAPTER 2

Literature Survey of Biometric Vehicle Starter with ESP32 and GSM Module:

1. Biometric Authentication in Vehicle Security Systems:


Several research studies have explored the use of biometric systems—such as fingerprint
recognition—for enhancing vehicle security. According to various works, biometric
authentication offers a more secure and personalized method compared to conventional keys or
RFID cards. Studies show that fingerprint sensors, due to their uniqueness and ease of use, are
among the most reliable biometric technologies for access control in vehicles.
2. Role of Microcontrollers in Embedded Vehicle Systems:
In recent years, microcontrollers like Arduino and ESP32 have gained popularity in smart vehicle
systems. The ESP32, in particular, is preferred for its built-in Wi-Fi, Bluetooth capabilities, and
sufficient processing power. Researchers have demonstrated successful integration of fingerprint
modules with ESP32 for low-power, real-time biometric authentication in automotive
applications.
3. GSM Technology in IoT-Based Vehicle Monitoring:
GSM modules such as SIM800L and SIM900 have been widely implemented in vehicle tracking
and alert systems. Multiple studies have shown that combining GSM with microcontrollers
allows for effective remote alerts via SMS, enhancing vehicle monitoring and theft prevention.
4. Combined Biometric and GSM-based Security Systems:
Recent innovations have focused on integrating biometric verification with GSM communication
to form dual-layer security systems. Literature indicates that such hybrid systems not only
authenticate users locally but also notify owners remotely about unauthorized access attempts,
significantly improving security reliability.
5. Real-Time Vehicle Access Control Applications:
Research articles and project implementations from engineering institutions show growing
interest in smart vehicle ignition systems controlled by fingerprint and IoT modules. Projects
using ESP32 have proven successful in real-time decision-making and low-latency
communication, ideal for applications like biometric vehicle starters.

Conclusion from Survey:


The literature reveals a strong foundation for developing a Biometric Vehicle Starter using ESP32 and
GSM modules. This system is supported by prior research in biometric access control, IoT
communication, and embedded systems. The integration of these technologies provides a reliable,
efficient, and scalable solution for modern vehicle security.

CHAPTER 3

EXISTING SYSTEM

Existing System of Biometric Vehicle Starter with ESP32 and GSM Module:
The current systems used in most vehicles for ignition and security include traditional key-based
starters, RFID-based ignition systems, and remote central locking. While these methods provide
basic levels of security, they have several limitations when it comes to preventing unauthorized access
and vehicle theft.

In the domain of biometric vehicle starters, some advanced vehicles use fingerprint or facial
recognition systems integrated by the manufacturers. However, these systems are often expensive and
limited to high-end models. The use of ESP32 and GSM modules in vehicle ignition systems is still an
emerging concept and is not widely implemented in commercial vehicles.

In hobbyist and prototype-level implementations, some projects have demonstrated the integration of
fingerprint sensors with Arduino or ESP32, allowing ignition only when an authorized fingerprint is
detected. These prototypes may include GSM modules to send SMS alerts in case of unauthorized
access. However, such systems are still in the experimental phase and are not robust or scalable for
mass deployment.

Key Limitations of Existing Systems:

 Traditional key and RFID systems are prone to duplication and theft.
 Commercial biometric systems are expensive and not affordable for most users.
 Limited integration of GSM alert systems in low-cost security modules.
 Lack of real-time user feedback and alert mechanisms in most low-end solutions.

In summary, while some components of a biometric vehicle starter system exist in isolation or in
prototype projects, a cost-effective, fully integrated system combining ESP32, fingerprint
authentication, and GSM alerting is still under development and has significant potential for future
implementation in both personal and commercial vehicles.

CHAPTER 4

PROPOSED SYSTEM
Proposed System of Biometric Vehicle Starter with ESP32 and GSM Module:

The proposed system introduces a smart and secure vehicle ignition mechanism using fingerprint-based
biometric authentication controlled by an ESP32 microcontroller and supported by a GSM module for
real-time alerts. The main objective is to enhance vehicle security by allowing only authorized users to
start the vehicle, thereby preventing theft and unauthorized access.

Key Features of the Proposed System:

1. Biometric Authentication:
o A fingerprint sensor is used to capture and verify the user's fingerprint.
o Only registered fingerprints can start the vehicle, ensuring secure access.
2. ESP32 Microcontroller:
o Acts as the core controller, processing fingerprint data and controlling the ignition relay.
o Offers built-in Wi-Fi and Bluetooth for possible future upgrades (e.g., mobile app
control).
3. GSM Module Integration:
o Sends SMS alerts to the vehicle owner's mobile phone when:
 An unauthorized fingerprint attempt is made.
o Enables real-time remote notifications and monitoring.
4. Relay-Based Ignition Control:
o After successful fingerprint authentication, ESP32 triggers a relay that activates the
vehicle’s ignition system.
o First time fingerprint allows door lock and second time fingerprint access allows engine
ON.

Advantages of the Proposed System:

 High Security: Prevents vehicle access without biometric approval.


 Real-Time Alerts: Immediate SMS notifications enhance monitoring.
 Cost-Effective: Uses readily available and affordable components.
 Easy to Use: Simple fingerprint registration process for authorized users.
 Scalable: Can be upgraded to include GPS tracking, mobile app control, or voice commands.

Applications:

 Personal vehicles (bikes, cars)


 Commercial fleet vehicles
 Rental vehicles or logistics companies
 School or company transport systems

The proposed system presents a modern, user-friendly, and efficient solution to conventional vehicle
security limitations by combining biometric access with IoT-based communication.

BLOCK DIAGRAM:
Enroll_SW

Relay + Lock

Relay + Motor

Buzzer

CHAPTER 5

EMBEDDED SYSTEMS

2.1 Embedded Systems:


An embedded system is a computer system designed to perform one or a few dedicated
functions often with real-time computing constraints. It is embedded as part of a complete device often
including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal
computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded
systems control many devices in common use today.

Embedded systems are controlled by one or more main processing cores that are typically
either microcontrollers or digital signal processors (DSP). The key characteristic, however, is being
dedicated to handle a particular task, which may require very powerful processors. For example, air
traffic control systems may usefully be viewed as embedded, even though they involve mainframe
computers and dedicated regional and national networks between airports and radar sites. (Each radar
probably includes one or more embedded systems of its own.)

Since the embedded system is dedicated to specific tasks, design engineers can optimize it
to reduce the size and cost of the product and increase the reliability and performance. Some embedded
systems are mass-produced, benefiting from economies of scale.

Physically embedded systems range from portable devices such as digital watches and
MP3 players, to large stationary installations like traffic lights, factory controllers, or the systems
controlling nuclear power plants. Complexity varies from low, with a single microcontroller chip, to
very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure.

In general, "embedded system" is not a strictly definable term, as most systems have
some element of extensibility or programmability. For example, handheld computers share some
elements with embedded systems such as the operating systems and microprocessors which power them,
but they allow different applications to be loaded and peripherals to be connected. Moreover, even
systems which don't expose programmability as a primary feature generally need to support software
updates. On a continuum from "general purpose" to "embedded", large application systems will have
subcomponents at most points even if the system as a whole is "designed to perform one or a few
dedicated functions", and is thus appropriate to call "embedded". A modern example of embedded
system is shown in fig: 2.1.
Fig 2.1:A modern example of embedded system

Labeled parts include microprocessor (4), RAM (6), flash memory (7).Embedded systems
programming is not like normal PC programming. In many ways, programming for an embedded system
is like programming PC 15 years ago. The hardware for the system is usually chosen to make the device
as cheap as possible. Spending an extra dollar a unit in order to make things easier to program can cost
millions. Hiring a programmer for an extra month is cheap in comparison. This means the programmer
must make do with slow processors and low memory, while at the same time battling a need for
efficiency not seen in most PC applications. Below is a list of issues specific to the embedded field.

2.1.1 History:

In the earliest years of computers in the 1930–40s, computers were sometimes dedicated
to a single task, but were far too large and expensive for most kinds of tasks performed by embedded
computers of today. Over time however, the concept of programmable controllers evolved from
traditional electromechanical sequencers, via solid state devices, to the use of computer technology.

One of the first recognizably modern embedded systems was the Apollo Guidance
Computer, developed by Charles Stark Draper at the MIT Instrumentation Laboratory. At the project's
inception, the Apollo guidance computer was considered the riskiest item in the Apollo project as it
employed the then newly developed monolithic integrated circuits to reduce the size and weight. An
early mass-produced embedded system was the Autonetics D-17 guidance computer for the Minuteman
missile, released in 1961. It was built from transistor logic and had a hard disk for main memory. When
the Minuteman II went into production in 1966, the D-17 was replaced with a new computer that was the
first high-volume use of integrated circuits.

2.1.2 Tools:
Embedded development makes up a small fraction of total programming. There's also a
large number of embedded architectures, unlike the PC world where 1 instruction set rules, and the
UNIX world where there's only 3 or 4 major ones. This means that the tools are more expensive. It also
means that they're lowering featured, and less developed. On a major embedded project, at some point
you will almost always find a compiler bug of some sort.

Debugging tools are another issue. Since you can't always run general programs on your
embedded processor, you can't always run a debugger on it. This makes fixing your program difficult.
Special hardware such as JTAG ports can overcome this issue in part. However, if you stop on a
breakpoint when your system is controlling real world hardware (such as a motor), permanent equipment
damage can occur. As a result, people doing embedded programming quickly become masters at using
serial IO channels and error message style debugging.

2.1.3 Resources:

To save costs, embedded systems frequently have the cheapest processors that can do the
job. This means your programs need to be written as efficiently as possible. When dealing with large
data sets, issues like memory cache misses that never matter in PC programming can hurt you. Luckily,
this won't happen too often- use reasonably efficient algorithms to start, and optimize only when
necessary. Of course, normal profilers won't work well, due to the same reason debuggers don't work
well.
Memory is also an issue. For the same cost savings reasons, embedded systems usually
have the least memory they can get away with. That means their algorithms must be memory efficient
(unlike in PC programs, you will frequently sacrifice processor time for memory, rather than the
reverse). It also means you can't afford to leak memory. Embedded applications generally use
deterministic memory techniques and avoid the default "new" and "malloc" functions, so that leaks can
be found and eliminated more easily. Other resources programmers expect may not even exist. For
example, most embedded processors do not have hardware FPUs (Floating-Point Processing Unit).
These resources either need to be emulated in software, or avoided altogether.

2.1.4 Real Time Issues:

Embedded systems frequently control hardware, and must be able to respond to them in
real time. Failure to do so could cause inaccuracy in measurements, or even damage hardware such as
motors. This is made even more difficult by the lack of resources available. Almost all embedded
systems need to be able to prioritize some tasks over others, and to be able to put off/skip low priority
tasks such as UI in favor of high priority tasks like hardware control.

2.2 Need For Embedded Systems:


The uses of embedded systems are virtually limitless, because every day new products are
introduced to the market that utilizes embedded computers in novel ways. In recent years, hardware such
as microprocessors, microcontrollers, and FPGA chips have become much cheaper. So when
implementing a new form of control, it's wiser to just buy the generic chip and write your own custom
software for it. Producing a custom-made chip to handle a particular task or set of tasks costs far more
time and money. Many embedded computers even come with extensive libraries, so that "writing your
own software" becomes a very trivial task indeed. From an implementation viewpoint, there is a major
difference between a computer and an embedded system. Embedded systems are often required to
provide Real-Time response. The main elements that make embedded systems unique are its reliability
and ease in debugging.

2.2.1 Debugging:

Embedded debugging may be performed at different levels, depending on the facilities


available. From simplest to most sophisticate 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)
 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
multi core 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 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.
 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 assembly code or source-code.

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, 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 logic analyzer, for instance.

2.2.2 Reliability:

Embedded systems often reside in machines that are expected to run continuously for
years without errors and in some cases recover by them 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
backup s are selected by an operator. Examples include aircraft navigation, reactor control
systems, safety-critical chemical factory controls, train signals, engines on single-engine aircraft.
 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:
 Watchdog timer that resets the computer unless the software periodically notifies the watchdog
 Subsystems with redundant spares that can be switched over to
 software "limp modes" that provide partial function
 Designing with a Trusted Computing Base (TCB) architecture[6] ensures a highly secure &
reliable system environment
 An Embedded Hypervisor is able to provide secure encapsulation for any subsystem component,
so that a compromised software component cannot interfere with other subsystems, or privileged-
level system software. This encapsulation keeps faults from propagating from one subsystem to
another, improving reliability. This may also allow a subsystem to be automatically shut down
and restarted on fault detection.
 Immunity Aware Programming

2.3 Explanation of Embedded Systems:

2.3.1 Software Architecture:


There are several different types of software architecture in common use.

 Simple Control Loop:

In this design, the software simply has a loop. The loop calls subroutines, each of which manages
a part of the hardware or software.

 Interrupt Controlled System:

Some embedded systems are predominantly interrupt controlled. This means that tasks
performed by the system are triggered by different kinds of events. An interrupt could be generated for
example by a timer in a predefined frequency, or by a serial port controller receiving a byte. These kinds
of systems are used if event handlers need low latency and the event handlers are short and simple.

Usually these kinds of systems run a simple task in a main loop also, but this task is not
very sensitive to unexpected delays. Sometimes the interrupt handler will add longer tasks to a queue
structure. Later, after the interrupt handler has finished, these tasks are executed by the main loop. This
method brings the system close to a multitasking kernel with discrete processes.

 Cooperative Multitasking:

A non-preemptive multitasking system is very similar to the simple control loop scheme,
except that the loop is hidden in an API. The programmer defines a series of tasks, and each task gets its
own environment to “run” in. When a task is idle, it calls an idle routine, usually called “pause”, “wait”,
“yield”, “nop” (stands for no operation), [Link] advantages and disadvantages are very similar to the
control loop, except that adding new software is easier, by simply writing a new task, or adding to the
queue-interpreter.

 Primitive Multitasking:

In this type of system, a low-level piece of code switches between tasks or threads based
on a timer (connected to an interrupt). This is the level at which the system is generally considered to
have an "operating system" kernel. Depending on how much functionality is required, it introduces more
or less of the complexities of managing multiple tasks running conceptually in parallel.

As any code can potentially damage the data of another task (except in larger systems
using an MMU) programs must be carefully designed and tested, and access to shared data must be
controlled by some synchronization strategy, such as message queues, semaphores or a non-blocking
synchronization scheme.

Because of these complexities, it is common for organizations to buy a real-time


operating system, allowing the application programmers to concentrate on device functionality rather
than operating system services, at least for large systems; smaller systems often cannot afford the
overhead associated with a generic real time system, due to limitations regarding memory size,
performance, and/or battery life.

 Microkernels And Exokernels:

A microkernel is a logical step up from a real-time OS. The usual arrangement is that the
operating system kernel allocates memory and switches the CPU to different threads of execution. User
mode processes implement major functions such as file systems, network interfaces, etc.

In general, microkernels succeed when the task switching and intertask communication is
fast, and fail when they are slow. Exokernels communicate efficiently by normal subroutine calls. The
hardware and all the software in the system are available to, and extensible by application programmers.
Based on performance, functionality, requirement the embedded systems are divided into three
categories:

2.3.2 Stand Alone Embedded System:

These systems takes the input in the form of electrical signals from transducers or
commands from human beings such as pressing of a button etc.., process them and produces desired
output. This entire process of taking input, processing it and giving output is done in standalone mode.
Such embedded systems comes under stand alone embedded systems

Eg: microwave oven, air conditioner etc..

2.3.3 Real-time embedded systems:

Embedded systems which are used to perform a specific task or operation in a specific
time period those systems are called as real-time embedded systems. There are two types of real-time
embedded systems.

 Hard Real-time embedded systems:

These embedded systems follow an absolute dead line time period i.e.., if the tasking is
not done in a particular time period then there is a cause of damage to the entire equipment.

Eg: consider a system in which we have to open a valve within 30 milliseconds. If this valve is
not opened in 30 ms this may cause damage to the entire equipment. So in such cases we use embedded
systems for doing automatic operations.

 Soft Real Time embedded systems:

Eg: Consider a TV remote control system, if the remote control takes a few milliseconds delay it will not
cause damage either to the TV or to the remote control. These systems which will not cause damage when they are
not operated at considerable time period those systems comes under soft real-time embedded systems.
2.3.4 Network communication embedded systems:

A wide range network interfacing communication is provided by using embedded


systems.

Eg:

 Consider a web camera that is connected to the computer with internet can be used to spread
communication like sending pictures, images, videos etc.., to another computer with internet
connection throughout anywhere in the world.

 Consider a web camera that is connected at the door lock.

Whenever a person comes near the door, it captures the image of a person and sends to
the desktop of your computer which is connected to internet. This gives an alerting message with image
on to the desktop of your computer, and then you can open the door lock just by clicking the mouse. Fig:
2.2 show the network communications in embedded systems.

Fig 2.2: Network communication embedded systems

2.3.5 Different types of processing units:

The central processing unit (c.p.u) can be any one of the following microprocessor,
microcontroller, digital signal processing.

 Among these Microcontroller is of low cost processor and one of the main advantage of
microcontrollers is, the components such as memory, serial communication interfaces, analog to
digital converters etc.., all these are built on a single chip. The numbers of external components
that are connected to it are very less according to the application.

 Microprocessors are more powerful than microcontrollers. They are used in major applications
with a number of tasking requirements. But the microprocessor requires many external
components like memory, serial communication, hard disk, input output ports etc.., so the power
consumption is also very high when compared to microcontrollers.

 Digital signal processing is used mainly for the applications that particularly involved with
processing of signals

2.4 APPLICATIONS OF EMBEDDED SYSTEMS:

2.4.1 Consumer applications:

At home we use a number of embedded systems which include microwave oven, remote
control, vcd players, dvd players, camera etc….

Fig2.3: Automatic coffee makes equipment

2.4.2 Office automation:

We use systems like fax machine, modem, printer etc…

Fig2.4: Fax machine Fig2.5: Printing machine

2.4.3. Industrial automation:

Today a lot of industries are using embedded systems for process control. In industries we
design the embedded systems to perform a specific operation like monitoring temperature, pressure,
humidity ,voltage, current etc.., and basing on these monitored levels we do control other devices, we
can send information to a centralized monitoring station.

Fig2.6: Robot

In critical industries where human presence is avoided there we can use robots which are
programmed to do a specific operation.

2.4.5 Computer networking:

Embedded systems are used as bridges routers etc..

Fig2.7: Computer networking

2.4.6 Tele communications:

Cell phones, web cameras etc.


Fig2.8: Cell Phone Fig2.9: Web camera
CHAPTER 6
HARDWARE DESCRIPTION
1. Overview
ESP32 is a single chip 2.4 GHz Wi-Fi and Bluetooth combo chip designed with
TSMC ultra low power 40 nm technology. It is designed and optimized for the best
power performance, RF performance, robustness, versatility, features and reliability, for
a wide variety of applications, and different power profiles.

1.1 Featured Solutions


1.1.1 Ultra Low Power Solution

ESP32 is designed for mobile, wearable electronics, and Internet of Things (IoT)
applications. It has many features of the state-of-the-art low power chips, including fine
resolution clock gating, power modes, and dynamic power scaling.

For instance, in a low-power IoT sensor hub application scenario, ESP32 is woken up
periodically and only when a specified condition is detected; low duty cycle is used to
minimize the amount of energy that the chip expends. The output power of the power
amplifier is also adjustable to achieve an optimal trade off between communication range,
data rate and power consumption.

1.1.2 Complete Integration Solution

ESP32 is the most integrated solution for Wi-Fi + Bluetooth applications in the industry
with less than 10 external components. ESP32 integrates the antenna switch, RF balun,
power amplifier, low noise receive amplifier, filters, and power management modules.
As such, the entire solution occupies minimal Printed Circuit Board (PCB) area.

ESP32 uses CMOS for single-chip fully-integrated radio and baseband, and also
integrates advanced calibration circuitries that allow the solution to dynamically adjust
itself to remove external circuit imperfections or adjust to changes in external conditions.

As such, the mass production of ESP32 solutions does not require expensive and
specialized Wi-Fi test equip- ment.
1.2 Basic Protocols

1.2.1 Wi-Fi
• 802.11 b/g/n/e/i

• 802.11 n (2.4 GHz), up to 150 Mbps

• 802.11 e: QoS for wireless multimedia technology

• WMM-PS, UAPSD

• A-MPDU and A-MSDU aggregation

• Block ACK

• Fragmentation and defragmentation

• Automatic Beacon monitoring/scanning

• 802.11 i security features: pre-authentication and TSN

• Wi-Fi Protected Access (WPA)/WPA2/WPA2-Enterprise/Wi-Fi Protected Setup (WPS)

• Infrastructure BSS Station mode/SoftAP mode

• Wi-Fi Direct (P2P), P2P Discovery, P2P Group Owner mode and P2P Power Management

• UMA compliant and certified

• Antenna diversity and selection


1.2.2 Bluetooth
• Compliant with Bluetooth v4.2 BR/EDR and BLE specification

• Class-1, class-2 and class-3 transmitter without external power amplifier

• Enhanced power control

• NZIF receiver with -98 dBm sensitivity

• Adaptive Frequency Hopping (AFH)

• Standard HCI based on SDIO/SPI/UART

• High speed UART HCI, up to 4 Mbps

• BT 4.2 controller and host stack

• Service Discover Protocol (SDP)

• General Access Profile (GAP)

• Security Manage Protocol (SMP)

• Bluetooth Low Energy (BLE)

• ATT/GATT

• HID

• All GATT-based profile supported

• SPP-Like GATT-based profile

• BLE Beacon
• A2DP/AVRCP/SPP, HSP/HFP, RFCOMM

• CVSD and SBC for audio codec

• Bluetooth Piconet and Scatternet


1.3 MCU and Advanced Features

1.3.1 CPU and Memory


• Xtensa® Dual-Core 32-bit LX6 microprocessors, up to 600 DMIPS

• 448 KByte ROM

• 520 KByte SRAM

• 16 KByte SRAM in RTC

• QSPI Flash/SRAM, up to 4 x 16 MBytes

• Power supply: 2.2 V to 3.6 V

1.3.2 Clocks and Timers


• Internal 8 MHz oscillator with calibration

• Internal RC oscillator with calibration

• External 2 MHz to 40 MHz crystal oscillator

• External 32 kHz crystal oscillator for RTC with calibration

• Two timer groups, including 2 x 64-bit timers and 1 x main watchdog in each group

• RTC timer with sub-second accuracy

• RTC watchdog

1.3.3 Advanced Peripheral Interfaces


• 12-bit SAR ADC up to 18 channels

• 2 × 8-bit D/A converters

• 10 × touch sensors

• Temperature sensor

• 4 × SPI

• 2 × I2S

• 2 × I2C

• 3 × UART

• 1 host (SD/eMMC/SDIO)

• 1 slave (SDIO/SPI)
• Ethernet MAC interface with dedicated DMA and IEEE 1588 support

• CAN 2.0

• IR (TX/RX)

• Motor PWM

• LED PWM up to 16 channels

• Hall sensor
• Ultra low power analog pre-amplifier

1.3.4 Security
• IEEE 802.11 standard security features all supported, including WFA, WPA/WPA2 and WAPI

• Secure boot

• Flash encryption

• 1024-bit OTP, up to 768-bit for customers

• Cryptographic hardware acceleration:

– AES

– HASH (SHA-2) library

– RSA

– ECC

– Random Number Generator


(RNG)
1.3.5 Development Support
• SDK Firmware for fast on-line programming

• Open source toolchains based on


GCC
1.4 Application
• Generic low power IoT sensor hub

• Generic low power IoT loggers

• Video streaming from camera

• Over The Top (OTT) devices

• Music players

– Internet music players

– Audio streaming devices

• Wi-Fi enabled toys

– Loggers

– Proximity sensing toys

• Wi-Fi enabled speech recognition devices

• Audio headsets
• Smart power plugs

• Home automation

• Mesh netwo
• Industrial wireless control

• Baby monitors

• Wearable electronics

• Wi-Fi location-aware devices

• Security ID tags

• Healthcare

– Proximity and movement monitoring trigger devices

– Temperature sensing loggers

1.5 Block Diagram

SPI Bluetooth
Bluetooth
RF receive
link
baseband
Switch
controller
Balun
I2C
I2S Clock
generator
SDIO Wi-Fi
Wi-Fi MAC RF
UART baseband
transmit

CAN Core and memory


Cryptographic hardware
2 x Xtensa® 32-bit LX6 acceleration
Microprocessors
ETH SHA RSA
IR
ROM SRAM
AES RNG
PWM

Temperature RTC
sensor
Touch sensor ULP Recovery
DAC PMU
coprocessor memory
ADC 24
ESP32 Controller: Overview

The ESP32 is a powerful, low-cost, low-power microcontroller developed by Espressif Systems. It


is widely used in Internet of Things (IoT) applications due to its integrated Wi-Fi and Bluetooth
capabilities, high processing power, and versatile I/O options.

Key Features of ESP32:

1. Dual-Core Processor:
o Contains dual-core Tensilica Xtensa LX6 CPUs that can run up to 240 MHz.
o Supports real-time performance and multitasking.
2. Wireless Connectivity:
o Built-in Wi-Fi (802.11 b/g/n)
o Bluetooth 4.2 and BLE (Bluetooth Low Energy)
o Enables wireless communication, remote control, and cloud connectivity.
3. GPIO Pins:
o Offers over 30 GPIO pins for connecting various peripherals like sensors, motors,
relays, displays, and modules.
o Supports digital I/O, analog input (ADC), PWM, I2C, SPI, UART, and more.
4. Low Power Consumption:
o Ideal for battery-powered and energy-efficient applications.
o Has deep sleep and ultra-low power modes.
5. Memory and Storage:
o Typically includes 520 KB SRAM and external flash memory support (usually 4 MB).
o Can store and run complex programs and libraries.
6. Programming Support:
o Can be programmed using Arduino IDE, MicroPython, PlatformIO, or Espressif's
ESP-IDF (native SDK).
o Large community and library support for rapid development.

Applications of ESP32:

 IoT systems (home automation, smart agriculture, smart cities)


 Wearables and fitness trackers
 Industrial monitoring and automation
 Wireless sensor networks
25
 Security systems (like biometric vehicle starters, RFID door locks)

ESP32 in Biometric Vehicle Starter:

In the biometric vehicle starter system, the ESP32 serves as the central control unit. It:

 Reads fingerprint data from the fingerprint sensor.


 Processes authentication logic.
 Activates the vehicle ignition via relay upon successful verification.
 Communicates with the GSM module to send alerts during unauthorized access attempts.

In summary, the ESP32 is a compact and powerful controller ideal for embedded and connected
applications, offering excellent performance, flexibility, and scalability at a very low cost.

1. GSM MODULE :

GSM/GPRS Module

26
The SIM800C is a Quad-Band GSM/GPRS module in a LCC type

which supports GPRS up to 85.6kbps data transfer. It has

strong extension capability with abundant interfaces including

UART, USB2.0, GPIO etc. The module provides much flexibility

and ease of integration for customer's applications.

GeGeneral features feature


• Frequency Bands: 850/900/1800/1900MHz
• GPRS multi-slot class: 12/10
• Dimensions: 17.6*15.7*2.3mm
• Weight: 1.3±0.1g
• Supply voltage: 3.4 ~ 4.4V
• Operation temperature:-40℃ ~85℃
• Compliant GSM phase 2/2+: Class 4 (2W @ 850/900MHz)
• Compliant GSM phase 2/2+: Class 1 (1W @ 1800/1900MHz)
• Control via AT commands (3GPP TS 27.007, 27.005 &
SIMCom enhanced AT Commands)
• Low power consumption
• GPRS mobile station class B

SIM800C Advantages:

● Small size quad-band GSM/GPRS module


27
● LCC form factor, easy for solder

● Abundant software functions: DTMF, MMS, and

MUX

● Low Power consumption

● Embedded TCP/UDP protocols

SIM800C Details:
Soft Software features ware features
• 0710 MUX protocol
• Embedded TCP/UDP protocol
• FTP/HTTP/POP3/SMTP
• MMS
• D TMF
• Jamming Detection
• Audio Record
• LBS*
• SSL/TLS*
• BT 3.0*
• TTS*
• EAT*

28
An Arduino base board is a microcontroller-based development board designed for prototyping and building
electronic projects. Using this board we can place arduino and connect all pheripherals like sensors and relays
easily.

Also it has 7805 regulator sothat we can get 5v by giving input 12v DC. This 5v used by arduino uno controller
and run applications as per our need.

9.1 LCD DISPLAY

LCD Background:

One of the most common devices attached to a micro controller is an LCD display. Some of the most
common LCD’s connected to the many microcontrollers are 16x2 and 20x2 displays. This means 16
characters per line by 2 lines and 20 characters per line by 2 lines, respectively.

Basic 16x 2 Characters LCD

Figure 1: LCD Pin diagram

29
Pin description:

Pin No. Name Description


Pin no. 1 VSS Power supply (GND)
Pin no. 2 VCC Power supply (+5V)
Pin no. 3 VEE Contrast adjust
0 = Instruction input
Pin no. 4 RS
1 = Data input
0 = Write to LCD module
Pin no. 5 R/W
1 = Read from LCD module
Pin no. 6 EN Enable signal
Pin no. 7 D0 Data bus line 0 (LSB)
Pin no. 8 D1 Data bus line 1
Pin no. 9 D2 Data bus line 2
Pin no. 10 D3 Data bus line 3
Pin no. 11 D4 Data bus line 4
Pin no. 12 D5 Data bus line 5
Pin no. 13 D6 Data bus line 6
Pin no. 14 D7 Data bus line 7 (MSB)

Table 1: Character LCD pins with Microcontroller

The LCD requires 3 control lines as well as either 4 or 8 I/O lines for the data bus. The user may
select whether the LCD is to operate with a 4-bit data bus or an 8-bit data bus. If a 4-bit data bus is
used the LCD will require a total of 7 data lines (3 control lines plus the 4 lines for the data bus). If an
8-bit data bus is used the LCD will require a total of 11 data lines (3 control lines plus the 8 lines for
the data bus).

The three control lines are referred to as EN, RS, and RW.

30
The EN line is called "Enable." This control line is used to tell the LCD that we are sending it data.
To send data to the LCD, our program should make sure this line is low (0) and then set the other two
control lines and/or put data on the data bus. When the other lines are completely ready, bring EN
high (1) and wait for the minimum amount of time required by the LCD datasheet (this varies from
LCD to LCD), and end by bringing it low (0) again.

The RS line is the "Register Select" line. When RS is low (0), the data is to be treated as a
command or special instruction (such as clear screen, position cursor, etc.). When RS is high (1), the
data being sent is text data which should be displayed on the screen. For example, to display the letter
"T" on the screen we would set RS high.

The RW line is the "Read/Write" control line. When RW is low (0), the information on the data
bus is being written to the LCD. When RW is high (1), the program is effectively querying (or
reading) the LCD. Only one instruction ("Get LCD status") is a read command. All others are write
commands--so RW will almost always be low.

Finally, the data bus consists of 4 or 8 lines (depending on the mode of operation selected by
the user). In the case of an 8-bit data bus, the lines are referred to as DB0, DB1, DB2, DB3, DB4,
DB5, DB6, and DB7.

Schematic:

31
Circuit Description:

Above is the quite simple schematic. The LCD panel's Enable and Register Select is connected
to the Control Port. The Control Port is an open collector / open drain output. While most Parallel
Ports have internal pull-up resistors, there is a few which don't. Therefore by incorporating the two
10K external pull up resistors, the circuit is more portable for a wider range of computers, some of
which may have no internal pull up resistors.

We make no effort to place the Data bus into reverse direction. Therefore we hard wire the
R/W line of the LCD panel, into write mode. This will cause no bus conflicts on the data lines. As a
result we cannot read back the LCD's internal Busy Flag which tells us if the LCD has accepted and
finished processing the last instruction. This problem is overcome by inserting known delays into our
program.

The 10k Potentiometer controls the contrast of the LCD panel. Nothing fancy here. As with
all the examples, I've left the power supply out. We can use a bench power supply set to 5v or use an
onboard +5 regulator. Remember a few de-coupling capacitors, especially if we have trouble with the
circuit working properly.

SETB RW

Handling the EN control line:

As we mentioned above, the EN line is used to tell the LCD that we are ready for it to execute
an instruction that we've prepared on the data bus and on the other control lines. Note that the EN line
must be raised/ lowered before/after each instruction sent to the LCD regardless of whether that
instruction is read or write text or instruction. In short, we must always manipulate EN when
communicating with the LCD. EN is the LCD's way of knowing that we are talking to it. If we don't
raise/lower EN, the LCD doesn't know we're talking to it on the other lines.

Thus, before we interact in any way with the LCD we will always bring the EN line low with
the following instruction:

CLR EN
32
And once we've finished setting up our instruction with the other control lines and data bus lines,
we'll always bring this line high:

SETB EN

The line must be left high for the amount of time required by the LCD as specified in its
datasheet. This is normally on the order of about 250 nanoseconds, but checks the datasheet. In the
case of a typical microcontroller running at 12 MHz, an instruction requires 1.08 microseconds to
execute so the EN line can be brought low the very next instruction. However, faster microcontrollers
(such as the DS89C420 which executes an instruction in 90 nanoseconds given an 11.0592 MHz
crystal) will require a number of NOPs to create a delay while EN is held high. The number of NOPs
that must be inserted depends on the microcontroller we are using and the crystal we have selected.

The instruction is executed by the LCD at the moment the EN line is brought low with a final
CLR EN instruction.

Checking the busy status of the LCD:

As previously mentioned, it takes a certain amount of time for each instruction to be executed
by the LCD. The delay varies depending on the frequency of the crystal attached to the oscillator
input of the LCD as well as the instruction which is being executed.

While it is possible to write code that waits for a specific amount of time to allow the LCD to
execute instructions, this method of "waiting" is not very flexible. If the crystal frequency is changed,
the software will need to be modified. A more robust method of programming is to use the "Get LCD
Status" command to determine whether the LCD is still busy executing the last instruction received.

The "Get LCD Status" command will return to us two tidbits of information; the information
that is useful to us right now is found in DB7. In summary, when we issue the "Get LCD Status"
command the LCD will immediately raise DB7 if it's still busy executing a command or lower DB7 to
indicate that the LCD is no longer occupied. Thus our program can query the LCD until DB7 goes

33
low, indicating the LCD is no longer busy. At that point we are free to continue and send the next
command.

Applications:

 Medical equipment
 Electronic test equipment
 Industrial machinery Interface
 Serial terminal
 Advertising system
 EPOS
 Restaurant ordering systems
 Gaming box
 Security systems
 R&D Test units
 Climatizing units
 PLC Interface
 Simulators
 Environmental monitoring
 Lab development
 Student projects
 Home automation
 PC external display
 HMI operator interface.

9.2 Buzzer

Basically, the sound source of a piezoelectric sound component is a piezoelectric diaphragm.


A piezoelectric diaphragm consists of a piezoelectric ceramic plate which has electrodes on both sides
and a metal plate (brass or stainless steel, etc.). A piezoelectric ceramic plate is attached to a metal

34
plate with adhesives. Applying D.C. voltage between electrodes of a piezoelectric diaphragm causes
mechanical distortion due to the piezoelectric effect. For a misshaped piezoelectric element, the
distortion of the piezoelectric element expands in a radial direction. And the piezoelectric diaphragm
bends toward the direction. The metal plate bonded to the piezoelectric element does not expand.
Conversely, when the piezoelectric element shrinks, the piezoelectric diaphragm bends in the
direction Thus, when AC voltage is applied across electrodes, the bending is repeated, producing
sound waves in the air.

To interface a buzzer the standard transistor interfacing circuit is used. Note that if a different
power supply is used for the buzzer, the 0V rails of each power supply must be connected to provide a
common reference.

If a battery is used as the power supply, it is worth remembering that piezo sounders
draw much less current than buzzers. Buzzers also just have one ‘tone’, whereas a
piezo sounder is able to create sounds of many different tones.

To switch on buzzer -high 1

To switch off buzzer -low 1

Notice (Handling) In Using Self Drive Method

1) When the piezoelectric buzzer is set to produce intermittent sounds, sound may be heard
continuously even when the self drive circuit is turned ON / OFF at the "X" point shown in Fig. 9.
This is because of the failure of turning off the feedback voltage.

2) Build a circuit of the piezoelectric sounder exactly as per the recommended circuit shown in the
catalog of the transistor and circuit constants are designed to ensure stable oscillation of the
piezoelectric sounder.

3) Design switching which ensures direct power switching.

4) The self drive circuit is already contained in the piezoelectric buzzer. So there is no need to prepare
another circuit to drive the piezoelectric buzzer.

5) Rated voltage (3.0 to 20Vdc) must be maintained. Products which can operate with voltage higher
than 20Vdc are also available.

35
6) Do not place resistors in series with the power source, as this may cause abnormal oscillation. If a
resistor is essential to adjust sound pressure, place a capacitor (about 1μF) in parallel with the piezo
buzzer.

7) Do not close the sound emitting hole on the front side of casing.

8) Carefully install the piezo buzzer so that no obstacle is placed within 15mm from the sound release
hole on the front side of the casing.

9.3 Relay:
A relay is an electrically operated switch. Many relays use an electromagnet to operate a
switching mechanism, but other operating principles are also used. Relays find applications where it is
necessary to control a circuit by a low-power signal, or where several circuits must be controlled by
one signal. The first relays were used in long distance telegraph circuits, repeating the signal coming
in from one circuit and re-transmitting it to another. Relays found extensive use in telephone
exchanges and early computers to perform logical operations. A type of relay that can handle the high
power required to directly drive an electric motor is called a contactor. Solid-state relays control
power circuits with no moving parts, instead using a semiconductor device triggered by light to
perform switching. Relays with calibrated operating characteristics and sometimes multiple operating
coils are used to protect electrical circuits from overload or faults; in modern electric power systems
these functions are performed by digital instruments still called "protection relays".

36
Relay Driver:

The current needed to operate the relay coil is more than can be supplied by most chips (op.
amps etc), so a transistor is usually needed, as shown in the diagram below.

Use BC109C or similar. A resistor of about 4k7 will probably be alright. The diode is needed
to short circuit the high voltage “back emf” induced when current flowing through the coil is suddenly
switched off.

37
9.4 Fingerprint module:

R307 Fingerprint Module consists of optical fingerprint sensor, high-speed


DSP processor, high-performance fingerprint alignment algorithm, high-capacity
FLASH chips and other hardware and software composition, stable performance,
simple structure, with fingerprint entry, image processing, fingerprint matching,
search and template storage and other functions.

FEATURES:

 Perfect function: independent fingerprint collection, fingerprint registration, fingerprint


comparison (1: 1) and fingerprint search (1: N) function.
 Small size: small size, no external DSP chip algorithm, has been integrated, easy to
install, less fault.
 Ultra-low power consumption: low power consumption of the product as a whole,
suitable for low-power requirements of the occasion.
 Anti-static ability: a strong anti-static ability, anti-static index reached 15KV above.
 Application development is simple: developers can provide control instructions, self-

38
fingerprint application product development, without the need for professional
knowledge of fingerprinting.
 Adjustable security level: suitable for different applications, security levels can be set by
the user to adjust.
 Finger touch sensing signal output, low effective, sensing circuit standby current is very
low, less than 5uA.

SPECIFICATIONS:
 Supply voltage: DC 4.2 ~ 6.0V
 Supply current: Working current: 50mA (typical) Peak current: 80mA
 Fingerprint image input time: <0.3 seconds
 Window area: 14x18 mm
 Matching method: Comparison method (1: 1)
 Search method (1: N)
 Characteristic file: 256 bytes
 Template file: 512 bytes
 Storage capacity: 1000 pieces
 Security Level: Five (from low to high: 1,2,3,4,5)
 Fake rate (FAR): <0.001%
 Refusal rate (FRR): <1.0%
 Search time: <1.0 seconds (1: 1000 hours, mean value)
 Host interface: UART \ USB1.1
 Communication baud rate (UART): (9600xN) bps Where N = 1 ~ 12 (default N = 6, ie
57600bps)
 Working environment: Temperature: -20 ℃- +40 ℃Relative humidity: 40% RH-85% RH(no
condensation)
 Storage environment: Temperature: -40 ℃- +85 ℃Relative humidity: <85% H (no
condensation)

39
SCHEMATIC DIAGRAM:

INTERFACE DESCRIPTION:The R307 fingerprint module has two interface TTL UART and USB2.0,
USB2.0 interface can be connected to the computer; RS232 interface is a TTL level, the default baud
rate is 57600 , can be changed, refer to a communication protocol ; can And microcontroller, such
as ARM, DSP and other serial devices with a connection, 3.3V 5Vmicrocontroller can be connected
directly.

 Needs to connect the computer level conversion, level conversion note , embodiments
such as a MAX232 circuit.

WORKING PRINCIPLE:

 An optical fingerprint scanner works based on the principle of Total Internal Reflection
(TIR). In an optical fingerprint scanner, a glass prism is used to facilitate TIR. Light froman
LED (usually blue color) is allowed to enter through one face of the prism at a certain angle

40
for the TIR to occur. The reflected light exits the prism through the other face where a lens
and an image sensor (essentially camera) are placed

 When there's no finger on the prism, the light will be completely reflected off from
the surface, producing a plain image in the image sensor. When TIR occurs, a small
amount of light leaked to the external medium and it is called the Evanescent Wave.
Materials with different refractive indexes (RI) interact with the evanescent wave
differently. Whenwe touch a glass surface, only the ridges make good contact with it.
The valleys remain separated from the surface by air packets. Our skin and air have
different RIs and thus affect the evanescent field differently. This effect is called
Frustrated Total Internal Reflection (FTIR). This effect alters the intensities of the
internally reflected light and is selected by the image sensor (see this image). The image
sensor data is processed toproduce a high contrast image which will be the digital version of
the fingerprint.
 In capacitive sensors, which are more accurate and less bulky, there's no light involved.
Instead, an array of capacitive sensors are arranged on the surface of the sensor and
allowed to come in contact with the finger. The ridges and air packets affect the
capacitive sensors differently. The data from the sensor array can be used to generate a
digital image of the fingerprint.

 Above is a cross-sectional diagram to get understand the construction (illustrative only, not
a physically exact one). Opening the module was easy; there are four Philips screws on the
back. Unscrew them and it can remove the PCB. There are two PCBs; one arranged
41
horizontally and one vertically (shown in washed green). These PCBs are connected by
solder. The four blue LEDs and the touch sense pad are on the horizontal PCB. The vertical
PCB has the image sensor, the processor and connector. When inserted, the touch sense
pad comes in contact with the glass block above. The image sensor is soldered and glued.
Strangely, I couldn't find any lens on it. May be it doesn't need one. The enclosure has an
internal barrier to separate the light from the LEDs and the light coming out of the prism.
On the bottom side of the prism a black epoxy is coatedwhich gives a high-contrast
background for the fingerprint image. To access the

solenoid door lock

This 12V DC Cabinet Door Lock Electric Lock Assembly Solenoid can be used for locking sell-machine, storage
shelf, file cabinet and etc. The hidden way of unlocking can be used for an emergency. The lock works as the
circuits disconnects, and it will unlock as the instant power-on. It is steady, durable and energy-saving and had a
long lifespan. In the anti-theft and shockproof design, the lock is better than other kinds of locks. After connecting
the wires and when the current is available, the electric lock can control the door’s opening and closing.

Note: Take care of polarity while making the connection without connector (i.e. Red wire should be connected to the
positive and Black wire to negative.)

Features:

 Iron Body Material


 High quality ultra-compact electric lock.
 Rustproof, durable, safe, convenient to use.
 Suction which tightly sucks the iron, thus locking the door.
 Applicable for being installed in the escape door or fire door electronic controlled system.
 Adopts the principle of electric magnetism, when the current through the silicon, the electromagnetic lock
will achieve a strong.
 Slim design, security and stability, low power consumption
 Applied to the cabinet lock, locker locks, file cabinet locks, luggage locks, electric locks, door locks,
solenoid locks, drawer, newspaper boxes lock, sauna lock, locker electromagnetic locks, electric locks,
newspaper boxes, sauna Electronics lock
 Designed with the open frame type and mount board, high power.
 Easy to install for the electric door lock or other automatic door lock systems with the mounting board.

42
43
CHAPTER 10

SIMULATION TOOLS

SOFTWARE DESCRIPTION

This project is implemented using following software’s:


 Express PCB – for designing circuit
 Arduino IDE compiler - for compilation part

Express PCB:

Breadboards are great for prototyping equipment as it allows great flexibility to modify
a design when needed; however the final product of a project, ideally should have a neat PCB, few
cables, and survive a shake test. Not only is a proper PCB neater but it is also more durable as there
are no cables which can yank loose.

Express PCB is a software tool to design PCBs specifically for manufacture by the
company Express PCB (no other PCB maker accepts Express PCB files). It is very easy to use, but it
does have several limitations.

It can be likened to more of a toy then a professional CAD program.

It has a poor part library (which we can work around)

It cannot import or export files in different formats

It cannot be used to make prepare boards for DIY production

Express PCB has been used to design many PCBs (some layered and with surface-mount
parts. Print out PCB patterns and use the toner transfer method with an Etch Resistant Pen to make
boards. However, Express PCB does not have a nice print layout. Here is the procedure to design in
Express PCB and clean up the patterns so they print nicely.

44
Preparing Express PCB for First Use:

Express PCB comes with a less then exciting list of parts. So before any project is
started head over to Audio logical and grab the additional parts by morsel, ppl, and tangent, and
extract them into your Express PCB directory. At this point start the program and get ready to setup
the workspace to suit your style.

Click View -> Options. In this menu, setup the units for “mm” or “in” depending on
how you think, and click “see through the top copper layer” at the bottom. The standard color scheme
of red and green is generally used but it is not as pleasing as red and blue.

The Interface:

When a project is first started you will be greeted with a yellow outline. This yellow
outline is the dimension of the PCB. Typically after positioning of parts and traces, move them to
their final position and then crop the PCB to the correct size. However, in designing a board with a
certain size constraint, crop the PCB to the correct size before starting.

Fig: 4.1 show the toolbar in which the each button has the following functions:

Fig 4.1: Tool bar necessary for the interface

 The select tool: It is fairly obvious what this does. It allows you to move and manipulate
parts. When this tool is selected the top toolbar will show buttons to move traces to the top /
bottom copper layer, and rotate buttons.
 The zoom to selection tool: does just that.
 The place pad: button allows you to place small soldier pads which are useful for board
connections or if a part is not in the part library but the part dimensions are available. When
this tool is selected the top toolbar will give you a large selection of round holes, square holes
and surface mount pads.
 The place component: tool allows you to select a component from the top toolbar and then by
clicking in the workspace places that component in the orientation chosen using the buttons

45
next to the component list. The components can always be rotated afterwards with the select
tool if the orientation is wrong.
 The place trace: tool allows you to place a solid trace on the board of varying thicknesses. The
top toolbar allows you to select the top or bottom layer to place the trace on.
 The Insert Corner in trace: button does exactly what it says. When this tool is selected,
clicking on a trace will insert a corner which can be moved to route around components and
other traces.
 The remove a trace button is not very important since the delete key will achieve the same
result.

Design Considerations:

Before starting a project there are several ways to design a PCB and one must be
chosen to suit the project’s needs.

Single sided, or double sided?

When making a PCB you have the option of making a single sided board, or a double
sided board. Single sided boards are cheaper to produce and easier to etch, but much harder to
design for large projects. If a lot of parts are being used in a small space it may be difficult to make
a single sided board without jumpering over traces with a cable. While there’s technically nothing
wrong with this, it should be avoided if the signal travelling over the traces is sensitive (e.g. audio
signals).

A double sided board is more expensive to produce professionally, more difficult to


etch on a DIY board, but makes the layout of components a lot smaller and easier. It should be
noted that if a trace is running on the top layer, check with the components to make sure you can get
to its pins with a soldering iron. Large capacitors, relays, and similar parts which don’t have axial
leads can NOT have traces on top unless boards are plated professionally.

Ground-plane or other special purposes for one side

When using a double sided board you must consider which traces should be on what
side of the board. Generally, put power traces on the top of the board, jumping only to the bottom if
a part cannot be soldiered onto the top plane (like a relay), and vice- versa.
46
Some projects like power supplies or amps can benefit from having a solid plane to use
for ground. In power supplies this can reduce noise, and in amps it minimizes the distance between
parts and their ground connections, and keeps the ground signal as simple as possible. However,
care must be taken with stubborn chips such as the TPA6120 amplifier from TI. The TPA6120
datasheet specifies not to run a ground plane under the pins or signal traces of this chip as the
capacitance generated could effect performance negatively.

arduino compiling

In next step download library

47
As Arduino doesn’t recognize the directory name, please rename it

Launch Arduino by double click “arduino” below


48
One example

49
Select the target board as “Arduino Uno”:

50
Click Sketch-> Verify/Compile:

51
CHAPTER 11

CODE

#include <LiquidCrystal.h>

#include <stdio.h>

//LiquidCrystal lcd(A0, A1, 4, 5, 6, 7);

LiquidCrystal lcd(13, 12, 14, 27, 26, 25);

#include <WiFi.h>

#include <HTTPClient.h>

HTTPClient http;

const char *ssid = "iotserver";

const char *password = "iotserver123";

int httpResponseCode;

String servername = "[Link]

String accountname = "iot1487";


52
String field1 = "&s1=";

String field2 = "&s2=";

String field3 = "&s3=";

String payload="";

String gsm_string="";

char res[130];

unsigned char
enroll[12]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X03,0X01,0X00,0X05}; // ok

unsigned char
generate_ch[13]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X04,0x02,0X01,0X00,0X08}
; //ok

unsigned char
generate_ch1[13]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X04,0x02,0X02,0X00,0X09
}; //ok

unsigned char un_cmd[12]={0xef,0x01,0xff,0xff,0xff,0xff, 0x01,0x00,0x03,0x05,0x00,0x09 };

unsigned char
store[12]={0xEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X06,0X06,0X02,0x00}; //ok

53
unsigned char
identify[17]={0xef,0x01,0xff,0xff,0xff,0xff,0x01,0x00,0x08,0x1b,0x01,0x00,0x00,0x01,0x01,0x00,0
x27};

int party1_count=0,party2_count=0,party3_count=0,total_count=0;

int sts0=0,sts1=0,sts2=0,sts3=0;

char rcv;

char pastnumber[11];

void serialFlush(){

while([Link]() > 0) {

char t = [Link]();

void serialFlush2(){

while([Link]() > 0) {

char t = [Link]();

}
54
}

int fpenroll(char);

int fpsearch();

int err =0;

#define RXD2 16

#define TXD2 17

int enrol_sw = 18;

int identi_sw = 5;

int lock = 19;

int motor = 21;

int buzzer = 23;

int idk = 0,eid=0;


55
String data_string="";

void iot_send()

[Link](15,1);[Link]("U");

[Link](servername + accountname + field1 + data_string);

httpResponseCode = [Link]();

if(httpResponseCode>0)

payload="";

//[Link]("HTTP Response code: ");

//[Link](httpResponseCode);

payload = [Link]();

//[Link](payload);

else

//[Link]("Error code: ");


56
//[Link](httpResponseCode);

delay(5000);

[Link](15,1);[Link](" ");

int sti=0;

String inputString = ""; // a string to hold incoming data

boolean stringComplete = false; // whether the string is complete

void gsm_send(String strs)

[Link](15,0);[Link]('G');

delay(4000); delay(4000); delay(4000);

[Link]("AT+CMGS=\"");

[Link](pastnumber);

[Link]("\"\r\n"); delay(3000);

[Link](strs);

[Link](0x1A); delay(4000); delay(4000); delay(4000);

[Link](15,0);[Link](' ');
57
}

void okcheck2()

unsigned char rcr;

do{

rcr = [Link]();

}while(rcr != 'K');

void beep()

digitalWrite(buzzer, LOW);delay(3000);digitalWrite(buzzer, HIGH);

void setup()

[Link](9600);

[Link](57600, SERIAL_8N1, RXD2, TXD2);

58
pinMode(lock, OUTPUT);

pinMode(motor, OUTPUT);

pinMode(enrol_sw, INPUT_PULLUP);

pinMode(identi_sw, INPUT_PULLUP);

pinMode(buzzer, OUTPUT);

digitalWrite(buzzer, HIGH);

digitalWrite(lock, LOW);digitalWrite(motor, LOW);

[Link](16,2);

[Link]();[Link]("Biometric Vehicle");

[Link](0,1);[Link](" Starter");

delay(2000);

[Link](ssid, password);

while([Link]() != WL_CONNECTED)

delay(500);

delay(3000);
59
gsminit();

[Link]();

void loop()

{ mn:

//[Link]();lr

[Link]();[Link]("Put Finger.....");

if(digitalRead(enrol_sw) == LOW)

//if(digitalRead(swe) == LOW)

[Link]();[Link](0, 0);[Link]("ENROLLING..");

if(fpenroll(eid) == -1)

//[Link]("Enroll failed:");[Link](err);[Link]("");

err=0;
60
[Link]();[Link](0, 0);[Link]("ENROLL FAILED");

else

//if(eid >= 0 && eid <= 9)

[Link]();[Link](0, 0);[Link]("ENROLLED:");[Link]((int)eid);

//[Link]("Enroll Success to id:");[Link]((int)eid);[Link]("");

eid++;

delay(2000);

// [Link]();[Link](0, 0);[Link]("SELECT OPTION");

if(digitalRead(identi_sw) == LOW)

[Link]();[Link](0, 0);[Link]("FP Identifing..");

idk = fpsearch();

if(err == 1)
61
{err=0;

[Link]();[Link]("Not Found...");

digitalWrite(lock, LOW);digitalWrite(motor, LOW);

beep();

beep();

data_string = "FP_Not_Found";

iot_send();

gsm_send("FP_Not_Found");

delay(2000);

if(idk >= 0 && idk <= 9)

[Link](0, 1);convertk(idk);

delay(2000);

if(idk == 0)

sts1++;
62
if(sts1 == 1)

[Link](3,1);[Link]("Lock Open ");

delay(1000);digitalWrite(lock, HIGH);

data_string = "";

data_string = "FP_ID_" + String(idk) + "_Lock_Open";

iot_send();

gsm_string="";

gsm_string = "FP_ID_" + String(idk) + "_Lock_Open";

gsm_send(gsm_string);

digitalWrite(lock, LOW);

if(sts1 == 2)

{sts1=0;

[Link](3,1);[Link]("Engine ON ");

delay(1000);digitalWrite(motor, HIGH);

data_string = "";

data_string = "FP_ID_" + String(idk) + "_Engine_ON";

iot_send();
63
gsm_string="";

gsm_string = "FP_ID_" + String(idk) + "_Engine_ON";

gsm_send(gsm_string);

if(idk == 1)

sts2++;

if(sts2 == 1)

[Link](3,1);[Link]("Lock Open ");

delay(1000);digitalWrite(lock, HIGH);

data_string = "";

data_string = "FP_ID_" + String(idk) + "_Lock_Open";

iot_send();

gsm_string="";

gsm_string = "FP_ID_" + String(idk) + "_Lock_Open";


64
gsm_send(gsm_string);

digitalWrite(lock, LOW);

if(sts2 == 2)

{sts2=0;

[Link](3,1);[Link]("Engine ON ");

delay(1000);digitalWrite(motor, HIGH);

data_string = "";

data_string = "FP_ID_" + String(idk) + "_Engine_ON";

iot_send();

gsm_string="";

gsm_string = "FP_ID_" + String(idk) + "_Engine_ON";

gsm_send(gsm_string);

if(idk == 2)

sts3++;
65
if(sts3 == 1)

[Link](3,1);[Link]("Lock Open ");

delay(1000);digitalWrite(lock, HIGH);

data_string = "";

data_string = "FP_ID_" + String(idk) + "_Lock_Open";

iot_send();

gsm_string="";

gsm_string = "FP_ID_" + String(idk) + "_Lock_Open";

gsm_send(gsm_string);

digitalWrite(lock, LOW);

if(sts3 == 2)

{sts3=0;

[Link](3,1);[Link]("Engine ON ");

delay(1000);digitalWrite(motor, HIGH);

data_string = "";

data_string = "FP_ID_" + String(idk) + "_Engine_ON";

iot_send();
66
gsm_string="";

gsm_string = "FP_ID_" + String(idk) + "_Engine_ON";

gsm_send(gsm_string);

delay(1000);

int ct=0;

char dummy=0x0f;

int fpenroll(char id)

serialFlush2();

//enroll buffer send 12 bytes

for(int i =0;i<12;i++)
67
[Link](enroll[i]);

res[9] = 1;//

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){}

else{err=1;return -1;}

//generate ch buffer

for(int i =0;i<13;i++)

[Link](generate_ch[i]);

res[9] = 1;

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){}

else{err=2;return -1;}

//enroll buffer send 12 bytes

for(int i =0;i<12;i++)

[Link](enroll[i]);

res[9] = 1;//
68
delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){}

else{err=3;return -1;}

//generate ch1 buffer

for(int i =0;i<13;i++)

[Link](generate_ch1[i]);

res[9] = 1;

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){}

else{err=4;return -1;}

//uncmd buffer send 12 bytes

for(int i =0;i<12;i++)

[Link](un_cmd[i]);

res[9] = 1;//

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;
69
if(res[9] == 0){}

else{err=5;return -1;}

//store buffer send 12 bytes

for(int i =0;i<12;i++)

[Link](store[i]);

dummy = 0x0f+id;

[Link]((uint8_t)id);

[Link]((uint8_t)0x00);

[Link]((uint8_t)dummy);

res[9] = 1;//

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){return id;}

else{err=6;return -1;}

int fpsearch()

ct=0;

serialFlush();
70
//enroll buffer send 12 bytes

for(int i =0;i<12;i++)

[Link](enroll[i]);

res[9] = 1;//

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){}

else{err=1;return -1;}

//generate ch buffer

for(int i =0;i<13;i++)

[Link](generate_ch[i]);

res[9] = 1;

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){}

else{err=2;return -1;}

71
//enroll buffer send 12 bytes

for(int i =0;i<17;i++)

[Link](identify[i]);

res[9] = 1;//

delay(1000);//wait some time to get replay from r305

while([Link]()){res[ct] = [Link]();ct++;}ct=0;

if(res[9] == 0){return (int)res[11];}

else{err=1;return -1;}

void converts(unsigned int value)

unsigned int a,b,c,d,e,f,g,h;

a=value/10000;

b=value%10000;

c=b/1000;
72
d=b%1000;

e=d/100;

f=d%100;

g=f/10;

h=f%10;

a=a|0x30;

c=c|0x30;

e=e|0x30;

g=g|0x30;

h=h|0x30;

//[Link](a);

//[Link](c);

[Link](e);

[Link](g);

[Link](h);

}
73
void convertl(unsigned int value)

unsigned int a,b,c,d,e,f,g,h;

a=value/10000;

b=value%10000;

c=b/1000;

d=b%1000;

e=d/100;

f=d%100;

g=f/10;

h=f%10;

a=a|0x30;

c=c|0x30;

e=e|0x30;

g=g|0x30;

h=h|0x30;
74
//[Link](a);

//[Link](c);

[Link](e);

[Link](g);

[Link](h);

int readSerial(char result[])

int i = 0;

while (1)

while ([Link]() > 0)

char inChar = [Link]();

if (inChar == '\n')

{
75
result[i] = '\0';

[Link]();

return 0;

if (inChar != '\r')

result[i] = inChar;

i++;

void gsminit()

[Link]("AT\r\n"); okcheck2();

[Link]("ATE0\r\n"); okcheck2();

[Link]("AT+CMGF=1\r\n"); okcheck2();

[Link]("AT+CNMI=1,2,0,0\r\n"); okcheck2();

[Link]("AT+CSMP=17,167,0,0\r\n"); okcheck2();
76
[Link]();

[Link]("SEND MSG STORE");

[Link](0,1);

[Link]("MOBILE NUMBER");

do{

rcv = [Link]();

}while(rcv != '*');

readSerial(pastnumber);

[Link]();

[Link](pastnumber);

pastnumber[10]='\0';

delay(4000); delay(4000);

[Link]("AT+CMGS=\"");

[Link](pastnumber);

[Link]("\"\r\n"); delay(3000);

[Link]("Mobile no. registered\r\n");

[Link](0x1A); delay(4000); delay(4000);


77
}

void convertk(unsigned int value)

unsigned int a,b,c,d,e,f,g,h;

a=value/10000;

b=value%10000;

c=b/1000;

d=b%1000;

e=d/100;

f=d%100;

g=f/10;

h=f%10;

a=a|0x30;

c=c|0x30;

e=e|0x30;
78
g=g|0x30;

h=h|0x30;

// [Link](a);

// [Link](c);

// [Link](e);

// [Link](g);

[Link](h);

79
CHAPTER 12: AIM and Objective

AIM:

To design and implement a secure, smart vehicle ignition system using biometric fingerprint
authentication with an ESP32 microcontroller and GSM module, aimed at preventing unauthorized
access and enhancing vehicle safety.

Objectives:

1. To implement biometric authentication using a fingerprint sensor to allow only registered


users to start the vehicle.
2. To integrate the ESP32 microcontroller as the core processing unit for controlling
authentication and ignition logic.
3. To interface a GSM module with the system to send real-time SMS alerts to the vehicle
owner in case of unauthorized access attempts.
4. To eliminate traditional key-based ignition methods, which are prone to theft and
duplication.
5. To enhance the safety and security of vehicles using a cost-effective and efficient embedded
system solution.
6. To ensure easy user registration and management of fingerprint data with a simple
interface.
7. To explore future scalability by enabling integration with other IoT features such as GPS
tracking or mobile app control.

This system aims to provide a modern, user-friendly, and reliable alternative to conventional
vehicle ignition systems by combining biometrics and communication technology.

80
CHAPTER 13: Problem statement

Problem Statement of Biometric Vehicle Starter with ESP32 and GSM Module:

In recent years, the rate of vehicle theft and unauthorized access has been steadily increasing due to
vulnerabilities in traditional security systems such as mechanical keys and RFID-based ignition
systems. These methods can be easily duplicated, stolen, or bypassed, compromising the safety of
vehicles and their owners.

Moreover, existing low-cost vehicle security systems lack real-time alert mechanisms and
personalized user access control. Most do not notify the owner about unauthorized access attempts,
making it difficult to respond promptly in theft situations.

Hence, there is a critical need for a secure, intelligent, and user-specific vehicle ignition system that
combines biometric authentication with real-time communication capabilities.

81
CHAPTER14: Methodology

Methodology of Biometric Vehicle Starter with ESP32 and GSM Module:

The development of the Biometric Vehicle Starter system involves a systematic approach to integrate
biometric authentication with wirelss-based alert features using ESP32 and a GSM module. The
methodology includes both hardware and software design, and is implemented in the following key
steps:

1. Component Selection and System Design:

 Microcontroller: ESP32 is selected for its Wi-Fi, Bluetooth, and GPIO capabilities.
 Biometric Sensor: A fingerprint module (e.g., R307 or GT-511C3) is used for fingerprint
recognition.
 Communication Module: A GSM module (e.g., SIM800L or SIM900) is used for sending
SMS alerts.
 Relay Module: Used to control the ignition mechanism of the vehicle.
 Power Supply: A stable 5V–12V supply is designed for powering the entire system.

2. Fingerprint Enrollment and Authentication:

 Enroll authorized users’ fingerprints into the fingerprint module.


 When a fingerprint is scanned, it is matched with stored templates.
 If matched, access is granted and the ignition relay is activated.
 If unmatched, access is denied and a notification is triggered.

3. ESP32 Control Logic Programming:

 The ESP32 is programmed (via Arduino IDE or ESP-IDF) to:


o Interface with the fingerprint sensor via serial communication.
o Control the relay to turn ON/OFF the ignition system.
o Trigger GSM alerts on failed fingerprint attempts.
o Optionally log time-stamped entries of authentication attempts.

4. GSM Module Communication:

 The ESP32 communicates with the GSM module over UART.


 When an unauthorized access is detected, the GSM module sends an SMS to the vehicle
owner indicating a security breach or unauthorized attempt.

82
5. System Integration and Testing:

 Assemble and connect all components on a breadboard or PCB.


 Test successful and unsuccessful fingerprint scans.
 Validate relay control for ignition and SMS functionality.
 Fine-tune delay times, message formats, and sensor sensitivity.

6. Optional Enhancements (Future Scope):

 Integration with a GPS module for real-time location tracking.


 Development of a mobile app interface via Bluetooth or Wi-Fi.

Conclusion:

The methodology ensures a secure, real-time, and user-specific ignition system by combining
fingerprint-based access control with wireless-enabled communication. It is a practical solution to
enhance the safety and convenience of vehicle owners.

83

You might also like