GFROM83 - a blog

Freer Parking: An IoT Hack to Maximize Free Parking and Never Get Ticketed

July 8, 2020
Raspberry Pi & Power Bank

When I was a student on campus I had to move my car every 90 minutes to avoid being ticketed. That got old fast, so I developed a solution utilizing a Raspberry Pi and a cell phone power bank. To better understand the solution to this problem, it helps to first understand how the ticketing process works.

  • Whenever parking enforcement passes by a vehicle in the free parking zone, they simply make a chalk mark on the tire to signify that a countdown has begun on the vehicle.
  • The countdown is simply how much time a vehicle can remain parked in the free parking zone, e.g. 90 minutes, without being in violation.
  • After the free parking period has elapsed, the parking enforcement returns to the area to look for any vehicles with chalked tires.
  • If a vehicle is found with a chalked tire, then the vehicle is in violation and a ticket is issued.
  • Parking enforcement is inconsistent, meaning some days you could leave your car for 4 hours in a 90 minute zone and never get a ticket. Other days you could get a ticket for parking 5 minutes over the limit.
  • Key takeaway: Parking enforcement must always pass by a vehicle twice in order to issue a ticket.

Now for the secret sauce. All parking enforcement carry a ticket printing device on their belts and these devices all give off a unique and discoverable Bluetooth signature. All the devices in a particular city have the same five letter prefix. Below it is 'XXZFJ', in another city I observed it to be 'XXRAJ'.

iPhone bluetooth settings

Parking enforcement's Bluetooth signature.

It took no small amount of lurking to come to this conclusion, but the implications are very useful.

The implications:

  • Parking enforcement can be detected whenever they come within Bluetooth range of your vehicle.
  • You can know the exact time that a countdown(chalking) on your vehicle begins by detecting them and sending yourself a notification.
  • You can use this knowledge to maximize the length of time your vehicle is free parked without the risk of a ticket because parking enforcement must pass by your vehicle twice in order to issue a ticket.

Implementation

Technically this is very simple. All you need is a Raspberry Pi, a cell phone power bank, and a wifi connection where your vehicle is parked. The hardware is left in your vehicle upon parking. A simple Python script runs on the RPi scanning for Bluetooth and looking for a match to the parking enforcement's BT signature. If a match is found, an email is sent to you with the timestamp. You can use SSH to run the script remotely. PyBluez takes care of the necessary Bluetooth functionality and is the only external module needed. For notifications you can use gmail, but you have to change account settings to allow for less secure apps. Here is a Link for a working implementation of the code needed to run on the RPi. Enjoy!

Traffic cop putting ticket on a windshield

Nothing to see here

Move along.

About me

Recent CS grad, class of COVID. Running, sci-fi, looking for opportunities. Contact me at [email protected]