A bus stop should be able to tell you more than just when the next bus is coming, it should be able to answer all of your questions. With simple signs bolted onto the stops, text messaging and a public data API, we’re proposing to make smart bus stops, iteratively and on the cheap.
For the Urban Prototyping festival, we will build a rough draft of a smart bus stop that has access to public data. We will bolt some signs on in the middle of the night, that will tell people to send a text to a certain number, with the bus stop ID included, as well as their question. Our signage will include an initial set of questions. Our service will look up where that bus stop lives, then answer the question based on that part of the city.
The answers we provide to people is only limited by what data openly available. As the tide of open civic data increases, so does the usefulness of our Smart Stops service. We’ve identified a few to start with though. Transit info through NextMuni, walking directions through Mapquest’s OpenStreetMaps APIs, weather through Wunderground, and events through the city’s events RSS feed. Other potential sources include FourSquare’s locations database, Yelp’s ratings, and Urban Mapping’s wealth of geo-attribute data. In addition, people can add their own API end points to our Smart Stops service.
Step 1: Find out where your bus stops live.
Go talk to your cities bus department and get a list of lat longs for each bus stop. San Francisco has a shapefile with all the stops online at https://data.sfgov.org/Transportation/SFMTA-routes-and-stops-for-March2012/f5c3-8kkj
Step 2: Put the bus stop location data online.
We chose cartodb because its free and accessible by API. You can clean up the data to make it more manageable too. All you need is the bus stop id, latitude, and longitude.
Step 3: Clone the SBSDC Repo
This is our beautiful code base. Clone it on to your Ubuntu server. Make sure you have Python 2.7 installed. There are some crazy options you have to set and the readme is way outdated. Don't fret we'll get v2.0 up one of these days.
V2.0, work in progress, built on Nodejs, can be found here: https://github.com/waltz/smartstops
Step 4: Update all the API keys
Go get a local twilio phone number. Get it all set up and test it out. Go into the SBSDC repo on your server and change the Twilio api end point to your own.
Change out the Foursquare, Mapquest, and Weather api keys too.
The tech side of your project should be done. Test it out.
Step 5: Build Signs!
Go find some old wood or whatever to reuse. We went to a local scrap yard.
Get some OneShot paint, EL Wire, and pipe fastners too.
Cut, drill, file, sand, and screw your signs together.
Step 6: Paint your signs!
Make em fly. Be sure to clearly explain how it all works.
Step 7: Hang em up!
Get people to try it out. Fix whats broken. Have fun. Run from cops.