Uber, and similar technology-driven private-hire firms, is taking the world by storm. While a lot of its business practices are questionable at best, there's no denying that its basic central premise - bringing taxi hiring firmly into the 21st century using smartphone apps, GPS, and a user-accessible application programming interface (API) - is neat - especially when it leads to the creation of a surprisingly simple "take me home, James" button.
Designed and built by Moustafa Nasr and published to Instructables, the Uber Button does exactly what you would expect: push the button and an Uber vehicle is despatched to your door, ready to whisk you away. Inside the laser-cut wooden box is an Arduino connected to a 1Sheeld, an add-on which pairs the microcontroller to an Arduino smartphone via Bluetooth, alongside the push-button, LEDs, and a liquid-crystal display. Its operation is simple: push the button and the Arduino Sketch sends a request to Uber via the smartphone.
The device is made possible by Uber's application programming interface: by signing up for a free developer account, users are able to build their own applications that interact with Uber's system. A sandbox version is provided for testing, which reacts in the same way as the live version but does not send a vehicle to you; the live version, by contrast, works exactly like the official Uber software.
Moustafa's system is very simple compared to a full-fat Uber app: there's no GPS, so the box itself has no way of knowing where it is. Instead, it requires that the location be hard-coded into the Sketch itself - not a problem for Moustafa's use-case, where he has a box at home and a box at work. As Moustafa leaves his home, he hits the button and waits for the Uber driver to arrive and take him to work; when it's time to go home again, he simply hits his work box and the same happens in reverse - and all without having to take his smartphone out of his pocket.
If you use Uber a lot like me, this Instructable will make your life better. I have only three pick-up locations: home, work and the local fablab address. That's why I made this button. I have one at home and another at work, before leaving I press the button and wait for the driver to arrive.