Difference between revisions of "S15: Smart Sparta Parking System"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Testing & Technical Challenges)
(Testing & Technical Challenges)
Line 366: Line 366:
 
* Limiting the number of IR sensors:
 
* Limiting the number of IR sensors:
 
Solution was we developed a simple and efficient approach/algorithm to determine the car type with only two IR sensors.  
 
Solution was we developed a simple and efficient approach/algorithm to determine the car type with only two IR sensors.  
 
  
 
==== Software Issues ====
 
==== Software Issues ====

Revision as of 02:47, 25 May 2015

Abstract

A smart parking system which aid people to find a parking slot at a parking garage with ease. The system will display the available parking slots in real time and will direct the driver to a specified location hence reducing the touble to find one. This employs a bluetooth communication with control center and consumer via an android application.

Objectives & Introduction

This project aims to simplify the parking process in large parking lots. Currently, when a car enters a parking lot, the information provided at the entrance is the total empty spots available. No information regarding where the spots are is provided. If the parking lot is a large one and the spots left are very few, the users face a difficult time finding an empty spot.

What we are doing here is that we tell the user a spot number, based on his car size, where he can park his car. We also have provided the user with an android based mobile application which has a map of the parking lot hence making it easier for the user to find the exact location.

Team Members & Responsibilities

  • Bhargava Leepeng Chandra
    • Android application, Model/Prototype Design
  • Gautam Saily
    • Motor, Nordic Wireless, Model/Prototype Design
  • Niveda Das
    • IR Sensors, Nordic Wireless
  • Rishabh Holenarasipur Sreedhara
    • Display, LDRs, Integration
  • Sujith Durgad
    • Bluetooth, Control Centre

Project Schedule

Week No. Start Date Planned End Date Task Status Actual End Date
1 03/30/2015 04/06/2015
* Design the Project Layout
* Order necessary Hardware
* Task allocation
* GIT version control system setup and integration
  • Completed
Servo motors, IR sensors, LDRs, Bluetooth orders placed. Model basic layout sorted. Git project setup and integrated to eclipse.
04/06/2015
2 04/06/2015 04/13/2015
* Start Model Implementation to position hardware
* Design Android Application UI Layout
* LCD base code testing
* Research Nordic wireless
  • Completed
Model initiated, Android UI defined, Able to test LCD
04/13/2015
3 04/13/2015 04/20/2015
* Bring up parking layout and motors on to Model
* Basic bluetooth code testing
* Basic Nordic wireless design
  • Completed
CAD design for Model completed. The hardware model follows the CAD model to the possible extent. Nordic wireless: Able to send and receive messages between two SJOne boards. Bluetooth in progress
04/21/2015
4 04/20/2015 04/27/2015
* Establish Communication between Nodes using Nordic wireless
* Complete hardware model with Motors, IR sensnors and LDRs installed
* Implement IR sensors, LDRs and Motor (individual operation)
* Update Wiki page
  • Ongoing
--/--/----
5 04/27/2015 05/04/2015
* LCD dispaly Layout for information display with refresh
* Implement Nordic wireless on all three boards
* Verify mutli node communication
* Android App basic initialization and interface with bluetooth
* Update Wiki page
  • Scheduled
--/--/----
6 05/04/2015 05/11/2015
* Integration testing with modular approach
* Fixing issues
* Update Wiki page
  • Scheduled
--/--/----
7 05/11/2015 05/18/2015
* Integration testing of complete system
* Check if all systems are operational
* Test working of system integration
* Fixing issues
* Update Wiki page
  • Scheduled
--/--/----
8 05/18/2015 05/25/2015
* Final testing
* Complete Wiki page project report
* Final demo
  • Scheduled
--/--/----

Parts List & Cost

