Ever forgot which floor you parked your car after a long day of shopping? There isn't an app or hardware hack that does that yet, and GPS systems do not have parking level information. Parrot Parkr, my Android application, uses pressure sensors in smartphones and pressure sensors in the arduino to lead the user back to the floor of his or her parked car.
This project also has the ability to track your stolen car, and I am hoping to add more features, such as alerting the user immediately if the car has moved(been robbed) before they came back to it.
How it works
This project uses Android and Arduino (Andruino :D)
The following materials were used for the hardware side of the project:
- Arduino Uno
- Jumper Wires
- Wireless Bluetooth Transceiver Module for Arduino
- GPS Module for Arduino
- Barometer Pressure/Temperature Sensor for Arduino
The following materials were used for the software side of the project:
- Android OS
- Samsung S4 (or any Android phone that has a barometer built into it)
- Android Studio
- Bluetooth (with the phone)
Prior to trying the application, I had to:
- Open doors and some windows for some period of time to let air in (I did that prior to recording the video)
- Measure my longitude and latitude with the GPS and my pressure with the barometer built into my phone for testing purposes
- I configured my application for testing on my house. I measured that the pressure on the bottom floor of my house was 1001.8 while the top floor was 1001.3. Using this difference I calculated the altitude(by the equation in step 4), and converted that number to another unit that I specified (temporarily since I am using a house) to be the distance in floors(of a multistory parking lot). In the video I measure 1 floor = 4 meters, and the program will round it to nearest floor. I would change this unit if I used it in a parking lot, which I did a couple days ago(phone died so I couldn't save the recording).
- I used the formula Pressure(at a certain height)=Pressure(Initial) x e ^ [(-mgh)/kT] and I let T(temperature) be calculated by the Barometer sensor(which could also calculate temperature) and used that formula to solve for h which was the height that I used. You can look up more information about this pressure altitude formula
Here is an image for clarification for the formula:
During using the hardware and android app, the following needs to be done:
- Put the arduino in the car, and drive the car up a multistory parking lot (lets say the second floor)
- If you're android app is connected by bluetooth to the arduino, you should be receiving a message when you click Find my car - "1 floor up @ XXXXXX XXXXXX" (XXXXXX is latitude and longitude)
So what's it doing?
The android app measures its pressure and calculates altitude and the arduino measures its pressure and calculates altitude(with the formula stated above) and sends it to the android app and then I subtract the altitude of the my phone(me) from the altitude of the arduino(the car) to get the distance and that distance is converted to a unit that I measure to be in floors (1 floor / 4 meters). Also the arduino sends the data for its GPS coordinates to the phone and the phone outputs the distance in floors and the latitude and longitude.
Challenges I ran into
- The app took some time to output "X floor up @ XXXXXX XXXXXX", so I always made the arduino send the data over every time it got the pressure, temperature, and the output in floors. So the data that shows up on the app is not realtime(it's the data from a few seconds before), but still shows up instantly. So if the car were to be robbed, the change in distance would show up a few seconds late, but nevertheless in time to stop the robbery.
- Finding the right arduino parts
- The first bluetooth I got wasn't strong enough for large distances, so I had to invest in a more expensive one, but measured the distance even if it was a 100 meters apart.
Clarification on floors
For the purposes of testing on my home, I set 1 floor to be 4 meters. In reality, in multistory parking lots, I would set 1 floor to be 8 meters.
Accomplishments that I'm proud of
I did an "Andruino" project!
What I learned
I learned how to use bluetooth, barometer, and GPS for arduino.
What's next for Parrot Parkr
- Find a way to make the data send over to the android faster
- Automatically notify the user if the car is being moved before the user comes near to the car.
- Try to establish it into a company (in a few years?)
Note to the judges
Feel free to request the hardware, I will try to send the hardware over as fast as I can. Also, source code to the private git is available on request. I also would like to be considered for the MLH student prize as I am a high school rising junior at Lynbrook High School