So last week I was driving, and was pretty annoyed that I had to swerve around the road to avoid the potholes. Last month I messed up my wheel alignment because of a pothole, and now I'm just tired. We were inspired to create PotHead, an onboard pothole sensor using the Intel Edison Board and Python+Flask. We want to improve city infrastructure maintenance, and we're starting with something we all know and love, Potholes.
How it works
We start off with the Intel Edison Board. This board runs a python script that read output from an accelerometer. When the z acceleration is beyond a certain threshold, the sensor registers that you hit a pothole, and gets ready to send a request to the database. Our Edison creates a POST request to the digital-ocean database, and registers that you've hit a pothole in the city's database. The city can then see all the potholes encountered throughout the city, and can decide the best plan of action to fix them.
Challenges I ran into
This was our first time working with the Edison board, and hardware hacking in general, so getting used to the basics of electric components was time-consuming. We tried really hard not to fry any parts.
We also had problems with creating an API, and making sure any faulty requests wouldn't break anything.
(We also kept mixing up longitude and latitude, but we don't like to talk about that)
Accomplishments that I'm proud of
We got it to work!
Of course, 1 hour before project submission, everything decides to work and we're rushed for time, but we managed to implement most of the basic features we wanted to see in Phase 1. It was really cool to see the physical sensor trigger an API call on our server in another state!
What I learned
Hardware Hacking Basics, Serial Ports, Analog vs. Digital signals, Intel Edison, Arduino, Creating API Best Practices