Index Part Description Part Number Vendor Qty. Price/unit Total Price
1 SJOne Board: ARM Cortex-M3 based LPC1758 Platform -NA- SCE SJSU 3 $80.00 $240.00
2 Bluetooth Bee B005GI4HFA Amazon.com 1 $23.00 $23.00
3 LDRs GM5539 Amazon.com 20 $0.224 $4.88
4 Servo Motor LS-0003 Fry's Electronics 2 $9.99 $21.73
4 IR Sensors
5 MSC Components
6

Design & Implementation

This section consists of the hardware/software design and implementation of our parking system model.

CAD Model for SSPS

Hardware Design

The project model is divided into two parking levels. Both levels have different controllers. The lower level has the master controller and the upper level has the slave controllers. The modules controlled by the master are LCD Display, LED’s, LDR’s, IR Sensors, Servo Motors, Bluetooth Transceiver and Nordic Wireless. The modules controlled by slave controller are LDR’s and Nordic Wireless.

System Block Diagram For SSPS

The function of each module is explained in the hardware implementation part.

Master Controller

The master controller is the SJ-ONE board which is employed on the lower level of parking and it controls all the modules in the system. The functions of each module is explained below.

Light Dependent Resistor (LDR)

As the name suggests, LDR is a resistor whose resistance value depends on the light intensity. These LDR’s are used in our project at the following places:

  • To detect the empty spots.
  • To detect whether the car has crossed the boom-gate at the entrance and exit.

These LDR’s are placed at every parking spot in such a manner that if a car is parked over it, there will no no light reaching the LDR and hence the resistance will increase. This increased resistance is detected at GPIO inputs and the values at the GPIO pins (logic 0 - Presence of a car, logic 1 - absence of a car) are sent to the master controller.

LCD Display

The LCD display is placed at the entrance of the parking lot. It displays one of the following:

  • A welcome message with car park rates.
  • The parking spot allocated to the car.
  • A message saying that the parking lot is full.
Infra Red (IR) Sensors

IR sensors are used to detect the presence of an object between the transmitter and the receiver. Output signal from the IR receiver depends whether the line of sight of the transmitter and receiver is intruded or not. In our project, IR sensor have been used to detect the presence of a car at the entrance and to measure the length of the car which further decides whether a compact or a big spot has to be assigned to the car. There are two IR sensors placed at the entrance. One is at the place where the car stops and other at an offset from the entrance (in our case it is 3.5 inches). When a car stops at the entrance of the parking lot, the first IR sensor is blocked. Then we check the second IR sensor. If the sensor is blocked the car is big in size, i.e. more than 3.5” long, otherwise it is a compact car.

Servo Motor

Servo motor is a geared motor that helps in the precise angular control. In our project, we are using the servo motor to control opening and closing of the boom-barrier (or boom-gate) at the entrance and exit. When a car is detected at the entrance by the IR sensor (assuming that the parking is not full) and the entrance button is pressed, the servo motor is actuated to turn 90 degrees so that the boom-gate is open. Once the car has crossed the LDR present at the other side of the boom-gate, the servo motor is brought back to 0 degrees and the boom-gate is closed.

Bluetooth Model for SSPS
Bluetooth

Bluetooth Bee is an easy to use Bluetooth Serial Port Profile(SPP) module compatible with existing Xbee sockets, designed for transparent wireless serial connection setup. Serial port Bluetooth module is fully qualified Bluetooth V2.0+EDR(Enhanced Data Rate) 3Mbps Modulation with complete 2.4GHz radio transceiver and baseband. It uses CSR Bluecore 04-External single chip Bluetooth system with CMOS technology and with AFH(Adaptive Frequency Hopping Feature). It has the smallest footprint of 12.7mm x 27mm.

Default Baud rate:38400, Data bits:8, Stop bit:1, Parity:No parity, Start Bit:1 Supported baud rate: 9600,19200,38400,57600,115200,230400,460800.

Nordic Wireless

