At Aalto University it is very painful to find free parking for students during work hours. Searching for a spot is a waste of gas, time, money and environment.
What it does
Syndikaatti parking is a complete NB-IoT based parking solution. It consist of device and cloud service. The device detects if there a car in a parking spot or not. When a car arrives or departures, device sends the information to the cloud via NB-IoT network. The front-end (syndikaatti.iothon.team) shows a map and the status of the parking spots on the map. Also, the cloud includes self-made API for quering status of parking spot and all free parking spots, which allows for new possibilities for developers and for new business logics.
How we built it
In the Arduino side, we implemented reading the sensor value, a logic based on the value and sending the value to cloud. We used COMNETs mkr_nb_1500_mqtt.ino as a starting point.
The networking is based COMNET solution, using MQTT protocol and UDP tunneling over IP over UDP.
The cloud is a virtual machine running multiple Docker containers. We have all the COMNETs example containers running as well as one self-made container. It is running Flask application, which is responsible for the front-end and REST API. To give data for Flask, we made changes to mqttbridge container.
Challenges we ran into
- Multiple hardware issues, such as broken sensors, broken arduino or sim card and lack of enough distance sensors
- Problems with NB-IoT network
- Problems with WiFi on the site
- Buggy libraries by Sparkfun
Accomplishments that we're proud of
- Full working solution. From a change in the state of the world, all the way to the web-based front-end
What we learned
- Working with Docker
- Working with NB-IoT
- Hacking complete solutions under tight schedule
What's next for syndikaatti parking
Selling the solution either as a service to for example campuses or parking enforcement agencies.