Smart Parking Management System Using Iot For Real
Smart Parking Management System Using Iot For Real
This project proposes a Smart Parking Management System that utilizes IoT
technology to monitor and display real-time parking slot availability using two key
sensors: an ultrasonic sensor and an IR sensor. These sensors are deployed at
individual parking spots to detect the presence or absence of a vehicle. The data
collected is processed by a microcontroller (such as Arduino or NodeMCU) and
transmitted wirelessly to a cloud platform via Wi-Fi.
The system provides users with live updates on parking slot status through a web or
mobile dashboard, reducing the time and effort spent searching for available parking.
Real-time monitoring helps in efficient space utilization, minimizes traffic congestion,
and improves overall parking management. This low-cost, scalable solution
demonstrates how IoT can be leveraged to create smarter, more efficient urban
infrastructure.
INTRODUCTION:
With rapid urbanization and the increasing number of vehicles on the road, finding
available parking spaces has become a major challenge in cities around the world.
Conventional parking systems often lack real-time updates, leading to traffic
congestion, fuel wastage, and user frustration. To address these issues, smart parking
solutions are gaining attention for their ability to improve efficiency and enhance the
overall parking experience.
Like traffic lights, factory controllers, and largely complex systems like hybrid
vehicles, MRI, and avionics Embedded systems range from portable devices such
as digital watches and MP3 players, to large stationary installations. Complexity
varies from low, with a single microcontroller
Benefits of IoT
There are numerous real-world applications of the internet of things, ranging from
consumer IoT and enterprise IoT to manufacturing and industrial IoT (IoT). IoT
applications span numerous verticals, including automotive, telco, energy and more.
In the consumer segment, for example, smart homes that are equipped with smart
thermostats, smart appliances and connected heating, lighting and electronic devices
can be controlled remotely via computers, smartphones or other mobile devices.
Wearable devices with sensors and software can collect and analyze user data,
sending messages to other technologies about the users with the aim of making users'
lives easier and more comfortable. Wearable devices are also used for public safety --
for example, improving first responders' response times during emergencies by
providing optimized routes to a location or by tracking construction workers' or
firefighters' vital signs at life-threatening sites.
In healthcare, IoT offers many benefits, including the ability to monitor patients more
closely to use the data that's generated and analyze it. Hospitals often use IoT systems
to complete tasks such as inventory management, for both pharmaceuticals and
medical instruments.
BLOCK DIAGRAM:
HARDWARE REQUIREMENT:
SOFTWARE REQUIREMENT:
Arduino IDE
Embedded C
IOT Platform
Power Requirement:
As the operating voltage range of ESP8266 is 3V to 3.6V, the board comes
with a LDO voltage regulator to keep the voltage steady at 3.3V. It can reliably
supply up to 600mA, which should be more than enough when ESP8266 pulls as
much as 80mA during RF transmissions. The output of the regulator is also broken
out to one of the sides of the board and labeled as 3V3. This pin can be used to supply
power to external components.
Power to the ESP8266 Node MCU is supplied via the on-board Micro B USB
connector. Alternatively, if you have a regulated 5V voltage source, the VIN pin can
be used to directly supply the ESP8266 and its peripherals.
Power Pins:
There are four power pins viz. one VIN pin & three 3.3V pins. The VIN pin
can be used to directly supply the ESP8266 and its peripherals, if you have a regulated
5V voltage source. The 3.3V pins are the output of an on-board voltage regulator.
These pins can be used to supply power to external components.
GND:
GND is a ground pin of ESP8266 Node MCU development board.
I2C Pins:
I2C Pins are used to hook up all sorts of I2C sensors and peripherals in your
project. Both I2C Master and I2C Slave are supported. I2C interface functionality can
be realized programmatically, and the clock frequency is 100 kHz at a maximum. It
should be noted that I2C clock frequency should be higher than the slowest clock
frequency of the slave device.
GPIO Pins:
ESP8266 Node MCU has 17 GPIO pins which can be assigned to various
functions such as I2C, I2S, UART, PWM, IR Remote Control, LED Light and Button
programmatically. Each digital enabled GPIO can be configured to internal pull-up or
pull-down, or set to high impedance. When configured as an input, it can also be set
to edge-trigger or level-trigger to generate CPU interrupts.
ADC Channel:
The Node MCU is embedded with a 10-bit precision SAR ADC. The two
functions can be implemented using ADC viz. Testing power supply voltage of
VDD3P3 pin and testing input voltage of TOUT pin. However, they cannot be
implemented at the same time.
UART Pins:
ESP8266 Node MCU has 2 UART interfaces, i.e. UART0 and UART1, which
provide asynchronous communication (RS232 and RS485), and can communicate at
up to 4.5 Mbps. UART0 (TXD0, RXD0, RST0 & CTS0 pins) can be used for
communication. It supports fluid control. However, UART1 (TXD1 pin) features only
data transmit signal so, it is usually used for printing log.
SPI Pins:
ESP8266 features two SPIs (SPI and HSPI) in slave and master modes. These
SPIs also support the following general-purpose SPI features:
4 timing modes of the SPI format transfer
Up to 80 MHz and the divided clocks of 80 MHz
Up to 64-Byte FIFO
SDIO Pins:
ESP8266 features Secure Digital Input/Output Interface (SDIO) which is used
to directly interface SD cards. 4-bit 25 MHz SDIO v1.1 and 4-bit 50 MHz SDIO v2.0
are supported.
PWM Pins:
The board has 4 channels of Pulse Width Modulation (PWM). The PWM
output can be implemented programmatically and used for driving digital motors and
LEDs. PWM frequency range is adjustable from 1000 μs to 10000 μs, i.e., between
100 Hz and 1 kHz.
Control Pins:
Control pins are used to control ESP8266. These pins include Chip Enable pin
(EN), Reset pin (RST) and WAKE pin.
EN pin – The ESP8266 chip is enabled when EN pin is pulled HIGH. When
pulled LOW the chip works at minimum power.
RST pin – RST pin is used to reset the ESP8266 chip.WAKE pin.
ULTRASONIC SENSOR:
An ultrasonic sensor is used to measure the distance between the sensor and an
object using sound waves. In a smart parking system, it helps detect whether a
parking slot is occupied or vacant.
It works by sending an ultrasonic pulse from the Trig pin, which bounces off nearby
objects (like a car) and returns to the Echo pin. The time it takes for the echo to return
is used to calculate the distance. If the distance is below a set threshold (e.g., 15 cm),
the system detects the slot as occupied.
Low-cost
Easy to use
Accurate for short ranges (2–400 cm)
The sensor sends out an ultrasonic pulse from the Trig pin.
The pulse travels through the air and bounces back when it hits an object (e.g., a
car).
The Echo pin receives the reflected signal.
The sensor calculates the distance based on the time taken for the pulse to return,
using the formula:
Range: 2 cm to 400 cm
Accuracy: ±0.3 cm
Voltage: 5V
Pins: VCC, GND, Trig, Echo
Application in Parking:
Advantages:
Limitations:
What is an IR Sensor?
Working Principle
How It Works:
The IR LED continuously emits infrared light.
When a vehicle enters a parking slot, the IR light reflects back.
The receiver detects the reflected IR signal.
The sensor outputs a digital HIGH/LOW signal based on the presence or absence
of an object.
Pins:
Advantages
Limitations
The Embedded C code written in above block diagram is used for blinking the LED
connected with Port0 of microcontroller.
Easy to understand
High Reliability
Portability
Scalability
Function is a collection of statements that is used for performing a specific task and a
collection of one or more functions is called a programming language.
Most consumers are familiar with application software that provide functionality on a
computer. Embedded software however is often less visible, but no less complicated.
Unlike application software, embedded software has fixed hardware requirements and
capabilities, and addition of third-party hardware or software is strictly controlled.
Embedded software needs to include all needed device drivers at manufacturing time,
and the device drivers are written for the specific hardware. The software is highly
dependent on the CPU and specific chips chosen. Most embedded software engineers
have at least a passing knowledge of reading schematics, and reading data sheets for
components to determine usage of registers and communication system. Conversion
between decimal, hexadecimal and binary is useful as well as using bit manipulation.
Web applications are rarely used, although XML files and other output may be passed
to a computer for display. File systems with folders are typically absent as are SQL
databases.
Software development requires use of a cross compiler, which runs on a computer but
produces executable code for the target device. Debugging requires use of an in-
circuit emulator, JTAG or SWD. Software developers often have access to the
complete kernel (OS) source code.
Size of the storage memory and RAM can vary significantly. Some systems run in
16 KB of Flash and 4 KB of RAM with a CPU operating at 8 MHz, other systems can
rival contemporary computers.[8] These space requirements lead to more work being
done in C or embedded C++, instead of C++. Interpreted languages
like BASIC (while e.g. Parallax Propeller can use compiled BASIC) and Java (Java
ME Embedded 8.3[9] is available for e.g. ARM Cortex-M4, Cortex-
M7 microcontrollers and older ARM11used in Raspberry Pi and Intel Galileo Gen. 2)
are not commonly used; while an implementation of the interpreted Python 3
language – MicroPython – is however available expressly for microcontroller use,
e.g. 32-bit ARM-based (such as BBC micro:bit) and 16-bit PIC
microcontrollers.Communications between processors and between one processor and
other components are essential. Besides direct memory addressing, common protocols
include I²C, SPI, serial ports, and USB.Communications protocols designed for use
in embedded systems are available as closed source from companies
including InterNiche Technologies and CMX Systems. Open-source protocols stem
from uIP, lwip, and others.This program explains how to use structure within
structure in C using normal variable. “student_college_detail’ structure is declared
inside “student_detail” structure in this program. Both structure variables Ple
ARDUINO IDE:
The Arduino platform has become quite popular with people just starting out
with electronics, and for good reason. Unlike most previous programmable circuit
boards, the Arduino does not need a separate piece of hardware (called a programmer)
in order to load new code onto the board – you can simply use a USB cable.
Additionally, the Arduino IDE uses a simplified version of C++, making it easier to
learn to program. Finally, Arduino provides a standard form factor that breaks out the
functions of the micro-controller into a more accessible package.
The Arduino hardware and software were designed for artists, designers,
hobbyists, hackers, newbies, and anyone interested in creating interactive objects or
environments. Arduino can interact with buttons, LEDs, motors, speakers, GPS units,
cameras, the internet, and even your smart-phone or your TV! This flexibility
combined with the fact that the Arduino software is free, the hardware boards are
pretty cheap, and both the software and hardware are easy to learn has led to a large
community of users who have contributed code and released instructions for
a huge variety of Arduino-based projects
There are many varieties of Arduino boards (explained on the next page) that
can be used for different purposes. Some boards look a bit different from the one
below, but most Arduinos have the majority of these components in common:
The Arduino IDE supports the languages C and C++ using special rules of code
structuring. The Arduino IDE supplies a software library from the Wiring project,
which provides many common input and output procedures. User-written code only
requires two basic functions, for starting the sketch and the main program loop, that
are compiled and linked with a program stub main() into an executable cyclic
executive program with the GNU toolchain, also included with the IDE distribution.
The Arduino IDE employs the program avrdude to convert the executable code into a
text file in hexadecimal encoding that is loaded into the Arduino board by a loader
program in the board's firmware.
CONCLUSION: