declaration · an internet of things (iot) based parking system informs the user to find out about...
TRANSCRIPT
i
DECLARATION
We hereby declare that we carried out the work reported in this report in the School
of Electrical and Computer Engineering, Addis Ababa Institute of Technology, under
the supervision of Mr. Melaeke Serawit. We solemnly declare that to best our
knowledge, no part of this report has been submitted here or elsewhere in a previous
application for a final year project. All sources of knowledge used have been duly
acknowledged.
................... ....................... .....................
Ewnetu Kefale Meklit Motbainor Yishak Nur
ATR/2459/06 ATR/2932/06 ATR/3547/06
ii
ACKNOWLEDGMENT
At the very beginning we would like to express our gratitude to almighty God for
giving us strength and composure to complete our BS. c. Thesis project within the
scheduled time.
During the period of our project, we have received generous help from many
quarters, which we like to put on record here with deep gratitude and great pleasure.
First and foremost, we would like to thank our respected families for their emotional
support. Secondly, we are grateful to our advisor Mr. Melaeke Serawit, who allowed
us to encroach upon his precious time freely right from the very beginning of the
project till now. His guidance, flexibility and another perspective on issues raised
paved the way for a meaningful and successful project output. We are grateful
especially to Anteneh Alemu (PhD), who was kind enough to give us components for
the project.
iii
EXECUTIVE SUMMARY
Roads are designed and built to handle traffic which doubles or triples in a quarterly
rate. All these cars come to rest at some time, we see double parking everywhere
and even triple parking (we had to come up with a term) because the drivers won’t
take the risk of going elsewhere to park their car just because they have no idea of
what awaits them in other parking areas.
Getting the right “information” about “space” to the drivers in our city so they won’t
waste their time looking for parking spaces or park inappropriately because of lack
of information. With the right funding and wide scale implementation, the project can
be helpful in reducing illegal parking and in a way help with the traffic jams we see
in our city.
An Internet of Things (IoT) based Parking System informs the user to find out about
the nearest parking area and gives availability of parking slots in that respective area.
It mainly focuses on reducing time in finding the parking slots and also avoiding
unnecessary travelling through filled parking lots in a parking area. Thus, it reduces
the fuel consumption which in turn reduces carbon footprints in the atmosphere.
This project mainly focuses on the city of Addis Ababa and takes into account the
city’s infrastructural and technological advancements.
As a methodology, since we have worked on the hardware and software sections of
the project separately we have used staged delivery for the hardware section and
extreme programming for the software section, in which we worked our way up the
system from the basic sensors all the way to our server.
iv
Table of Contents
Declaration..........................................................................................i
Acknowledgment.................................................................................ii
Executive summary.............................................................................iii
List of figures.....................................................................................vi
List of tables....................................................................................viii
1. Introduction ...................................................................................1
1.1 Background...............................................................................1
1.2 Significance and Motivation.........................................................2
1.3 Aim and Objective .....................................................................3
1.4 Methodology .............................................................................4
2. Literature Review.............................................................................7
3. System Description and Architecture.................................................13
3.1. System Overview and Requirements...........................................13
3.2. Project Plan and Timeline..........................................................14
3.3. Working Principle.....................................................................16
3.4. Components of the System.......................................................17
3.4.1. IR Sensor........................................................................18
3.4.2. Ultrasonic Sensor.............................................................20
3.4.3. Arduino...........................................................................22
3.4.4. Raspberry PI....................................................................24
3.4.5. Server............................................................................27
3.4.5.1. Django Framework...............................................28
3.4.5.2. Django REST API..................................................29
3.4.5.3. Celery and RabbitMQ............................................31
3.4.6. Parking Area and Parking Building......................................34
3.4.7. User and Parking Attendant Mobile Applications....................35
3.4.8. Admin Dashboard.............................................................37
4. System Design and Walkthrough......................................................39
4.1. Hardware Components.............................................................39
4.1.1. Arduino and Sensor Configuration.......................................39
4.1.2. Communication Modules....................................................43
4.2. Software Design and Implementation.........................................45
4.2.1. Server-Side Implementation..............................................45
4.2.2. End User Applications........................................................48
4.2.2.1. Functional and Non-Functional Requirements............48
4.2.2.2. Actors, Goals and Use cases...................................50
4.2.2.3. User Interface Design............................................59
4.2.2.4. Network Protocol and Hardware requirement............64
v
5. Design of Tests............................................................................65
5.1. Hardware Testing..................................................................65
5.2. Testing Server......................................................................66
5.3. Testing Mobile Applications.....................................................69
6. Results and Conclusion.................................................................71
7. SWOT Analysis............................................................................75
8. What’s Next................................................................................77
9. References.................................................................................79
Appendix........................................................................................81
vi
LIST OF FIGURES
Figure 1: Staged Delivery ........................................................................4
Figure 2: Extreme Programming Features..................................................6
Figure 3: Project Steps...........................................................................14
Figure 4: Internet of Things.....................................................................16
Figure 5: General Smart Parking System Architecture ................................18
Figure 6: IR Obstacle Avoidance Sensor....................................................19
Figure 7: HC-SR04 (Ultrasonic Sensor) .....................................................21
Figure 8: Diagram of the basic ultrasonic sensor operation...........................21
Figure 9: Arduino UNO............................................................................23
Figure 10: Raspberry Pi Model B+ v 1.1....................................................24
Figure 11: A typical server room..............................................................27
Figure 12: Django Architecture................................................................28
Figure 13: Sample JSON code format.......................................................30
Figure 14: Classic Consumer/Producer Problem.........................................32
Figure 15: RabbitMQ, Celery, Redis..........................................................32
Figure 16: The concept of broker and task runner (worker) explained...........33
Figure 17: Parking Building and Parking Area............................................34
Figure 18: Top view of a parking building system implementation (case 1) ...39
Figure 19: Top view of a parking building system implementation (case 2) ...41
Figure 20: Top view of parking area implementation..................................42
Figure 21: Proteus simulation of a parking building case scenario................43
Figure 22: Serial Communication............................................................44
Figure 23: Experimental setup 1.............................................................44
Figure 24: Experimental setup 2.............................................................45
Figure 25: ER Diagram Layout................................................................46
Figure 26: Admin Dashboard summary list...............................................47
Figure 27: Snapshot of Map view of the server.........................................47
vii
Figure 28: Use case diagram for parking attendant app...........................51
Figure 29: Use case diagram for user app.............................................55
Figure 30: Parking attendant app mockup............................................59
Figure 31: UI design for parking attendant app-1..................................60
Figure 32: UI design for parking attendant app-2..................................60
Figure 33: User app screens mockup...................................................61
Figure 34: UI design for user app-1.....................................................62
Figure 35: UI design for user app-2.....................................................63
Figure 36: Map Navigation in action......................................................64
Figure 37: Summary results from different tests....................................73
Figure 38: Big Data...........................................................................78
viii
LIST OF TABLES
Table 1: Summary of Intelligent parking systems.....................................12
Table 2: Gantt Chart for the Project.......................................................15
Table 3: Comparison between Arduino UNO and Raspberry PI 2.................26
Table 4: Functional Requirements for parking attendant app.....................48
Table 5: Non-functional Requirements for parking attendant app...............49
Table 6: Functional Requirements for user app........................................49
Table 7: Non-functional Requirements for user app..................................50
Table 8: Actor and Goal of parking attendant app....................................50
Table 9: casual description of use cases for parking attendant app.............51
Table 10: Traceability Matrix for parking attendant app............................52
Table 11: UC-1 Description for parking attendant app..............................52
Table 12: UC-2 description for parking attendant app..............................53
Table 13: UC-3 Description for parking attendant app..............................53
Table 14: UC-4 Description for parking attendant app..............................54
Table 15: Actor and Goal of user app.....................................................54
Table 16: Casual Description of use cases for user app.............................55
Table 17: Traceability matric for user app...............................................56
Table 18: UC-3 Description for user app.................................................57
Table 19: UC-4 Description for user app.................................................57
Table 20: UC-5 Description for user app.................................................58
Table 21: UC-8 Description for user app.................................................58
ix
Table 22: UC-1 Description for user app.................................................59
Table 23: Test results of the database lookup.........................................71
Table 24: Test results after removing the serializer.................................72
Table 25: Using of Broker in implementation..........................................72
Table 26: Strengthes..........................................................................75
Table 27: Weaknesses.........................................................................76
Table 28: Opportunities.......................................................................76
Table 29: Threats...............................................................................76
1 |
1. INTRODUCTION
1.1. BACKGROUND
As residents of Addis Ababa we travel a lot specially to get to school and back home,
on our way we see different parking areas filled with illegally parked cars.
Finding a free parking slot in a congested city like Addis Ababa is very hard. Here, if
anyone wants to go outside from home with a personal car first thing that comes to
mind is about parking, where he/she will park his/her car. In most cases, people go
to a parking stations and find that all parking slots are full and then have to go to
another parking station hoping there will be space there. Most of them end up parking
illegally creating traffic jam and making it hard for parking attendants.
Though it seems not like an issue; it is still quite an issue. Infrastructure wise we
have witnessed some work done in the city, we can take the parking garage in
Kasanchis which is very organized and has its display setup outside the building with
the number of cars parked in it. The new parking building around Megenaga is also
another modern parking building. Different buildings offer parking services in
different parts of the city, it is a good start but lacks coordination among the different
facilities because it doesn’t consider the fact that the driver needs to be physically
present to find out if there is a parking slot available.
In recent research in metropolitan cities along with the increasing population their
vehicle density on roads. Hence this leads to annoying issue for the drivers to park
their vehicles as it is very difficult to find a parking slot. The drivers usually waste
time and effort and end up parking their vehicles finding a space on streets through
luck. In worst case, people fail to find any parking space especially during peak hours
and festive seasons. In general parking is a huge pain spot for many drivers.
Inefficient allocation of space, lack of knowledge about parking availability, and lack
of visibility in regarding pedestrians, blind slots, and danger zones all greatly
contribute to parking problems.
Let’s take a case scenario, Abebe is a resident in Addis Ababa working in some
government office. Like many others in the city, he commutes to work each and every
day, so he uses his car quite frequently. He often has trouble parking slots, which
gets frustrating. He frequently becomes stressed because of poor traffic conditions
hinder his ability to find parking. Parking issues could have more serious problems,
such as missing flight or having to confront management about untimeliness.
We researched on the topic further and found out the following statistics, from July
2011 study conducted by IBM across 20 major international cities, highlights existing
parking related problems:
✓ Drivers in urban areas need nearly 20 minutes on average to find parking
✓ Between 30 to 45 percent of traffic in cities is caused by drivers looking for
parking
2 |
✓ 60 percent of drivers reported giving up on finding parking at least once in the
calendar year.
✓ 27 percent of the drivers surveyed got into arguments with fellow drivers over
parking spaces.
The problems mentioned in the previous sections and in this section, all point to the
same direction, we need some kind of efficient system to control all this and make
everything better or at least take the first step in the right way. Different systems
have been designed and implemented all over the world to bring down the problems
caused by parking problems. According to our research, a well laid parking system
could result in 220,000 gallons of fuel savings till 2030 and approximately 300,000
gallons of fuel saved by 2050 if implemented successfully.
Infrastructures are designed and built to last and be used for many years, but a lot
of factors are not considered in the design phase. People are so eager to see their
work come to life, they often dive into implementation without taking a look at the
whole thing from a different perspective. This is often true in many cases. Narrowing
it down to our problem domain, roads are designed and built to handle traffic which
doubles or triples in a quarterly rate. All these cars come to rest at some time, we
see double parking everywhere and even triple parking (we had to come up with a
term) because the drivers won’t take the risk of going elsewhere to park their car
just because they have no idea of what awaits them in other parking areas.
1.2. SIGNIFICANCE AND MOTIVATION
An IoT [Internet of Things] based Parking System, as the name suggests is exactly
what one would think it would be. Putting aside the implementation, what the project
intends to achieve is a way we can park our vehicles in a smart way. We are not
planning to make cars so smart that they find a place to park for themselves, that is
a different topic of interest rather we are trying to aid the parking system by
introducing technology into the working system.
With people’s desire to have their own cars and the car sales sector growing, we will
need to consider “Space” as a factor. Space in our domain will be a parking slot,
which is plenty if used properly and the right information about space is given to the
right individuals at the right time.
Another factor to the mix, “Information” which seems to be generated by the second
and growing by the minute. Information is a key for decision making, in our problem
domain if all those drivers have the information about all the parking spaces available
in the city they won’t double or triple park which apparently creates the risk of being
hit by another car. Internet of things (IoT) plays a vital role in connecting the
surrounding environmental things to the network and makes it easy to access those
un-internet things from any remote location. It’s inevitable for the people to update
with the growing technology. And generally, people are facing problems on parking
vehicles in parking slots in a city.
3 |
An IoT based Parking System informs the user to find out about the nearest parking
area, gives availability of parking slots in that respective area and have the chance
to reserve the parking spot before arrival. It mainly focuses on reducing time in
finding the parking slots and also avoiding unnecessary travel through filled parking
slots in a parking area. Thus, it reduces the fuel consumption which in turn reduces
carbon footprints in the atmosphere.
1.3. AIM AND OBJECTIVE
The goal of this project is to create a user friendly and adaptable system that can be
implemented in large, multi-level parking garages in order to alleviate parking
hassles. The ultimate goal is that the ideas and planning demonstrated through this
system can then be easily upgraded to an actual parking facility. The purpose of the
development of IoT based parking system is to eliminate the unnecessary frustration
drivers experience as they waste priceless minutes circling parking garages looking
for a slot. In addition, traffic flow within the area will be better regulated, creating a
safe atmosphere for both drivers and pedestrians.
What we plan to do is get the right “information” about “Space” to the drivers in our
city so they won’t waste their time looking for parking spaces or park inappropriately
because of lack of information. With the right funding and wide scale implementation
the project can be helpful in reducing illegal parking and in a way help with the traffic
jams we see in our city.
Why do we need such a system?
✓ To accurately predict and sense slot/vehicle occupancy in real-time
✓ Guides residents and visitors of the city to available parking
✓ Simplifies the parking experience and adds value for parking stakeholders,
such as drivers
✓ Help traffic in the city flow more freely leveraging IoT technology
✓ Plays a major role in creating better urban environment by reducing the
emission of carbon dioxide and other pollutants
✓ It enables better and real time monitoring and managing of available parking
space
Overall benefits include:
✓ Gives the drivers information about parking spaces available
✓ Eliminates the hassle of circling a parking garage or area in search of a parking
spot
✓ Helps the traffic flow because of less illegal parking
✓ Saves resources and time
✓ Allows drivers to reserve parking slots before arrival
✓ Creates a way for further advancements and research in the sector
4 |
Going to the bigger picture, systems like this can go well beyond avoiding the
needless circling of blocks. They can also enable cities to develop fully integrated
multi-modal intelligent transportation system that don’t rely on cars in the first place.
1.4. METHODOLOGY
Since our project is composed of both hardware and software components, we have
divided the methodology as we see fit. In the first phase which is covered in the
semester project we have used the staged delivery to work on the project since we
were working on the hardware section of the project. Staged delivery helped us in
different aspects of the project, since we completed some part of the project and we
were able to test it and move to the next stage with a full confidence that the current
module is working according to the design requirements.
Fig 1: Staged Delivery
The reason behind why we chose this methodology for our first phase of the project
is that it helps us identify problems early and let us work on them before moving on
to the other build.
Staged delivery model allows us to deliver our components in stages. It prioritizes
the stages set by us and the general timeline for the semester. It is easier for us to
allocate time and resources. Furthermore, it is a rather safe model to use and poses
quite a contrast against flexible models that are risky for some.
5 |
Staged delivery model employs 4 phases:
Requirement specification: the phase wherein requirements and needs are
defined.
Planning: in the requirement specification phase, needs were determined; for the
planning phase, we set goals and what we hope to accomplish.
Implementation and Testing: phase 1 and phase 2 indicated the needs and goals;
in the implementation and testing phases, the goals are being subdivided into
smaller, more specific categories, with emphasis on priorities. The subcategories such
as designing, testing and distribution are being tested, thereby making them ready;
should the project stop at any point.
Closure: the phase wherein every document and result gathered from the project is
assessed. Best practices are delivered here, and a careful evaluation of positive and
negative outcomes of projects is then used for current and future tasks.
There are several advantages of using the staged delivery model. For one, it is rather
predictable system that allows the project team(us) to easily detect problems before
they happen. This way we can avoid unnecessary costs and resources when faced
with issues along the way.
Another advantage is that the product can be used right away before the full project
is complete. Additionally, since testing is done more often, there is close interaction
between team mates and advisor and other stakeholders of the project. Lastly, since
the project is divided into smaller tasks in the third phase, there is less room for
error.
In the second part of our project we have yet employed another methodology
because we were focused on the software part of the system, which needed more
through approach and a hand on iterative process than the hardware part of the
project.
For the second phase of our project, we have chosen to follow Agile Software
Development Methodology because it provides various benefits for our project
described below.
Agile software development allows us to have effective response to changes in our
requirements and changes in priorities of requirements. Especially in our project it’s
difficult to know in advance which software requirements will change and which will
remain and also, it’s hard to know in advance which priorities will change. Agile
software development allows our team to be structured in a way that encourages
simplistic communication between team members.
Moreover, we can’t get full information in advance about our design without trying
out the implementation then we can iterate back to the design phase based on our
augmented knowledge from the implementation.
6 |
Since we have big time constraints to make sure we’re on the right track to produce
our product we need to observe parts of the working product first and then we will
build on that incrementally. In addition, Agile Software Development also encourages
important skills of teamwork such as common focus, collaboration, decision making
ability, mutual respect and self-organization.
Among the many approaches to agile software development methodology we have
chosen the Extreme Programming (XP) approach because it has the upcoming
benefits to us and our project.
Extreme programming, at the heart of its foundation are communication, simplicity,
feedback, courage and respect. Most importantly we need our tasks to be as simple
as possible (Simplicity) so we need to focus on our immediate needs only. This means
XP creates faster software with less glitch.
Figure 2: Extreme Programming Features
It also has better risk management because it uses pair programming and in pair
programming every code is done by two programmers meaning one will focus on
writing code and the other will try to understand the code and checks if it follows
standards suitable for testing.
7 |
2. LITERATURE REVIEW
We did an overall research on the topic and have read through several articles that
raise the same issues in our problem domain.
Sources [24] for this section are mentioned in the reference section.
The current transportation infrastructure and car parking facilities are deemed insufficient in sustaining the influx of vehicles on the road.
Therefore, problems such as traffic congestion and insufficient parking space inevitably crops up. In Africa, the situation is made worse by the fact that the roads
are significantly narrow compared to the West. Various measures have been taken in the attempt to overcome the traffic problems. Although, the problem can be
addressed via many methods, the paper focuses on the car park management system introduced, which is the smart parking system. This literature review will discuss the evolution of vehicle detection technologies as well as the detection systems
developed over the years.
The industrialization of the world, increase in population, slow paced city development and mismanagement of the available parking space has resulted in
parking related problems. There is a dire for a secure, intelligent, efficient and reliable system which can be used for searching the unoccupied parking facility, guidance
towards the parking facility, negotiation of the parking fee, along with the proper management of the parking facility.
The smart parking system implemented mainly in the Europe, United States and Japan is developed with the incorporation of advanced technologies and researches
from various academic disciplines. With its deployment in the car parking, it is hoped that it would solve the aforementioned problems faced by the patrons within the car
parking.
The smart parking system is considered beneficial for the car park operators, car park patrons as well as in environment conservation. For the car park operators, the
information gathered via the implementation of the Smart Parking System can be exploited to predict future parking patterns. Pricing strategies can also be manipulated according to the information obtained to increase the company’s profit.
In terms of environment conservation, the level of pollution can be reduced by decreasing vehicle emission (air pollutant) in the air. This can be attributed to the
fact that vehicle travel is reduced. As fuel consumption is directly related to vehicle miles travelled, it will be reducing as well.
Patrons are also able to benefit from smart parking system as parking space are able to be fully utilized with a safer, optimized and more efficient system implemented;
The system is made more efficient as vehicle travel time and search time are significantly reduced due to the information provided by the smart parking system.
8 |
With the information provided, drivers are able to avoid car park that are fully occupied and locate vacant parking spaces with ease elsewhere.
The number of vehicles parked illegally by the roadside which leads to traffic
congestion is also reduced as it is absorbed into the car parks. Most importantly, traffic congestion can be reduced. All this would eventually lead to convenience for
the patrons. The services which the smart parking system should provide in the future can be:
✓ The parking availability information system and parking reservation system
should provide advanced navigation services. ✓ The mobile electric commerce system and the continuously working gate
system should collect the tool charges electrically.
✓ An automated navigation system should assist in safe driving. ✓ As in-facility navigation system should provide the best possible traffic
management. ✓ Provisions of effective security for the safety of cars ✓ Provision of strong functions for facilitating administrators and mangers in the
management of the parking facility.
Categories of smart parking system
The smart parking system can be divided into five major categories: namely, Parking Guidance and Information System (PGIS), transit-based information system, smart
payment system, E-parking and automated parking.
Parking Guidance and Information System (PGIS) encompasses two major categories. The PGIS can either include the entire city area or function only within
the car park facility. Both provides information which aids the decision-making process of the drivers in reaching their destination location and aids them in locating a vacant parking space within the car park facility. The city wide PGIS is indeed
helpful in assisting drivers to car park with vacant parking spaces via the information occupancy status for various car parks around the city as well as other relevant
information. On the other hand, guidance in locating the vacant parking space within the car park is ultimately provided by PGIS implemented within the car park. PGIS can be summarized as consisting of 4 major components: namely, information
disseminating mechanism, information gathering mechanism, control center and telecommunication networks. Static/dynamic Variable Message Signs (VMS) have
been used in providing drivers with direction either on the road or within the car park. Mobile phones can also be used for guidance based on the research conducted which
utilizes Global Positioning System (GPS) for vehicle detection. A map of the driver’s current position based on the GPS data along with the status of three of the nearby car park are sent to their mobile phones based on the patron’s current location.
Besides that, the parking guidance system developed based on web and GIS technology are able to disseminate information to the users via internet, mobile
phones and/or PDA. The guidance system can be with the conventional parking management system as well. In order to guide the patrons effectively, the car park map is printed on the parking ticket equipped with Radio Frequency Identification
9 |
(RFID) tags for guidance so that patrons can locate the assigned parking slot with ease. There are also no worries about forgetting the location of the assigned parking
slot during exit.
Vehicle detection sensors are commonly installed at entrances, exits and/or individual parking space to detect vehicle occupancy. Indicator lights integrated with sensors
are also sometimes installed at every individual parking space within the parking facility. The occupancy status detected by the sensors can either be occupancy of
each individual parking space or in terms of vehicles counts in the car park depending on the installation of the sensors. Moving on, the control center gathers and processes the traffic and occupancy information as well as controls the display of
information for drivers whereas the telecommunication network facilitates the transfer of information among the other three modules. With the advent of advanced
technologies, the implementation of devices such as microcontroller and Field Programmable Gate Array (FPGA) are incorporated for faster information processing. Not only that, the telecommunication networks no longer dependent on conventional
electrical wiring but wireless technologies are able to be utilized. Researchers have all used wireless network for data transfer in the implementation of their proposed
parking guidance system.
The functionality of Transit Based Information System implemented is actually similar to PGIS. The difference exists in the fact the Transit Based Information System concentrates on guiding user to park-and-ride facilities. It provides real-time
information on the status of each car park and public transportation such as the schedules and traffic condition to the public. The additional information provided
enables the patrons to plan for transit in advance without getting into any inconvenience. Among its benefits includes increase in the utilization of public transportation as the primary means of transportation as they can leave their vehicle
in the car park and switch to public transportation with ease. This will indirectly lead to an increase in the transit revenue. There have been many researches centered
upon using Geographic Information System (GIS). Among them are the research conducted for siting park-and-ride car parks in Columbus, Ohio. Farhan and Murray (2008) incorporated multi-objective spatial optimization model in locating the park-
and-ride facilities while considering numerous objectives and constraints as well as taking into consideration the existing system. While research by Farhan and Murray
(2008) made no assumption on user demands, Horner and Grubesic (2001) used Principal Component Analysis (PCA) in representing the index of user demands which
will be converted to demand points when coupled with information obtained via Geographic Information System (GIS). Subsequently, additional calculation conducted by Horner and Groves (2007) takes into account various other factors
which includes: geographical, network, travel time from demand points to the location of the park-and-ride facilities and the constraints of computer shed shapes
are performed in determining the location and commuter shed area for the park-and-ride lots.
The Smart Payment System is implemented in the effort to overcome the limitation of the conventional payment methods by revamping the payment method via parking
meter and introduce new technologies. This is because the conventional method
10 |
causes delay and inconvenience for the patrons as they have to deal with cash. It also reduces maintenance and staffing requirement for payment handling purposes
as well as traffic control.
In general, the Smart Payment System implemented consists of contact method, contactless method and mobile devices. While the contact method involves the use
of smart cards, debit cards and credit cards, the contactless method involves the use of contactless cards, mobile devices as well as Automated Vehicle Identification (AVI)
tag whereby RFID technologies are utilized. As contact methods requires contact of the cards with parking meter or payment machines in the facility, the latter offers more convenience to the patrons. The main concern hindering the implementation of
the Smart Payment System would have to be skepticism on the privacy and security issues. This is due to the fact that confidential data of the patrons such as personal
information and probably account information are being dealt with which are highly confidential. With the emergence of various threats, it is justifiable to be worried. In RFID implementation alone, exploits, malwares and worms, as well as attacks such
as sniffing, spoofing, replay attack and denial of services are just a fraction of it. Of course, methods have been developed in securing the data and overcoming the
threats as is it discovered ranging from the cryptography, detection and evasion as well as temporary deactivation which are constantly improved from the conventional method implemented which dates back to World War II.
E-parking provides an alternative for patrons to enquire the availability and/or
reserve a parking space at their desired parking facility to ensure the availability of vacant car park space when they arrive at the parking facility. The system can be
accessed via numerous methods such as SMS or through the internet. Some of the additional benefits of using the E-parking system aside from those collectively gained by smart parking system are that it can be extended easily to incorporate the
payment mechanism of smart payment system whereby payments by the patrons are made hassle free using the technologies discussed previously. Customized
information can also be provided to the patrons either before or during their trip to the car park.
Automated parking involves the use of computer-controlled mechanism, which
allows patrons to drive up to the bay, lock the cars and let the machines automatically place the vehicle in the allocated space. This type of car park offers maximum utilization of space as it is machine controlled unlike conventional car park where
space is needed for navigation of vehicle within the car park. Among its benefits are that the implementation works great in locations, where there are limited room for
expansion due to its structure. Besides that, the Automated Parking System also offers efficiency in car storage as it allows car stacking and the patron does not even need to go into the car park which indirectly provides extra safety measures which
covers both the vehicles and patrons.
The safety features are geared towards the vehicle whereby it is important to ensure that the vehicle remains safe and undamaged with all the handling by the computer-
controlled mechanisms. Research by Mathijssen and Pretorius (2007) introduced a three-level software design which includes: Logical Layer (LL), Safety Layer (SL) and
11 |
Hardware Abstraction Layer (HAL) to enforce correct and efficient storage of vehicles in a safe manner. As the car park facility is designed with conveyer belts, rotatable
lifts and shuttles, it has to be coordinated to ensure successful and safe placement and retrieval of the vehicle.
The smart parking system relies heavily on the car park occupancy information as it
is not only used in assisting the drivers on the road, but in the management within the car park as well. There is abundance of sensor system that can be installed to
provide this crucial piece of information. Having said that, there are many factors which can affect the occupancy detection such as sensor chosen car park type and layout, to name a few.
Vehicle sensors and detector system can be categorized into two main categories:
namely, intrusive and non-intrusive sensors. Intrusive sensors are sensors which are typically installed in holes on the road surface, by tunneling under the road surfaces
or anchoring to the surface of the road which leads to invasive procedures of installation whereas the latter can be installed easily by mounting the device on the ground or the ceiling of the car park. With the variety of sensors on the market,
factors such as the cost, environmental condition, scale of implementation as well as the system design would have to be considered while selecting the sensors.
Examples of intrusive sensors include active infrared sensors, inductive loops,
magnetometers, magneto- resistive sensors, pneumatic road tubes, piezoelectric cables and weigh-in-motion sensors. On the other hand, non-intrusive sensors
encompasses microwave radar, passive acoustic array sensors, passive infrared sensor, RFID, ultrasonic and video image processing.
By further examining the various smart parking system currently deployed as well as the commercial system on the market, it provides a brief idea on its implementation
methods and sensor utilization. The different sensor placements as well as the implementation method of the particular system, albeit achieving the same end
results of providing guidance to the patrons, are quite different. Information gathered on the various systems would definitely help in improvising and developing a better system.
Taking the parking to a whole new level, intelligent car parking systems can be
implemented in several ways employing different algorithms and designs.
1. Expert Systems: can solve the problems associated with distributed and complex traffic environment. They are also considered to the main weapon for
laying the foundation of automation mechanism for the parking negotiations and guidance system. Agents has beneficial traits like autonomy, reactivity,
adaptability, proactivity and social ability which can be used for solving problems having highly dynamic and interactive behaviors.
2. Fuzzy Logic based Systems: is used for building the support knowledge and
heuristics of the high-level expert human. It gives a car the capability to independently drive on different types of roads. It also envisions movements
like reverse, parallel parking and three-point turns. For automatically getting
12 |
a functioning car control system, this approach uses a self-training system which benefits from human skills.
3. Wireless Sensor based Systems: a number of low cost sensor nodes make up a WSN. They arrange themselves for making an ad hoc network through
the wireless communication module present on nodes. 4. GPS based Systems: the information about location and availability of a
parking space near the destination is provided to the drivers by current GPS-
based vehicle navigation system. The information of current state of the
parking facility is provided.
5. Vehicular Communication Systems: this schema provides the real time
parking navigation services, intelligent antitheft protection, and friendly
parking information dissemination to the driver.
Table 1: Summary of Intelligent parking systems
Conclusion
The various types of smart parking system and has been presented. From the various
examples of the implementation of the smart parking system being presented, its
efficiency in alleviating the traffic problem that arises especially in the city area where
traffic congestion and the insufficient parking spaces are undeniable. It does so by
directing patrons and optimizing the use of parking spaces.
With the study on all the sensor technologies used in detecting vehicles, which are
one of the most crucial parts of the smart parking system, the pros and cons of each
sensor technologies can be analyzed. Although, there are certain disadvantages in
the implementation of visual based system in vehicle detection as described earlier,
the advantages far outweigh its disadvantages.
13 |
3. SYSTEM DESCRIPTION AND ARCHITECTURE
3.1. SYSTEM OVERVIEW AND REQUIREMENTS
After doing some research and going through different articles, we started to work
on a system that can help in the current traffic and parking issue our city faces. We
started out with a grand idea of finding a smart way to assist drivers to park their
cars with consideration of the implementation and cost to account. From our research
we found out a lot of ways the problem can be tackled; we found some companies
that made a business out of implementing a smart parking system.
Some of the implementations we have discovered are crafted well and precisely they
are what we call revolutionary ideas that take a huge leap to the future. Those ideas,
although look appealing on paper, they will cost a lot which does not go with the
current financial status of our country. So, we set out to find a financial sound and
implementation wise satisfying system.
Our system mainly depends on four factors:
✓ Space
✓ Information
✓ The right Individual
✓ Real time
We are working towards finding the best/optimal way to connect the above factors.
The main objective of the project is Delivering the right information to the right
individual about space at the right time.
In our project the working definition of the factors are:
✓ Space: parking area/slot/building
✓ Information: availability or occupancy
✓ Individual: driver or concerned personnel/group
✓ Time: real time
We worked on introducing technology to the working system.
➢ What technology?
• IoT
According to an article by Matt Burgees (Wired Magazine), in its broadest sense, the
term IoT encompasses everything connected to the internet, but it is increasingly
being used to define objects that talk to each other. Simply, IoT is made of devices
– from simple sensors to smart phones and wearables – connected together.
14 |
The Internet of Things is essentially a system of machines or objects outfitted with
data collecting technologies so that those objects can communicate with one another.
IoT is all about the Network, Devices and Data.
We designed and implemented a system that gathers information about availability
of a parking space from its sensors, which will report to a lower level controller; which
in turn will send to a local controller which is responsible to send the information to
the server. The information gathered by the sensors need to be accurate for the
information to be accepted so we have also incorporated a way in which parking
attendants of parking areas and parking buildings contribute to the system, they will
be able to send information about the vehicles that entered the premises. Based on
the information from the sensors and the parking attendant data the server will
organized the data into a format that is suitable for drivers so they can access it from
their mobile devices to get the information about the availability of a parking slot in
a certain area. Our system is designed and implemented to be a right hand for the
drivers of our city by giving them options of reservation and GPS based map guidance
that comes pretty handy when one doesn’t know where to find parking.
3.2. PROJECT PLAN AND TIMELINE
Our project was divided in two major parts, since it was for both semester and final
thesis project.
Figure 3: Project Steps
15 |
We started out with sub dividing the project as seen in (figure 3). The different
modules of the project are sub divided on each stage to further components.
In the Planning and Design Stage, we did a lot of tinkering by experimenting on
different ideas while maintaining a clear milestone and other objectives of the project.
After having the general understanding of the project, we moved to analyzing our
system from a working point of view. We were taking into account implementation,
considering feasibility to the basic component level. We experimented with well-
defined and clear ideas.
Table 2: Gantt chart for the project
On the Hardware Configuration stage, we configured sensors and controllers which
is our base line for the overall project. We worked on object(vehicle) detection and
communication among the controllers, we tested different communication modules
and picked the one with the least cost and better performance the meet our standards
that were set at the beginning. We also configured the controllers to send data
gathered from sensors to the server.
On the third stage, Software Development, we worked on the client side and server
configuration. User end applications with simple and easy to use interface and design
was implemented. Information that is gathered by sensors and sent by the
microcontroller to the server for processing. We focused on the development of
android application and admin dashboard. The app development had two components
which involved a parking attendant and driver as users. The user app accesses data
for the most part and using the parking attendant app, the parking attendant feeds
data to the server to further strengthen the data collected from the sensors and
reduce the margin of error.
The last stage is Testing and Debugging, we checked each module as individual
components and as components of the whole system. We designed tests that were
based on the initial requirements of such a system that is feasible for the city of Addis
Ababa.
16 |
3.3. WORKING PRINCIPLE
Internet of Things(IoT) is a combination of interrelated devices which includes
computing devices, microcontrollers, different types of sensors and machines which
are interconnected with each other over the internet to perform a designated task
with no human to computer interaction.
IoT is a technology that connects different devices to the internet and communicates
with the user where the user can remotely control and monitor the device or just use
the information fed to the system by the sensors. And the use of IoT has exponentially
increased in the recent years due to the availability of different technologies which
will make it easy to connect to the internet.
IoT is integrated with four different characteristics which make it perform the task it
is designated to.
Sensors and devices are devices which may have special properties or perform
simple task to get information from the environment such as in this scenario to detect
the presence of a vehicles with the help of sensors. The task of the devices mainly is
to grab information from the environment.
Connectivity, this is the most important part of IoT which is to connect the sensors
or the devices to a cloud, a platform that can be accessed through the internet. So,
we should make sure that the internet connectivity is given. To achieve this, different
methods are used such as using GSM (which is the most common form) or by Wi-Fi
or connecting directly via Ethernet which will route to the internet.
Data Processing, once the data is transmitted over the internet to the cloud/server
then there have to be a data process which would be performed and displayed to the
user. These processes may involve displaying the temperature or the availability of
a vehicle in a slot (our project) and much more.
Figure 4: Internet of Things
17 |
User Interface, this is the platform in which the data could be communicated with
the user. And also, the platform in which the user can remotely send instructions to
devices to perform particular tasks such to activate or deactivate, on or off etc. The
users can connect to the IoT application via a mobile or desktop application but the
most commonly used platforms as there is no need to design specific native apps and
desktop apps for different vendors but just implement the user communication
module in the web interface as its compatible to all devices.
Our project will be following the general requirements of an IoT system working
towards developing and deploying a stable and responsive system. The project will
start out with the sensors found in parking buildings and parking areas, which will be
wired to Arduino, which is connected to the Raspberry PI, which sends data it gets
from the Arduino collected from the different sensors. The data sent is stored in the
server and updating in real time for both the admin and the users that are interested
in the system.
The different components of the project are governed by the general rules of IoT and
specific rules of the device in use.
3.4. COMPONENTS OF THE SYSTEM
As stated in the previous section, our project consists of sensors, microcontrollers
and a server.
Besides that, there will be parking areas and parking buildings incorporated.
The components are:
✓ Parking buildings
✓ Parking areas
✓ Sensors
• IR sensors
• Ultrasonic sensors
✓ Microcontrollers
• Arduino
• Raspberry PI
✓ Server
✓ Users
• Parking Attendants
• Drivers
• Administrator
18 |
Figure 5: General Smart Parking System Architecture
3.4.1. IR SENSOR
Infrared radiation is an electromagnetic wave with wavelength of 700nm to 1 mm. It
is emitted by objects with temperature above 0 kelvin. Furthermore, intensity and
wavelength of infrared radiation depends on the temperature of the object.
The infrared sensors are the sensors that detect/measure infrared radiation or change
in the radiation from outer source or inbuilt source. Also, sensors that uses the
property of infrared radiations to detect the changes in surrounding are termed as
infrared sensors. A general working method of infrared sensors is as follows:
✓ Infrared Source
1. The source of infrared is either in built or form outside environment.
2. Range of detection and wavelength of infrared radiation to be detected
can be configured.
✓ Transmission medium
1. Vacuum
2. Air
3. Optical fibers
✓ Optical system
1. To converge the infrared radiation into the detector
2. Optical lenses or mirrors
3. The material for optical system is chosen according to their
transmittance/reflectance for desired wavelength of IR
19 |
✓ Detector
1. Thermal detector has detector material and is independent to
wavelength
2. Quantum detector is wavelength dependent
✓ Signal processing
1. The signals produced by the detector are small so amplification is
required.
There are two types of infrared sensor based on its function:
• Thermal Infrared sensor
• Quantum infrared sensor
These are the types of infrared sensors based on the working mechanism:
• Active Infrared Sensors
• Passive Infrared sensors
Active infrared sensors are the types of infrared sensor that emit infrared radiation
which is later received by the receiver. The IR is emitted by an IR Light Emitting
Diode (LED) and received by photodiode, phototransistor or photoelectric cells.
During the process of detection, the radiation is altered, between process of emission
and receiving, by object of interest. The alteration of radiation causes change in
received radiation in the receiver. This property is used to generate desired output
with help of associated electronic circuit.
Figure 6: IR Obstacle Avoidance Sensor (adopted from electronicshub.com)
Break beam sensors, these types of Active IR sensor have emitter and receiver
placed in such a way that the IR emitted by the emitter falls directly in to the receiver. During the operation, IR beam is emitted continuously towards the receiver. The flow
of IR can be interrupted by placing an object between the emitter and receiver. If the IR is transmitted but altered, then receiver generates output based on the change in radiation.
20 |
Similarly, if the radiation is completely blocked the receiver can detect it and provide the desired output. For example: let’s consider a Break beam sensor and a conveyer
belt. When an opaque object interrupts the IR flow the receiver doesn’t receive any signal thus the conveyer belt stops.
Reflectance sensors use reflective property of IR. The emitter emits an IR beam
which is reflected by the object. Reflected IR is the detected by the receiver. The
object causes change in the property of the reflected IR or the amount of IR received
by the receiver varies. The degree of change is dependent on the reflectance of the
object. Thus, detecting the change in amount of received IR helps in figuring out the
properties of object such as surface geography and reflectance.
Our IR sensors are categorized under the reflectance sensors.
These sensors are ideal for a parking area, because upon detecting an object in front
of it, it transmits to the controller that it has detected an object and this stays true
unless the object moves away from the sensor. So, we can agree that it provides not
only detection but also assertion and consistency throughout transmission.
3.4.2. ULTRASONIC SENSOR
For years, ultrasonic sensors have been used in a wide range of applications including
fish finders, parking sensors in cars and burglar alarms. Ultrasound is an acoustic
wave with a very high frequency, beyond human hearing. Since the audible frequency
range is said to be between 20Hz and 20kHz, ultrasound generally means acoustic
waves above 20kHz. Bats, with their echo-location (biological ultrasonic radar), can
hear sounds up to 200kHz, way beyond the capabilities of the human ear.
Ultrasound has several characteristics which make it so useful and that have led to
its use in many electronics applications. Firstly, it is inaudible to humans and
therefore undetectable by the user. Secondly, ultrasound waves can be produced
with high directivity. Thirdly, they are a compressional vibration of matter (usually
air). Finally, they have a lower propagation speed than light or radio waves. The fact
that ultrasound is inaudible to human ears is an important factor in ultrasound
applications. For example, a car parking sensor system generates sound pressure of
more than 100dB to ensure clear reception. This is the equivalent of the audible
sound pressure experienced when standing close to a jet engine. Ultrasound's high
frequency (short wavelength) enables narrow directivity, similar to its radio wave
equivalent, microwaves. This characteristic is used in kidney stone treatments, where
ultrasound emitted from outside the body is focused on the stone to break it down.
Since the energy level is low, it does not harm the body. Because ultrasound is a
vibration of matter, it can also be used to examine the characteristics of that matter.
21 |
Ultrasonic diagnosis uses this feature to detect and visualize the variance in
reflectance and transmittance corresponding to the water content and density of the
matter in the medium, for example an organ in your body.
Ultrasound travels in the air at around 340m/s like other sounds. The time it takes
for an ultrasound wave to travel 10cm is approximately 3ms, as opposed to 3.3ns for
light and radio waves. This allows measurement using low speed signal processing.
Figure 7: HC-SR04 (Ultrasonic Sensor) (adopted from electronicshub.com)
Parking sensors use a type of sonar. The term sonar is an acronym for sound
navigation and radar; it's used for calculating the distance and/or direction of an
object from the time it takes for a sound wave to travel to the target and back. An
ultrasonic sensor is a speaker or microphone that emits or receives ultrasound. There
is also a type that can handle both emission and reception. Vehicle parking sensors
are equipped with this type of sensor.
Ultrasound sensors initially found use in vehicles for detecting obstacles when
parking, but it is now evolving into an automatic parking system.
Ultrasonic sensors “are based on the measurement of the properties of acoustic
waves with frequencies above the human audible range,” often at roughly 40 kHz.
They typically operate by generating a high-frequency pulse of sound, and then
receiving and evaluating the properties of the echo pulse.
Figure 8: Diagram of the basic ultrasonic sensor operation
22 |
Since it is known that sound travels through air at about 344 m/s (1129 ft./s), you
can take the time for the sound wave to return and multiply it by 344 meters (or
1129 feet) to find the total round-trip distance of the sound wave. Round-trip means
that the sound wave traveled 2 times the distance to the object before it was detected
by the sensor; it includes the 'trip' from the sonar sensor to the object AND the 'trip'
from the object to the Ultrasonic sensor (after the sound wave bounced off the
object). To find the distance to the object, simply divide the round-trip distance in
half.
Three different properties of the received echo pulse may be evaluated, for different
sensing purposes. They are:
• Time of flight (for sensing distance)
• Doppler shift (for sensing velocity)
• Amplitude attenuation (for sensing distance, directionality, or attenuation
coefficient)
The main advantage of ultrasonic sensors is that measurements may be made without touching or otherwise impeding the target. In addition, depending on the distance measured, measurement is relatively quick (it takes roughly 6ms for sound
to travel 1m). However, many factors such as temperature, angle, and material may affect measurements.
Weighing in all the different mode of operations we picked this sensor to be part of
our project for its simplicity and quick response time.
The sensors we picked, IR sensor and Ultrasonic sensors are both cheap but we needed both because we are working with different parking areas that needed
different sensors to convey the surrounding.
3.4.3. ARDUINO
Arduino is an open-source platform used for building electronics projects. Arduino
consists of both a physical programmable circuit board (often referred to as a
microcontroller) and a piece of software, or IDE (Integrated Development
Environment) that runs on your computer, used to write and upload computer code
to the physical board.
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. Finally,
Arduino provides a standard form factor that breaks out the functions of the micro-
controller into a more accessible package.
23 |
Figure 9: Arduino UNO (adopted from electronicshub.com)
Arduino boards are generally based on microcontrollers from Atmel Corporation like
8, 16 or 32-bit AVR architecture-based microcontrollers. The important feature of the
Arduino boards is the standard connectors. Using these connectors, we can connect
the Arduino board to other devices like LEDs or add-on modules called Shields. The
Arduino boards also consists of on board voltage regulator and crystal oscillator. They
also consist of USB to serial adapter using which the Arduino board can be
programmed using USB connection. In order to program the Arduino board, we need
to use IDE provided by Arduino. The Arduino IDE is based on Processing programming
language and supports C and C++.
There are many types of Arduino boards available in the market but all the boards
have one thing in common: they can be programmed using the Arduino IDE. The
reasons for different types of boards are different power supply requirements,
connectivity options, their applications etc.
Arduino boards are available in different sizes, form factors, different no. of I/O pins
etc. Some of the commonly known and frequently used Arduino boards are Arduino
UNO, Arduino Mega, Arduino Nano, Arduino Micro and Arduino Lily pad.
Arduino UNO is a basic and inexpensive Arduino board and is the most popular of all
the Arduino boards with a market share of over 50%. Arduino UNO is considered to
be the best prototyping board for beginners in electronics and coding.
UNO is based on ATmega328P microcontroller. There are two variants of the Arduino
UNO: one which consists of through – hole microcontroller connection and other with
surface mount type. Through-hole model will be beneficial as we can take the chip
out in case of any problem and swap in with a new one.
24 |
Arduino UNO comes with different features and capabilities. As mentioned earlier, the
microcontroller used in UNO is ATmega328P, which is an 8-bit microcontroller based
on the AVR architecture.
UNO has 14 digital input – output (I/O) pins which can be used as either input or
output by connecting them with different external devices and components. Out of
these 14 pins, 6 pins are capable of producing PWM signal. All the digital pins operate
at 5V and can output a current of 20mA. Arduino Uno has 6 analog input pins which
can provide 10 bits of resolution i.e. 1024 different values. The analog pins on the
Arduino UNO are labelled A0 to A5.
3.4.4. RASPBERRY PI
A Raspberry Pi is a credit card-sized computer originally designed for education,
inspired by the 1981 BBC Micro. Creator Eben Upton's goal was to create a low-cost
device that would improve programming skills and hardware understanding at the
pre-university level. But thanks to its small size and accessible price, it was quickly
adopted by tinkerers, makers, and electronics enthusiasts for projects that require
more than a basic microcontroller (such as Arduino devices).
It is powered by the Broadcom BCM2835 system-on-a-chip (SoC). This SoC includes
a 32-bit ARM1176JZFS processor, clocked at 700MHz, and a Video core IV GPU. It
also has 256MB of RAM in a POP package above the SoC. The Raspberry Pi is powered
by a 5V micro USB AC charger.
The Raspberry Pi is slower than a modern laptop or desktop but is still a complete
Linux computer and can provide all the expected abilities that implies, at a low-power
consumption level.
Figure 10: Raspberry Pi Model B+ v 1.1 (adopted from electronicshub.com)
25 |
There are two Raspberry Pi models, the A and the B, named after the aforementioned
BBC Micro, which was also released in a Model A and a Model B. The A comes with
256MB of RAM and one USB port. It is cheaper and uses less power than the B. The
current model B comes with a second USB port, an Ethernet port for connection to a
network, and 512MB of RAM.
The Raspberry Pi A and B boards been upgraded to the A+ and B+ respectively.
These upgrades make minor improvements, such as an increased number of USB
ports and improved power consumption, particularly in the B+.
The Raspberry Pi was designed for the Linux operating system, and many Linux
distributions now have a version optimized for the Raspberry Pi. Two of the most
popular options are Raspbian, which is based on the Debian operating system, and
Pidora, which is based on the Fedora operating system. For beginners, either of these
two works well; which one you choose to use is a matter of personal preference. A
good practice might be to go with the one which most closely resembles an operating
system you’re familiar with, in either a desktop or server environment.
One advantage of using the Raspberry Pi over some other alternatives is the size of
the community. If you have a question regarding a project you are working on, there
are a lot of people who might be able to help you because of the large reach of the
community.
The devices that are discussed in the above four sub-sections will be part of the
hardware section of our project. When selecting the devices, we were considered
simplicity to use and availability as our main criteria. The sensors we picked (i.e. IR
and ultrasonic) can be found easily in the market and are easily configurable with the
micro controller we picked. Which takes us one level up the ladder of our tree of
devices. The Arduino is suitable for accepting sensors inputs and acting on them
quickly besides being cheap. The Raspberry Pi is a mini computer so it is a better
master to the Arduino which in contrary is a better slave.
✓ From above discussion we can understand that Arduino is good for
repetitive tasks such as opening the garage door, switching the lights
on and off.
✓ While PI good for performing multiple tasks, driving complicated robots.
✓ For example, if you want to monitor the soil moisture and mail me if it
is necessary to water the plants. For this application, Arduino can be
used.
✓ But if you want to monitor the moisture, mail me when the plants need
to be watered and check the weather report from online. If there is rain
do nothing. For this application Raspberry pi required.
26 |
✓ In simple Arduino is used for beginner’s projects and some complicated
projects can be easily handled by pi.
If you want to create devices, like robots, timers, and sensors, the Arduino is the way
to go; its low-level interface and easy I/O connections make it the best way to go if
you want to build something. The Raspberry Pi, on the other hand, makes a fantastic
server or data storage system, and is great for learning to program in traditional
languages. If you want to communicate with other computers, the Pi is your board.
The different device properties of both processors can clearly show the parts of the
project they can be applied to.
So, we decided to use them both since our project has features that will be better
implemented and achieve better performance if both Arduino and Raspberry Pi are
working together.
Table 3: Comparison between Arduino UNO and Raspberry PI 2 (adopted from
electronicshub.com
27 |
3.4.5. SERVER
All the data incoming from different Raspberry Pi’s set up will be sent to the central
server.
A server is a computer designed to process requests and deliver data to another
computer over the internet or a local network. The word "server" is understood by most to mean a web server where web pages can be accessed over the internet
through a client like a web browser. However, there are several kinds of servers and even local ones like file servers that store data within an intranet network.
Although any computer running special software can function as a server, the most typical use of the word references the very large, high-powered machines that
function as the pumps pushing and pulling data from the internet.
Most computer networks support one or more servers that handle specialized tasks. As a rule, the larger the network - in terms of clients that connect to it or the amount
of data that it moves - the more likely it is that several servers play a role, each dedicated to a specific purpose.
Strictly speaking, the "server" is the software that handles a certain task. However,
the powerful hardware that supports this software is also usually called a server because server software coordinating a network of hundreds or thousands of clients requires hardware much more robust than what you'd buy for ordinary
consumer use.
Figure 11: A typical server room (adopted from mtcss.co.uk)
The server we used is built on the Django web framework. We have explored different other web frameworks and we picked Django for its simplicity and the fact that it is
a python-based framework which makes it ideal for real time systems.
28 |
3.4.5.1. DJANGO FRAMEWORK
Django is a free and open source web application framework, written in Python. A
web framework is a set of components that helps you to develop websites faster and
easier.
When a request comes to a web server, it's passed to Django which tries to figure
out what is actually requested. It takes a web page address first and tries to figure
out what to do. This part is done by Django's urlresolver. It is not very smart – it
takes a list of patterns and tries to match the URL. Django checks patterns from top
to bottom and if something is matched, then Django passes the request to the
associated function (which is called view).
In the view function, all the interesting things are done: we can look at a database
to look for some information. Maybe the user asked to change something in the data?
Like a letter saying, "Please change the description of my job." The view can check if
you are allowed to do that, then update the job description for you and send back a
message: "Done!" Then the view generates a response and Django can send it to the
user's web browser.
Django works based on a modified MVC architecture, which is called MVT
architecture.
• Models: describes data structure and database schema
• Views: controls what the user sees
• Templates: how a user sees it
Django includes different modules that can be used for different implementations
such as Administration interface (CRUD [Create, Read, Update, Delete] interface),
authentication system, comments system, forma handling, sessions, syndication
framework (RSS and Atom feeds), caching, internationalization, localization and
custom middleware.
Figure 12: Django Architecture
29 |
After testing several frameworks and weighing in the pros and cons we picked Django
for the following reasons:
✓ It lets us divide our code modules into logical groups to make it flexible to
change because of Django’s MVT Architecture
✓ It provides us auto generated web admin to ease the website administration
✓ It provides pre-packaged API for common user tasks
✓ Provides us a system to define HTML template for our web pages to avoid code
duplication
✓ Allows us to define what URL be for a given function
✓ Allows us to separate business logic from HTML
✓ Everything is in python
3.4.5.2. DJANGO REST API
Representational state transfer (REST) is an architectural style that defines a set of
constraints and properties based on HTTP (Hyper Text Transfer Protocol). Web
services that conform to the REST architectural style provide intermobility between
computer systems on the internet. REST compliant web services allow the requesting
systems to access and manipulate textual representations of web resources by using
uniform and predefined set of stateless operations. In REST webservices, requests
are made to a resources’ URL that will elicit a response that maybe in HTML, XML,
JSON or some other file format. The response may confirm that some alteration has
been made to the stored resource, and the response may provide hypertext links to
other related resources or collection of resources. When HTTP is used, as in most
common, the operations available are GET, POST, PUT, DELETE, and other predefined
CRUD HTTP methods.
The Django REST Framework is a powerful open-source tool used to build REST APIs
and is the preferred development library at BNOTIONS. Its advantages include its
simplicity, flexibility, and quality source code and documentation. The version 2
features, a powerful serialization engine that behaves much like Django forms, token-
based authentication (integration with OAuth and OAuth2 protocols), generic classes
for CRUD operations, throttling, permission classes, etc. The framework provides
developers with the flexibility to extend and customize the tools offered as they see
fit, and greatly reduces development time.
The Django REST Framework provides us a useful and attractive user interface to
interact with our API endpoints during development which can easily be turned off in
production. In a RESTful API, endpoints (URLs) define the structure of the API and
how end users access data from our application using the HTTP methods: GET, POST,
PUT, DELETE. Endpoints should be logically organized around collections and
30 |
elements, both of which are resources. REST framework's Request objects provide
flexible request parsing that allows you to treat requests with JSON data or other
media types in the same way that you would normally deal with form data.
In our case we used JSON data to request and get data. JSON (JavaScript Object
Notation) is a lightweight format that is used for data interchanging. It is based on a
subset of JavaScript language.
Figure 13: Sample JSON code format
REST framework provides flexible, per-request authentication, that gives us the
ability to:
• Use different authentication policies for different parts of your API.
• Support the use of multiple authentication policies.
• Provide both user and token information associated with the incoming request.
• Excellent performance
• Scalability
• Simplicity
• Modifiability
• Portability
• Reliability
• Visibility of communication
• The Web browsable API is a huge usability win
• Extensive documentation, and great community support
• Used and trusted by internationally recognized companies including Mozilla,
Red Hat, Heroku, and Eventbrite.
31 |
3.4.5.3. CELERY AND RABBITMQ
The very thing that makes Django an excellent choice has its own limitations when it
comes to background processes because Django works with a principle of request
and response that is instant. Although this feature makes it quick to respond, it
doesn’t work well with the reservation part of our project. So, we used Celery and
RabbitMQ for handling the background process which runs in our server.
Web applications work with request and response cycles. When the user accesses a
certain URL of your application, the Web browser sends a request to your server.
Django receive this request and do something with it. Usually it involves executing
queries in the database and processing data. While Django does its thing and process
the request, the user has to wait. When Django finalize its job processing the request,
it sends back a response to the user who finally will see something.
Ideally this request and response cycle should be fast, otherwise we would leave the
user waiting for too long. And even worse, our Web server can only serve a certain
number of users at a time. So, if this process is slow, it can limit the number of pages
our application can serve at a time. For the most part we can work around this issue
using cache, optimizing database queries, and so on. But there are some cases that
there’s no other option: the heavy work has to be done. A report page, export of big
amount of data, video/image processing are a few examples of cases where you may
want to use Celery.
Celery is an asynchronous task queue/job based on distributed message passing. It
is focused on real-time operation but supports scheduling as well. It allows pieces of
a software program to run in a separate machine/process. It is often used in web
architectures as a way to delegate long lasting tasks while quickly answering
requests. The delegated task can trigger an action such as sending an email to the
user or simply update data internally in the system when it finishes executing.
The issue of running async tasks can be easily mapped to the classic
Producer/Consumer problem. Producers place jobs in a queue. Consumers then check
the head of the queue for awaiting jobs, pick the first one and execute.
In the context of async tasks queues, 'producers' are commonly the 'web nodes' or
whatever system that is placing jobs, the queue is referred to as 'broker', and
consumers as 'workers'. Since workers can also place new tasks in the queue, they
can also behave as 'producers'.
32 |
Figure 14: Classic Consumer/Producer Problem
In our server architecture, we come across this issue when handling the reservation
module of the feature. So, we picked a task runner and a broker to facilitate the
process.
The task runner starts reservation timers and removes them when time is up.
The broker stores and transfers messages between the server and the task runner.
In our system, the task runner is Celery (which is discussed in the previously), the
broker is RabbitMQ and the server is Django.
Figure 15: RabbitMQ, Celery, Redis (from left to right) (adopted from publishers’
website)
The concept of a broker is very simple: a queue. Text files can hold a sequence of
job descriptions to be executed, therefore, we can use them as the broker of our
system. The problem with text files is that they are not made to handle real
application problems such as network and concurrent access. Because of that we
need something more robust. SQL databases, on the other hand, are capable of
running in a network and dealing with concurrent access. The problem with them is
that they are too slow. NoSQL databases, by contrast, are quite fast, but many times
they lack reliability.
33 |
So, when building queues, we should use fast, reliable, concurrency enabled tools
such as RabbitMQ, Redis and SQS. Celery has full support for RabbitMQ and Redis.
Although SQS and Zookeeper are also available, they are offered with limited
capabilities.
RabbitMQ is a lightweight, reliable, scalable and portable message broker. But unlike
many message brokers familiar to Java developers, it's not based on JMS. Instead,
your applications communicate with it via a platform-neutral, wire-level protocol: The
Advanced Message Queuing Protocol (AMQP).
AMQP (Advanced Message Queuing Protocol) is a messaging protocol that enables
conforming client applications to communicate with conforming messaging
middleware brokers. Messaging brokers receive messages from publishers
(applications that publish them, also known as producers) and route them to
consumers (applications that process them). The AMQP Model has the following view
of the world: messages are published to exchanges, which are often compared to
post offices or mailboxes. Exchanges then distribute message copies to queues using
rules called bindings. Then AMQP brokers either deliver messages to consumers
subscribed to queues, or consumers fetch/pull messages from queues on demand.
Figure 16: The concept of broker and task runner(worker) explained
34 |
3.4.6. PARKING AREA AND PARKING BUILDING
In our research we have come across different parking spaces, some were
underground ones while others were open air and we have also observed parking
buildings.
After observing this pattern, we have divided parking spaces to two broad categorized
based on the entrance mechanism to the parking area.
1. Parking spaces with single point of entry (Parking building)
2. Parking area with multiple entrance and exit (parking area)
The first one can be further divided in to two based on the exiting mechanism.in the
first case we have parking areas with the same entrance and exit gates; the second
one on the contrary has separate entrance and exit gates. The parking area will have
several entrances and exit points which makes it difficult to set a single point of
entrance and exit.
Figure 17: parking building (on the left), parking area (on the right)
It can be clearly seen from figure 17 the difference between the parking spaces in
question, the physical layout of both structures defines the sensors used and their
placement to achieve a maximum throughput.
In addition to the parking spaces, we have also narrowed down the specific kinds of
cars that can be parked in such parking spaces. As per our definition the vehicles that
can be parked in the parking spaces are four wheeled vehicles which don’t include
heavy vehicles that are used in long distance travels.
35 |
3.4.7. USER AND PARKING ATTENDANT MOBILE APPLICATIONS
Mobile devices have become quite common this days especially smart phones have
become part of our day to day activity. A recent survey shows that in urban cities
three out of five people have smart phones which they use on daily basis. Since most
of our user base uses smart phones we decided the end user application should be a
mobile app.
Mobile application development is the set of processes and procedures involved in
indicting software for minute, wireless computing contrivances such as smartphones
or tablets. These applications can be pre-installed on phones during manufacturing
platforms or distributed as web applications utilizing server-side or client-side
processing (e.g. JavaScript) to provide an “application-like” experience within a Web
browser. Application software developers additionally have to consider a lengthy
array of screen sizes, hardware designations and configurations because of intense
competition in mobile software and changes within each of the platforms. Mobile app
development has been steadily growing, both in terms of revenues and jobs
engendered.
As a component of the development process, Mobile User Interface (UI) Design is
also an essential in the formation of mobile apps. Mobile UI deal with constraints and
contexts, screen, input and mobility as outlines for design. The utilizer is often the
focal point of interaction with their contrivance, and the interface bring about the
peripherals of both hardware and software. Utilizer input sanctions for the users to
manage a system, and contrivance’s output sanctions the system to denote the
effects of the users’ manipulation. Mobile UI design restraints constitute inhibited
attention and form factors, such as a mobile contrivance’s screen size for a utilizer’s
hand(s). Mobile UI contexts signal hints from utilizer activity, such as location and
appointments that can be shown from utilizers interaction within a mobile application.
Overall, mobile UI design’s goal is principally for a recognizable, utilizer-amicable
interface. The UI of mobile apps should consider: user’s constrained attention,
diminish keystrokes, and be task-oriented with a limited set of functions. This
functionality is fortified by Mobile enterprise application platforms or Integrated
development environments (IDEs).
Mobile UIs or front-ends, completely rely on mobile back-ends to fortify access to
enterprise systems. The mobile back-end aids data routing, security, verification,
sanction, working off-line, and accommodation interpretation. These services are
backed up by a blend of middleware components including mobile app servers, Mobile
Backend as an accommodation (MBaaS), and SOA infrastructure.
36 |
Mobile application development is identical to Web application development and has
its roots in conventional software development. One critical difference is that mobile
applications (apps) are often indicted categorically to capitalize on the unique
features a particular mobile contrivance offers. For instance, a gaming app might be
indicted to capitalize on the iPhone’s accelerometer.
Successful mobile app development requires more than just a compelling user
interface. It also requires:
• Testing
• Integration
• Security
• Quality assurance
• Ongoing management
We have worked on two different mobile application that run on Android, the reason
behind picking Android over IOS is the fact that it allows more flexibility in the
development process and finally we want a product that works despite the platform
used. But, the features that are included in the app can be identically implemented
to the IOS equivalent.
The first mobile app developed is for the parking attendant, this app allows the
parking attendant to contribute to the new system. In the beginning we started out
with a goal of introducing technology into a working system. The parking attendant
app allows the parking attendant to fill in the number of occupied parking slots in a
parking area; in addition to that he/she can also see the list of individuals that have
reserved a parking slot in that specific parking area. Finally, the parking attendant
can also add payment that a driver owes using the app and can save time writing
papers to the parked cars.
The second mobile app is for the user (customer/driver), allowing him/her to see
parking areas that are available in a certain geographical location mainly; the rest of
the features revolve around this concept. The user can get map guidance after
choosing a parking area of his/her choice and the app comes with the feature of
reservation. this allows the user to save a slot prior to arrival. Payments are also
included that are open to any online APIs that are used to pay what is owed.
37 |
3.4.8. ADMIN DASHBOARD
The English Dictionary defines ‘Dashboard’ as a home page on a website giving access
to different elements of the site's functionality.
It is the page that shows the analysis of the application’s data, trends, summaries
etc. In many cases it dynamically reports important pieces of data from the web
application. From the Dashboard the users can drill down to get more information
about a particular piece of data.
This is the general understanding of what Dashboards are and what they do.
The general thinking that goes into any Dashboard design is that it is all about
showing analytics, trends and summaries of the data in the web application using
various charts and diagrams. Dashboards should not only show the summaries,
trends and analysis of the application’s data but should also let the users take action
on that data. If reports help the users to understand what action is to be taken for
the data being presented, then a Dashboard should do the same thing and enable
the users to take action on that data.
Think of Dashboards as a superset of Reports.
A good Dashboard should not only show the relevant information quickly to the users
but should also let the users quickly act on that data. But there is always an
exception. In most of the web applications you should be able to design Dashboards
that let the users take some action on the data. But some Dashboards are purely
meant for displaying information, like the Google Analytics Dashboard above. There
is hardly any action that the users can take on the Google Analytics data because it
is just a reporting tool.
✓ What data needs to be shown to the users
✓ How to present that data to the users and
✓ What actions should you let the users take on the data
The above three can be achieved if the following are fully understood.
• You know the users of your web application very well
• You know the different types of users
It is extremely important to have a good visual design of the Dashboard. If you are
to put efforts in beautifying your web application then put it in beautifying the
Dashboard.
38 |
Apart from that, a visually good Dashboard is usually easy to read and understand.
A well-designed Dashboard can really add a lot of value to the users of your web
application. It will give them a way to see the important business metrics and take
action to improve those metrics. But designing dashboards that are truly useful to
the users is more difficult than designing good dashboards.
Our system will have a dashboard for the Administrator of the system, who is the
super user with all access pass. The admin can see the over all traffic in the system
and can check if the system is experiencing any glitches.
39 |
4. SYSTEM DESIGN AND WALKTHROUGH
In this section, the overall system will be discussed specifying its working principle
together with the real world and experimental setup.
Our system design and implementation are divided into four major modules for better
work flow and abstraction. The four modules are:
1. Arduino and sensor configuration
2. Communication module
3. Server implementation
4. Mobile Application Development
We will look what each module contributes to the overall system step wise.
4.1. HARDWARE COMPONENTS
4.1.1. ARDUINO AND SENSOR CONFIGURATION
This is our building block for the whole project, it is in this module our sensors are
configured to sense their surrounding and report back to the Arduino. Data
(availability of parking slots) is collected and transmitted to the Arduino, which will
make sense of it and prepare the data for further transmission.
Our sensor configuration and placement depend on the parking space in question.
Figure 18: Top view of a parking building system implementation (case 1, where
there is single point of entry and exit)
40 |
Considering figure 18, our sensors are placed in two distinct areas; the first section
which includes UC 1 and UC 2 is our entrance trigger meaning if triggered first the
system considers a car is entering the building. On the other side are UC 3 and UC 4
which are considered as exit trigger by the system.
Between the two sections there should be a gap labeled ‘X’ which has a minimum
value of an average cars length in order to perfectly detect a car by changing the
states of the sensors. In addition to that to give time for the sensor to detect the car
and to avoid reckless driving we have assumed a speed bump in the middle
throughout the design.
We have employed state transition method to detect a car with zero error margins
besides the sensor placement we have used.
The working algorithm for detecting a car entering the premises in the case of a
parking building with a single gate for both entrance and exit will be:
During exit procedure:
‘dis’ – is the distance that is the minimum length expected to trigger the sensor.
→
→
41 |
Figure 19: Top view of a parking building system implementation (case 2)
During entrance in this case scenario:
During exit in this case scenario:
The assumptions we made and the working principle is the same as figure 18, the
only difference is the physical structure of the parking building facility.
→
→
42 |
Figure 20: Top view of parking area implementation
The last case considered is for open air parking areas with multiple entrance and exit
points. Since we don’t have a single checkpoint to monitor the cars entering and
exiting so each car parked in such spaces need to be monitored individually; the
statues of each parking slot is monitored by IR sensor which sends the status to the
Arduino which manages the decision to mark the slot as available or occupied.
In the last case, for each additional slot one additional sensor is added to cover that
slot.
43 |
After designing the algorithms of each case scenario, we simulated the design in
proteus to test the code and schematic. In the simulation stage, we tried several case
scenarios by giving our sensors different inputs (objects close to the sensors and far
way objects) to see the mode of operation and sensing accuracy of the sensors; which
helped a lot in the hardware configuration because we already knew the optimal
distance range from the simulation we made prior to the experimental phase.
The simulation also allowed us to get our decision algorithm code right so it can work
in harmony with the time variable we have which we promised as a combination of
sensors reading communication and server-side computations.
Figure 21: Proteus simulation of a parking building case scenario
4.1.2. COMMUNICATION MODULES
As the name implies, this module handles the communication schema of the overall
system. Our communication features two major tasks.
1. Communication between the Arduino and Raspberry pi.
2. Communication between the Raspberry pi and server.
For the first part, we have used serial communication. Serial communication is a
communication technique used in telecommunications wherein data transfer occurs
by transmitting data one bit at a time in a sequential order over a computer bus or a
communication channel. It is the simplest form of communication between a sender
and a receiver.
44 |
Because of the synchronization difficulties involved in parallel communication, along
with cable cost, serial communication is considered best for long-distance
communication. Serial communication is Used for communication between the
Arduino board and a computer or other devices. All Arduino boards have at least one
serial port (also known as a UART or USART): Serial. It communicates on digital pins
0 (RX) and 1 (TX) as well as with the computer. You can use the Arduino
environment’s built-in serial monitor to communicate with an Arduino board. Click
the serial monitor button in the toolbar and select the same baud rate used in the
call to begin (). Serial communication on pins TX/RX uses TTL logic levels (5V or 3.3V
depending on the board). Don’t connect these pins directly to an RS232 serial port;
they operate at +/- 12V and can damage your Arduino board.
Figure 22: Serial Communication
The serial communication handles the basic communication of our Arduino with the
Raspberry pi, since the data to be transmitted is a single valued one we tried to use
the simplest communication out there to get better performance and overall response
time. After getting the data from the Arduino, the Raspberry pi will be solely
responsible for the data processing and further transmission to the server.
Communication between the Raspberry pi and the server will be dependent on the
internet. The server will have its own IP and the Raspberry pi will send the date
received from the Arduino to the specified IP address every time there is an update.
The updating will be fast to meet the requirement we set in the beginning of the
project.
Figure 23: Experimental setup 1
45 |
Figure 24: Experimental setup 2
4.2. SOFTWARE DESIGN AND IMPLEMENTATION
4.2.1. SERVER-SIDE IMPLEMENTATION
Our central server will be accepting the data from all the different parking areas and
responsible for handling all the data; both storage and processing. In addition to that,
our server will have a map of Addis Ababa integrated to it in order to identify the
different parking areas by location.
Django web framework is really responsive, and the fact that it gives an ideal
playground for real time data transfers, made it to be our number one pick.
Our server is built to be fully functional, handling data coming from the raspberry pi,
parking attendant app and user app data request and reservation. We will start
analyzing the database which our server is built upon.
The persistent data storage is a form of SQL lite modified for Django; the stored data
includes parking slot status, user profile, payments, and reservations.
46 |
The ER (Entity Relationship) diagram is as follows:
Figure 25: ER Diagram Layout
As mentioned throughout the paper, the server is like a heart of the entire system.
The sensors collect data and send it to the server through the raspberry pi and the
parking attendant also updates status of a parking slot while a customer uses his/her
app to check the availability of a parking space and reserve a slot while getting a
map guidance. All this is possible because of the server.
The administrator’s dashboard snapshots are as follows:
47 |
Figure 26: Admin Dashboard summary list
Figure 27: Snapshot of Map view of the server
48 |
4.2.2. END USER APPLICATIONS
The users of the system are grouped into two categories; the first one is for the
customers and the second one is for the staff which subdivides into parking attendant
and administrator.
As mentioned in (section 3.4.7.) we have developed two android applications; one
for the parking attendant and the other for the customer. In this section we will see
how the apps were developed and how they function together with the server.
4.2.2.1. FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS
For Parking Attendant App
•
•
Table 4: Functional Requirements for parking attendant app
49 |
Table 5: Non-functional Requirements for parking attendant app
For user(customer) App
Table 6: Functional Requirements for User app
50 |
Table 7: Non-Functional Requirements for user app
4.2.2.2. ACTORS, GOALS AND USE CASES
Actors will be interacting with our app directly, here are our actors with their
respective goals:
For Parking Attendant App
▪
▪
▪
▪
▪
Table 8: Actor and Goals of parking attendant app
51 |
Table 9: Casual description of use cases for parking attendant app
Figure 28: Use case diagram for parking attendant app
52 |
Table 10: Traceability Matrix for parking attendant app
Table 11: UC-1 Description for parking attendant app
53 |
Table 12: UC-2 Description for parking attendant app
Table 13: UC-3 Description for parking attendant app
54 |
Table 14: UC-4 Description for parking attendant app
For user App
▪
▪
▪
▪
▪
▪
▪
▪
Table 15: Actor and Goals for user app
55 |
Table 16: Casual Description of use cases for user app
Figure 29: Use case diagram for user app
56 |
Table 17: Traceability matric for user app
57 |
Table 18: UC-3 Description for user app
Table 19: UC-4 Description for user app
58 |
Table 20: UC-5 Description for User app
Table 21: UC-8 Description for user app
59 |
Table 22: UC-1 Description of user app
4.2.2.3. USER INTERFACE DESIGN
User Interface (UI) design is a crucial part of any development, because it is what
the user sees firsthand; no matter how complicated the backend can be the UI needs
to be appealing and easy to use for the user.
Taking that into consideration we designed and implemented the interface of our
mobile apps.
The approaches towards the design were minimalistic by design.
Figure 30: Parking Attendant app mockup
60 |
Figure 31: UI design for Parking attendant app-1 (from left to right login page,
menu, home page)
Figure 32: UI design for parking attendant app-2 (from left to right status update,
reservation list pages)
61 |
Figure 33: User app screens mockup
Besides designing the apps to be simple, we also worked on the concept of UX (user
experience) to make a user’s stay with the application to be as easy as it could get
with full functionalities included.
When designing the applications, we worked around the following seven concepts:
1. Light comes from the sky
2. Black and White first
3. Doubling the whitespace
4. Overlaying text on images
5. Making text pop and un-pop
6. Simple and uniform font choice
7. Stealing like an artist
62 |
Figure 34: UI design for user app-1(from left to right sign up, sign in, menu,
parking area list, parking description, profile pages)
63 |
Figure 35: UI design for user app-2 (from left to right chose destination, pick
parking area, reservation, payment list, pay pages)
64 |
Figure 36: Map Navigation in action
4.2.2.4. NETWORK PROTOCOL AND HARDWARE REQUIREMENT
Our server will be setup on a remote machine with some IP address that is known
for all devices sending and receiving from it, we will be using HTTP protocol as a
transfer mechanism between the end user applications and the server.
As a hardware requirement, for our user they will be needing a smart phone running
Android V 4.2.1(Jelly Bean) and above. The user doesn’t take much of the phones
processing causing the CPU temperature to rise up. The phone also needs to have
GPS and needs to be turned on for the app to run successfully.
65 |
5.DESIGN OF TESTS
In general, our system can be summarized as the combination of sensors for a
reliable sensing of cars followed by decision algorithms creating appropriate data,
which then can be transmitted to another piece of hardware that handles
transmission and act as a local server and by the end the server accepts the data
and make sense of it all organizing and storing in a human readable format; ready
and available for clients use.
In this section we device methods we will be using to bench mark the performance
of each modules so we can make corrections ourselves and be a stepping stone for
other products that are based on this paper.
5.1. HARDWARE TESTING
Our hardware configuration starts the overall process give or take, the sensors
connected to the processors will be constantly providing information about the
parking area. Looking at the properties of the sensors we can deduce that there is
nothing to be done to enhance them except design a brand-new sensor from scratch.
So, we focused on the microprocessors in the testing phase.
As seen in section 4 we have simulated the hardware process in proteus to get a
glimpse of what we are trying to tackle in the real world. The test made in the phase
were:
• Timing tests to get the amount of time it takes for the sensor to sense an
object and transmit it to the Arduino
• Understanding false alarms test in order to avoid misinterpretation of
surrounding data.
• Algorithm test, to get the best out of the Arduino’s processing speed and
capability
The above were tested on the configuration of the Arduino with the sensors.
Our second test focused on the raspberry pi and Arduino communication which was
a timing test that timed the number of seconds it took to get the data from the
Arduino to raspberry pi and get it ready to be sent to the server.
66 |
Limiting factors in this testing methods were configuration of wires (crosstalk) and
communication errors when data is sent from the raspberry pi to the server because
in the use of the internet we have no control over it. Despite that the local connection
test were successful and top notch.
5.2. TESTING SERVER
Our server is built to handle traffic from different data sources and it can in simple
terms be described as a backend for a web application, so we employed web
application tests on our server.
Test 1: Functionality Testing
Test for – all the links in pages, database connection, forms used for submitting or
getting information from the user in the web pages, Cookie testing etc.
Test the outgoing links from all the pages to specific domain under test, test all
internal links, test links jumping on the same pages, Test links used to send email to
admin or other users from web pages, Test to check if there are any orphan pages,
finally, link checking includes, check for broken links in all above-mentioned links.
Cookies are small files stored on the user machine. These are basically used to
maintain the session- mainly the login sessions. Test the application by enabling or
disabling the cookies in our browser options.
Data consistency is also very important in a web application. Check for data integrity
and errors while we edit, delete, modify the forms or do any database related
functionality. Check if all the database queries are executing correctly, data is
retrieved and also updated correctly. More on database testing could be a load on
database.
Test 2: Usability Testing
Usability testing is the process by which the human-computer interaction
characteristics of a system are measured, and weaknesses are identified for
correction.
• Ease of learning
• Navigation
• Subjective user satisfaction
67 |
• General appearance
Test 3: Interface Testing
Verifying that communication is done properly. Compatibility of the server with
software, hardware, network, and the database should be tested.
The main interfaces are:
• Web server and application server interface
• Application server and Database server interface
Check if all the interactions between these servers are executed and errors are
handled properly. If database or web server returns an error message for any query
by application server, then application server should catch and display these error
messages appropriately to the users.
Check what happens if the user interrupts any transaction in-between? Check what
happens if the connection to the web server is reset in between?
Test 4: Compatibility Testing
• Browser compatibility
• Operating system compatibility
• Mobile browsing
• Printing options
Test 5: Performance testing
Web application should sustain to heavy load. Web performance testing should
include:
• Web Load Testing
• Web Stress Testing
Test application performance on different internet connection speed.
Web load testing: we need to test if many users are accessing or requesting the same
page. Can system sustain in peak load times? The server should handle many
simultaneous user requests, large input data from users, simultaneous connection to
database, heavy load on specific pages etc.
68 |
Web Stress testing: Generally, stress means stretching the system beyond its
specified limits. Web stress testing is performed to break the site by giving stress
and its checked as for how the system reacts to stress and how it recovers from
crashes. Stress is generally given on input fields, login and sign up areas.
In web performance, testing website functionality on different operating systems and
different hardware platforms is checked for software and hardware memory leakage
errors.
Performance testing can be applied to understand the web site’s scalability or to
benchmark the performance in the environment of third-party products such as
servers and middleware for potential purchase.
Connection Speed
Tested on various networks like 2G, 3G, 4G, Broadband, ISDN etc.
Load
i. What is the number of users per time?
ii. Check for peak loads and how the system behaves
iii. Large amount of data accessed by user
Stress
i. Continuous Load
ii. Performance of memory, CPU, file handling etc.
69 |
5.3. TESTING MOBILE APPLICATIONS
Mobile app users are quick to delete applications that freeze, crash, which are slow
to load, or have a poor user experience – and leave bad reviews in the application
store. With tens of thousands of apps available to users, even a few bad reviews can
be the death knell for an application.
Here are the methods we employed to test our applications
Test 1: Functional testing
Functional testing investigates whether an application does what it is supposed to do,
usually by comparing it to design documents. It is used to examine the user interface
including UI layouts and elements, menu structure and functions, as well as the
response to screen orientation and screen resolution changes. For native apps,
functional testing includes ensuring that the installation process completes
successfully as well as testing any registration or activation process that the user
must complete.
Test 2: Non-functional testing
Operational testing
Operational testing includes checking the behavior of the AUT during events such as
cycling the power on/off, insertion or removal of a data cable, turning WIFI on or off,
and entering airplane mode.
Interrupt testing
Mobile applications are frequently interrupted by events on the device. Interrupt
testing verifies that the AUT can handle these events appropriately. Interrupt testing
includes events such as making or receiving phone calls, sending and receiving
SMS/MMS messages, and pop-up notifications from the O/S such as low battery
indicators and alarm reminders.
Performance testing
Performance testing is critical in mobile environments, as users will be quick to delete
applications that run slowly, consume too much battery or data, or consume memory
which can lead to unexpected shutdowns.
Application speed, Battery usage, Data consumption and Low-level resource/memory
usage/memory leakage.
70 |
Test 3: Regression testing
Regression testing involves re-running tests that were successful in previous versions
of the mobile application. This is done to ensure that new code hasn’t re-introduced
old defects, called “regressions.” Because regression tests are performed over and
over again, they are ideal candidates for automation.
71 |
6. RESULTS AND CONCLUSION
The different tests done on the different modules of the system were eye openers for
several corrections and enhancements of the system to further exploit the system’s
capability.
While testing the hardware, as per our test design we focused on two main criteria’s;
time and accuracy. The sensors have no idea if what they are sensing is a car or not;
so, we needed to try different sensor positioning to achieve what is acceptable as an
input without triggering any false alarms. Timing was not an issue because the
sensors came with specification which were in accordance with what we have set in
the design stage. The Arduino and the raspberry pi were a success too, data sent
from the Arduino through the raspberry pi to the server took an average of 3 to 3.6
seconds in a local connection. When we tested it on the AAiT Connection (network)
it took approximately 15 to 17 seconds, which is caused by instability and IP assigning
issues. Hardware section test was relatively straight forward because all devices
came with specifications and all we had to do was pick the best configuration and
after some time there will be physical limitations to what can be done to enhance
performance which made us look else where to make the system faster.
We took our time and experimented with the server implementation, it started from
picking the framework and continued to the very end of development. We tested our
API from different perspectives; here are some of the test results and our conclusion.
We first started out by picking out what interests us most in performance wise, which
were:
Database lookup: Here we timed everything from the Django ORM down to the raw
database access. In order to time this independent of the serialization we wrapped
the queryset call in a list() in order to force it to evaluate.
Table 23: Test results of the database lookup
72 |
Django request/response cycle: Anything that takes place before or after the view
method runs. This includes the default middleware, the request routing and the other
core mechanics that take place on each request. We timed this by hooking into the
request_started and request_finished signals.
Serialization: The time it takes to serialize model instances into simple native python
data structure. We timed this as everything that takes place in the serializer
instantiation and .data access.
Table 24: Test results after removing the serializer
View code: Anything that runs once an APIView has been called. This includes the
mechanics of REST framework's authentication, permissions, throttling, content
negotiation and request/response handling.
Response rendering: REST framework's Response object is a type of
TemplateResponse, which means that the rendering process takes place after the
response has been returned by the view. We timed this by wrapping APIView.dispatch
in a superclass that forces the response to render before returning it.
Table 25: Using of Broker in implementation
73 |
Figure 37: Summary of results from different tests
74 |
When testing the application with the designed tests, we came across an issue of
connection errors despite that all initial requirements in the design phase were
corresponding to the tests we made. In order to tackle the problem we were having
in the connection filed, we made the app to fetch data first and then start working,
that way the app won’t stop functioning even if connection was lost.
To conclude, we first explored different ways to implement such a system; such
systems can counter the parking problems that arise due to the unavailability of a
reliable, efficient and modern parking system. The use of different modern techniques
such as expert systems, wireless sensor based and vision-based systems can reduce
the parking related issues. Such a system can help the economic, social and safety-
based aspects of the society. It also helps in preserving the environment, fuel and
time. The economic analysis can help us find the optimum solution that has the
maximum throughput. From the technical and business analysis we did on the design
and implementation of the system, we can observe that it has a huge potential. If
the limiting factors such us better components is supported with proper funding, we
can further develop it to a fully functional system that has commercial value.
75 |
7. SWOT ANALYSIS
We have tested our designs both in simulation and practically, which led to design
revisions because designs on paper and real-world experience are quite different.
When starting this project, we have done an intensive research about the subject
matter and even considered other methods of implementing such a system. Finally,
we decided that we should start with components that can be found locally. We
needed our system to fit into the economic reality we face in daily life.
Upon designing the system, we analyzed our system from a business point of view
which we know as SWOT. SWOT analysis is an acronym for strengths, weaknesses,
opportunities, and threats and is a structured planning method that evaluates those
four elements of an organization, project or business venture. A SWOT analysis can
be carried out for a company, product, place, industry, or person. It involves
specifying the objectives of the business venture or project and identifying the
internal and external factors that are favorable and unfavorable to achieve that
objective.
✓ Strengths: characteristics of the business or project that give it an advantage
over others.
✓ Weaknesses: characteristics of the business that place the business or project
at a disadvantage relative to others.
✓ Opportunities: elements in the environment that the business or project
could exploit to its advantage.
✓ Threats: elements in the environment that could cause trouble for the
business or project. Our project reviewed according to the SWOT matrix.
Table 26: Strengths
76 |
Table 27: Weaknesses
Table 28: Opportunities
Table 29: Threats
77 |
8. WHAT’S NEXT
The global smart parking system market size was valued at USD 81.3 million in 2015. [23] An increasing number of vehicles across the globe are instrumental in intensifying
the parking woes. The alarming problem of traffic congestion is rising exponentially
on a global scale. The increasing need to counter and address parking related issues
is significant in creating a high demand for efficient parking systems. Smart parking
systems provide flexibility and scalability to effectively address the parking issues.
The adoption of smart parking systems involves the use of low-cost sensors and
mobile phone-enabled automated payment systems. Such sophisticated features
enable users in determining the available parking spaces and reserving the slot in
advance reducing the time required to avail parking. The parking system helps in
minimizing car emissions by eliminating the need for people to unnecessarily circle
the city blocks in search of parking spaces.
Since, the system helps in minimizing traffic congestion and pollution levels,
governments across the globe are undertaking various initiatives for the large-scale
adoption of such parking systems. Favorable administrative schemes are presumed
to remarkably contribute to the industry expansion in the coming years. The large-
scale system component is possible only through significant funding initiatives
undertaken by the national governments. Nevertheless, the increasing adoption of
these systems at airports, corporate campuses, and similar avenues is predicted to
fuel the industry prospects.
The smart parking industry, on the basis of applications, can be classified into three
types; transport transit, government, and commercial. The government application
segment accounted for over 62% of the overall market share in 2015 and is predicted
to continue its control on the market growth over the next seven years due to
government initiatives in developed as well as developing countries. [23]
The commercial application segment has a high growth potential and is projected to
gain traction over the forecast period as these places are major attraction of tourist
as well as local citizens. Such systems are increasingly adopted at corporate avenues,
shopping malls, theaters, and sports complexes, among others where an efficient
management of parking is on high priority. High convenience and flexibility along
with mobile payment options are projected to impel growth in the commercial
segment. Vendors are accentuating on providing convenience to users and are
continually deploying new applications with innovative features. The transport transit
application segment accounted for over 9% of the overall market share in 2015 and
is predicted to grow over the next seven years. [23]
78 |
Our system will be logging data about the different cars that are parked in different
areas of our city and as we see it this can be a huge advantage for the transport
ministry because there will be data to be crunched and be used to make plans based
on the numbers they get out of our system; we can also take part in the crunching
of numbers and data analysis by further equipping the system with machine learning;
giving birth to Big Data analysis steeping stones.
Figure 38: Big Data
This all can show that the current system designs we did can be scaled up to a
profitable commercial product.
79 |
9. REFERENCES
1. “2011 Commuter Pain Survey” IBM Press Room. IBM, 8 Sept 2011. Web.
13 Mar. 2013
2. Than Nam Phaml, Ming-Fong Tsail, Duc Bing Nguyenl, Chyi-Ren Dowl
and Der-Jiunn Deng. “A Cloud Based Smart Parking System Based on
Internet of Things Technologies” IEEE Access, volume 3, pp. 1581 –
1591, September 2015.
3. https://en.wikipedia.org/wiki/Car_parking_system Oct 20,2017
4. K. Ashokkumar a, Baron Sam, R Arshadprabhu, Britto. “Cloud Based
Intelligent Transport System” Procedia Computer Science, volume 50,
pp. 58-63, 2015
5. http://ijarcet.org/wp-content/uplods/IJ
6. http://www.mdpi.com/journal/sensors
7. Bilodeau, V.P. Intelligent Parking Technology. Ph. D Thesis, University
of Southern Queensland: Queensland, Australia, 2010
8. L. Atzori, A. Iera, and G. Morabito, “The Internet of things: a survey”
Computer Networks, Vol. 54, no 15 pp. 2787-2805, 2010
9. Barton, J., J. Buckley, B. O’Flynn, S.C. O’Mathuna and J.P. Benson et
al., 2007. The D-systems project-wireless sensor networks for car-park
management. Proceedings of the 65th Vehicular Technology
Conference, April 22-25, 2007, VTC2007-Spring, pp: 170-173.
10. Benson, J.P., T. O'Donovan, P. O'Sullivan, U. Roedig and C.
Sreenan et al., 2006. Car park management using wireless sensor
networks. Proceedings of the 31st Conference on Local Computer
Networks, November 14-16, 2006, Tampa, FL., USA., pp: 588-595.
11. Bi, Y.Z., L.M. Sun, H.S. Zhu, T.X. Yan and Z.J. Luo, 2006. A
parking management system based on wireless sensor network. Acta
Automatica Sin., 32: 877-968.
12. Shim, S., S. Park and S. Hong, 2006. Parking management
system using zigbee. Int. J. Comput. Sci. Network Security, 6: 131-137.
13. http://www.sbf1.sbfisica.org.br/procs/2006/pdfs%20optics/Inter
ferometry,%20Holography%20and%20Applied%20Optics/604%20-
2.pdf January 12,2018
14. http://www.st.com/st-web-
ui/static/active/en/resource/technical/document/application_note/DM0
0096551.pdf January 12,2018
15. Massa, D. 1999. Choosing an ultrasonic sensor for proximity or
distance measurement. Sensorsmag. 1 February.
80 |
16. Wilson, J. 2005. Sensor Technology Handbook. Oxford, UK.:
Elsevier.
17. http://www.djangoproject.com/ January 12,2018
18. http://www.djangobook.com/en/1.0/ January 12,2018
19. http://docs.djangoproject.com/en/dev/ January 12,2018
20. http://www.djangopluggables.com January 12,2018
21. http://www.arduinobasics.blogspot.com/2012/07/arduino-
basics-simple-arduino-serial.html January 30, 2018
22. https://medium.com/@jeremymartin071/advantages-and-
disadvantages-of-automated-parking-system-d725492fd67f January
22, 2018
23. https://www.grandviewresearch.com/industry-analysis/smart-
parking-system-market January 15, 2018
24. M.Y.I. Idris, Y.Y. Leng, E.M. Tamil, N.M. Noor and Z. Razak, 2009.
Car Park System: A Review of Smart Parking System and its Technology.
25. S. Alam, M. M. R. Chowdhury, and J. Noll, “Senaas: An event-
driven sensor virtualization approach for internet of things cloud,” in
Networked Embedded Systems for Enterprise Applications (NESEA),
2010 IEEE International Conference on, November 2010, pp. 1–6.
[Online]. Available: http://dx.doi.org/10.1109/NESEA.2010.5678060
26. Li, T.S.; Ying-Chieh, Y.; Jyun-Da, W.; Ming-Ying, H.; Chih-Yang,
C. Multifunctional intelligent autonomous parking controllers for carlike
mobile robots. IEEE Trans. Ind. Electron. 2010, 57, 1687–1700.
27. Kaivan Karimi and Gary Atkinson, ―What the Internet of Things
(IoT) Needs to Become a Reality‖, White Paper, Free Scale and ARM,
2013.
28. Prof. D. J. Bonde , Rohit S. Shende, Ketan S. Gaikwad, Akshay S.
Kedari,Amol U. Bhokre. “Automated Car Parking System Commanded
by Android Application”, (IJCSIT) International Journal of Computer
Science and Information Technologies, volume 5(3), pp. 1-4, 2014.
29. Callum Rhodes, William Blewitt, Craig Sharp, Gary Ushaw and
Graham Morgan. “Smart Routing: A Novel Application of Collaborative
Path-finding to Smart Parking Systems”. Business Informatics (CBI),
2014 IEEE Conference on volume 1, pp. 119-126, 2014.
30. http://www.mdpi.com/journal/sensors Sensors 2014, 14, 22372-
22393; doi:10.3390/s141222372
81 |
APPENDIX
Figure: Arduino Schematic
82 |
Figure: Raspberry PI Model B+ Schematic
Figure: Django Framework Project Structure