Button (left) and receiver (center) with casing (right).
I was surprised when it finally worked.
Next, I had to figure out how to get the ES32 send a text to my phone when I press a button. I thought this was easy, and it should have been. But it was not. I used the CallMeBot's API, and the way it works is sends an HTTP post request to connect to What'sApp.
Next, I had to get the rotaryencoder working. This took a while as I had to tune the acceleration, debouncing, and how it dealt with the steps.
Once I had thought through all the parts, it became easier to craft a vision.
Then, it was time to do the math. Feeling like a real SEAS student, I put my 800-dollar iPad to use and sketched out the exact dimensions of the encasing. It was perfect. Every angle, tangent, tooth, and plane was accounted for in my designs. The plan was to laser cut the box, and make it look as much like a classic high end 70s stereo as possible.
Then it all came crashing down.
It was 1am and I was 5 episodes deep into season 8 of Always Sunny in Philadelphia when I realized that I had to change everything. The only way forward was to make an orb. I fired up fusion and designed a simple ball-shaped interface.
I killed a number of ESP32s from short circuiting. This was probably because I didn't cover 80% of the live wires in my circuit. I solved this problem using tape. Not electrical tape, because that's bad for the environment. I used fabric-ish tape instead.
When I tell you that I am a master of hardware assembly (video below), you better believe it. Look how difficult this is. That's an M2 screw. Hear me? M2. And I'm installing it with a pair of pliers.
The cliché of PS70 is that that everyone's project "looks like a bomb," but mine really did. Specifically, one of those silly bombs with a thick, 6 inch fuse that they use in pirate movies. As I write this, it doesn't seem like that much work. But if you're a sophomore or something reading this website while taking PS70, know that my project is impressive and I belong here at Harvard.
After 36 hours without sleep, it was finally done. Check out the demo video for more, but here are the functions:
Set alarm times from one of the menu options, or set a custom alarm from yourself. When the button gets activated, a light turns on (presumably outside your door, but just wherever you choose to put it). Also, it sends a text to your phone. You have to pay an API service like Twillo if you want it to send a text to more poeple, which I'm not willing to do.
Check out the zip file for code and print files.