Nordic wireless supports multi-node mesh network with simultaneous communication between different nodes. It is a medium range wireless communication system which supports a fair amount of distance between different nodes. It is a low power application that extends the lifetime of a battery operated system. In our project we have used the nordic wireless to relay the sensor updates and other relevant information to the master controller at the lower level of the parking lot. The slave controller forms packets of the data it received from the LDR’s and transfers the information to the master controller wirelessly. To achieve this, we have to give a particular address to each node (master and slave) which is the base to operate a mesh network. We set the address of each controller by flashing the address in a file on each SJ-ONE board.

Slave Controller

The slave controller is the SJ-ONE board which is employed on the upper level of parking and it monitors the parking spots at the upper level using LDR and transmits the data to the master controller. The functions of each module is explained below.

LDR's

The function of the LDR’s is described in the master controller.

Nordic Wireless

The function of Nordic Wireless has been described in the master controller.


Hardware Interface

For two modules to communicate, there is a need of a protocol between them. This protocol is different for different types of interfaces. The communication between the different modules in our project is made possible due to the following hardware interfaces.

GPIO Interface

The GPIO pins on the SJ-ONE Board are used for switches, LED’s LDR’s and IR sensors. The GPIO pins are used as inputs for the IR receiver, LDR’s and switches. Whenever the signal at the output of these three devices is low, it indicates a logic ‘0’, and whenever the signal at the output of these devices is high, it indicates a logic ‘1’. The GPIO pins are used as outputs for LED’s and IR transmitter. Whenever the output signal is a logic ‘1’, 3.3V signal is given to the device and whenever the output signal is logic ‘0’, 0V signal is given to the device.

PWM Interface

The SJ-ONE Board on the lower level (Master controller) communicates with servo motor through PWM interface. In order to rotate the boom-gate at 90 degrees, PWM signal is sent to the servo motor.

Mesh Interface

The master controller (SJ_ONE Board) on the lower level communicates with the slave controller (SJ_ONE Board) on the upper level using a low mesh interface. The lower level receives the status of the parking spots acquired by the LDR’s at upper level using a mesh packet.

UART Interface

The master controller on the lower level communicates with the LCD display through UART interface. In order to display information on the LCD display, UART signals are transmitted to the LCD.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes the overall working of the project.

Back-End Algorithm (Process of finding a parking spot)

  • The upper and lower module polls the GPIO pins connected to LDR’s to check the status of the spot (vacant or filled).
  • This polling is done every one second. This means that the database is updated every second.
  • As soon as the upper level controller polls the status of the LDR’s, it sends the packet containing the polling results to the lower level controller.
  • This communication is done using Nordic Wireless.
  • At this point , the back-end algorithm gets the information about the car size from the front-end algorithm and checks whether a parking spot is available for that particular car size.
  • If a parking spot is available, its location will be decided here and displayed on the LCD.
  • If there is no parking spot available, “Parking Full” message will be displayed on the LCD.


Front-End Algorithm (What happens when a car arrives)

  • The car comes at the parking lot entrance.
  • The front IR sensor is blocked resulting in activation of the switch that has to be pressed to get a ticket.
  • The second IR sensor (placed 3.5” from the boom-gate) detects the length of the car using the following steps.
    • If the sensor is blocked, i.e. the car is greater than 3.5”. Hence it is categorized as a big car.
    • If the sensor is not blocked, i.e. the car is less than 3.5”. Hence it is categorized as a compact car.
  • This information about the car size is given to the back-end algorithm. If there is a free parking spot, the boom-gate opens.
  • The LDR placed across the boom-gate checks whether the car has passed over it or not.
  • When the car passes, the LDR gives the signal to the master controller to close the boom-gate.

Bluetooth Implementation

Bluetooth Hardware Implementation

The above system diagram shows the overall connection of the SJOne board and the Bluetooth bee module. This module can be mounted on the SJ one board on the zigbee base. The communication for configuration of the module is based on ST commands. There are unique commands for specific functions, to set the device name, set the pin, set the baud rate and much more. All you have to do is to save these ST commands in the form of string and send each byte serially to the module using a UART3. Initially the baud rate is set to 115200. Following table shows few of the AT commands which you may require.

