Looking to make my vision a reality, I’ve decided to use a Raspberry Pi 3 as the hub for all of this hardware. I hope to both run the display and Beeminder API calls from it (essentially, the Raspberry Pi will make something happen when the button is pressed, in this case telling Beeminder that I’ve completed my task) .
I think that the most sensible protocol to use for the buttons is Bluetooth Low-Energy(BLE). In other living settings, Wi-Fi might make more sense, but since I’m setting all of this up in a college dorm and in previous projects I’ve come across issues with the university networks, BLE will create fewer headaches. Additionally, I’m only planning (at least for now) to place these buttons within my ~100sq ft dorm room, so range and interference isn’t an issue.
I’ve found a few preexisting projects that are serving as helpful guides, especially since I’ve never worked on a robotics/electronics design project before without a team. Aside from of course phi’s dashboard project, which sparked my interest in this sort of project, I’m also referencing this model for bluetooth low-energy buttons made for accessibility applications, and this wifi emergency food button.
I have points of divergence from all of the pre-existing designs I’m drawing inspiration from. With phi’s dashboard, I’m largely hoping to mimic what he sets out to do, but I’m adding this datapoint creation component. The “Pip” bluetooth low energy buttons are build on a now-discontinued bluetooth low energy board. They also have components I don’t think I need, like a buzzer. And they run on AA batteries, making them much bulkier than I’d like my buttons to be. The wifi emergency food button is obviously, run on wifi and not BLE, and accomplishes a singular (and very different) task.
Nevertheless, I’m taking major guidance from these projects. For the dashboard, I think it’s self-explanatory, I’m essentially trying to accomplish the same thing. The “Pip” buttons will help me figure out what hardware components I need, and give me one model for coding to look at. The emergency food button inspired me to really want to design a custom PCB for this project, which I didn’t know was possible on such a small scale until finding this project!
My current plan for how I’m going to spend my time and get from an idea to a working, albeit clunky, prototype(excluding planning and the wait for hardware, of course) is as follows:
1) Get Raspberry Pi set up (SD card, 3d print a case, etc.) and connected to university wifi
2) Make Raspberry Pi successfully call Beeminder API
3) Set up button prototype based on a Feather BLE board
4) connect button prototype to Raspberry Pi
5) successfully transmit some data from Feather to Raspberry Pi
6) get button press to trigger an action
4) Connect these processes to make an API call when button is pressed
I’m realizing I’ve left out the display in this, I need to go read phi‘s documentation a bit more closely, and probably also have the hardware in my hands, before I quite know what to do with this part.
But this alone is a lot of work and feels like a good amount of direction! I’m very excited, see the spreadsheets I’m using to organize myself here. There, you can see my task list and a list of the hardware I’m using.