Software apps and online services
Inspired by Malcolm Sparks's original project that allowed the use of Dream Cheeky USB button on Linux, I decided to make the button setup more portable by using Raspberry Pi and more versatile by connecting it to AWS IoT.
My original motivation for this was to create an easy and tangible way to deploy new beta versions of desktop applications at work. With a fully automated build and release system already in place, I needed something as tangible as a button to complete the project. By taking the idea further I've finally decided to make the button actions themselves user-selectable, and I set off on this ambitious journey.
The hardware end of things is working although it should be hardened and polished further. When it comes to software please see attributions on the project - this wouldn't have been possible without the work of a few great developers.
The Ansible Pi setup requires that you have a Raspberry Pi with Raspbian Jessie installed on it (or whichever Raspbian is the latest). Once you clone Ansible Pi you can run the recipe via:
ansible-playbook playbook.yml -i hosts --ask-pass --become-user=root
Even though AWS IoT now has some buttons available in very limited numbers, using a Raspberry Pi-based Dream Cheeky button offers many advantages. Indicator lights could be attached to the Pi, or sound feedback, or even a tiny screen. The button itself is also much larger and mush more "smashable" than the AWS IoT button distributed at re:Invent 2015 (especially if you get one of the Hulk Smash buttons that are also made by Dream Cheeky). Finally, since this is a full MQTT implementation, we could even have AWS talk back to the button and provide feedback on the action being performed.
This is still a work in progress...