Software Commands
Commands Use
\r\n+STWMOD=0\r\n Set device working mode as client (slave). Save and Reset
\r\n+STBD=115200\r\n Set baudrate 115200. Save and Rest
\r\n+STNA=Smart_parking_bluetooth\r\n Set Device Name as "Smart_parking_bluetooth". Save and Reset
\r\n+STOAUT=1\r\n Permit Paired device to connect me
\r\n+INQ=1\r\n Commands for Normal Operation

IR Sensor Implementation IR sensors are used at the entrance of the parking structure to determine the type of car, i.e whether the car is Compact (3 inch model) or Large (4 inch model). Two IR sensors are employed, IR1 and IR2 at a distance of 0.5 and 3.5 inches from the Stop sign. IR1 is used to check if the car has stopped and is in a position to press the switch used to replicate the parking ticket generator. Once the car stops at the entrance IR2 is used to find the type of car. If IR2 is blocked then the car is identified to be Large, else Compact car. The data from the two sensors are sent to the master board using GPIO pins.

IR Sensor Model

Nordic Wireless Implementation Each node, both the master and sensor (second board) is assigned with specific address called the node address. Once the car type is determined by the IR sensor’s, master board fetches the free slots info from the LDR’s interfaced to its itself and also from the sensor board at the top floor.

Master board requests for data through the following API:

  • wireless_send(addr[noOfNodes], mesh_pkt_ack_app, &cmd, 1,hops))

The function sends the data packet to the particular node which is identified by the addr[noOfNodes] parameter. Upon receiving the data packet the node sends the acknowledgement back to the sending node which is stored in mesh_pkt_ack_app. The parameter hops give the distance between the two nodes.

The wireless_send() function sends the data packet and it returns true if the send is successful else it returns false indicating there was a failure in sending the packet. Assuming master sends the data packet to the slave successfully, it then waits for the slave to return back the packet with parking space info from the sensor node. The next step is to deform the packet the same way as it was formed. On deforming the packet, master gets the available slots for different car type.

Following are the rest of the API’s used at Master end are:

  • wireless_get_ack_pkt(&pkt, 1000)
  • wireless_deform_pkt(&pkt, 1, &freeLargeSlots, sizeof(freeLargeSlots), &freeSmallSlots, sizeof(freeSmallSlots));

The sensor node (board at the top floor) receives the request from master node, process the data, forms it into a packet and sends the formed packet to the master node.

The API’s used at the sensor node are:

  • wireless_get_rx_pkt(&pkt,100)

The above function at the client side will wait for the request from the master node.

  • wireless_is_ack_required(&pkt)

If the master has asked the sensor for acknowledgement then the above function would check for the same at sensor side.

  • wireless_form_pkt(&pkt, pkt.nwk.src,mesh_pkt_ack_rsp,1,2,&freeLargeSlots,sizeof(freeLargeSlots),&freeSmallSlots, sizeof(freeSmallSlots))

The above function is responsible for forming the packet.

  • wireless_send_formed_pkt(&pkt);

The above function is responsible for sending the formed packet to the master node.

Testing & Technical Challenges

Hardware Issues

  • Packet loss in Nordic communication:

Solution was Source and destination node address were checked. As there was still loss of packets, Antennas were used at both the source and destination node.

  • Limiting the number of IR sensors:

Solution was we developed a simple and efficient approach/algorithm to determine the car type with only two IR sensors.

Software Issues

  • When interfacing Bluetooth bee with the SJ one board, the initially baud rate of the Bluetooth bee was set to 115200 rather than 9600. By connecting the output to voltage analyzer and calculating the frequency, we were able to calculate the baud rate in which the Bluetooth bee was operating.

Conclusion

Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?

Project Video

Upload a video of your project and post the link here.

Project Source Code

References

Acknowledgement

Any acknowledgement that you may wish to provide can be included here.

References Used

Appendix

You can list the references you used.