Photo Credit: Freakonmics
An Internet-of-Things (IoT) application, that automates parking space availability in a parking lot, so that drivers can quickly locate the nearest available space, in order to save time and fuel, and that also helps parking lot owners and attendants, monitor and manage their lots.
A Code Fellows 401 Java Team Project.
An Internet-of-Things (IoT) application, that automates parking space availability in a parking lot, so that drivers can quickly locate the nearest available space, in order to save time and fuel, and that also helps parking lot owners and attendants, monitor and manage their lots.
Inspired by the movement started in South Korea of using balloons to indicate unoccupied stalls (See article: https://popupcity.net/parking-balloons-help-drivers-save-gas/)
Photo Credit: Spring Wise
Nothing is more frustrating when time is spent grid-locked looking for an open parking stall at a busy mall's parking lot during the holiday seasons. Based off a month-long study conducted in South Korea, a major oil company S-Oil estimated an average Seoul driver spends 9.3 miles per car a month looking for parking. With a study using balloons those commuters were able to reduce their consumption by more than 65%!
It's a hardware/software based solution that will allow users to discover nearby available parking spaces in a parking lot, thereby saving time, and fuel. Sensors in each parking space automatically mark spaces as available, or unavailable, as drivers occupy or vacate them.
The hardware part of this product will utilize Raspberry Pi micro computers, programmed to detect a sensor being triggered when drivers occupy and vacate parking spaces, and respond by contacting the server API about the event.
The software part of this solution is a cloud based application that maintains parking lot information in real time, based on the events occuring in the parking lot, detected by the hardware components.
Additionally, parking lot operations can be managed in real time, by attendants, and owners, using an Atendant application, to view current status, and monitor transactions.
The only change to our original architecture write up, is that we elected to go with a browser based Attendant application, instead of a Java Swing application. It uses Java and Spring WebSockets.
- Java
- Spring Boot
- Spring JPA
- Spring Statemachine: https://projects.spring.io/spring-statemachine/
- HTML/CSS/JavaScript
- Bootstrap
- Thymeleaf
- WebSockets
- PostGre SQL
- Heroku
- Gradle
- Wiringpi
- Raspian OS
- Pi4J
- Raspberry Pi See the client repository for more information: Physical-IoT
Spring boot apps that use JPA, like this one, require a database in order to run. If you are a developer, and want to work on this application, you'll need to setup a local database in order to run.
- got the directory in which you want to install Physical application
- Clone this repository for code to run
To run locally on localhost:8080
- Create and connect
parking_app
database in PostgreSQL - Configure your editor environment variable
--DATABASE_URL="postgresql://localhost/parking_app"
--SPRING_DATASOURCE_USERNAME="yourusername"
--SPRING_DATASOURCE_PASSWORD="yourpassword"
Navigate to Physical-IoT to follow instructions on how to setup the device.
- 1 - Official concept Release
- Raspberry Pi See the client repository for more information: https://github.com/DMD-Code-Fellows/Parking-IoT-Physical
- Only applicable to current members of the organization, git clone the project repository into a local directory.
- All work must be done on a unique branch that indicates the contributor and the feature.
- All merges from local branches can only be into the test branch. Approval from organization member is required prior to merging to master for publication
- Parking-IoT-Server
- Parking-IoT-Common
- Parking-IoT-Attendant: TODO
- Parking-IoT-Physical
Parking-IoT-Server is licensed under the APache License, Version 2.0 Apache License