Long-distance friendship lamps cost hundreds of dollars, just to light up an LED somewhere to let your loved one know you're thinking of them. We thought, why not spend hundreds of minutes building a work of art instead, to send a sentiment with more heart? And so heartbloom was born!
What it does
Want to let your loved one know you're pining away for their smile? Simply fire off a text message to Heartbloom Bot on the chat service Telegram, and your winged words will find their way to your boo through hopes and hoops to make a glorious paper garden come alive in the comfort of their own home!
How we built it
Your lover activates heartbloom by sending a text message to our Telegram bot, Heartbloom Bot. When heartbloombot receives a message, our Pipedream webhook (connected to the bot) is triggered, which then makes an HTTP request to a webserver running wirelessly on an ESP32 board on the heartbloom lamp. Upon reception of the request, the servo motor activates to momentarily "bloom" the stunning flower lamp we built completely from scratch.
Challenges we ran into
This was our first time a) building a lamp and b) working with anything on the backend!
Obstacles on the hardware end included a nonresponsive board, incredibly challenging mechanical engineering with the limited materials at hand (we initially created boning for the petals out of spaghetti), and oversized lamp sockets. With great perseverance, we found better cables, wooden boning solutions, and the perfect LEDs.
The final step of making the HTTP request to the webserver was by far our biggest obstacle on the software side of things. We tried many solutions to create that last connection -- from migrating to IFTTT from Pipedream, using multitudes of different libraries both server-side and client-side, and pulling our hair out over strange Postman behaviour. In the end, the ngrok port-forwarding utility enabled us to put it all together successfully.
Accomplishments that we're proud of
- Figuring out a new mechanism for opening the flower
- The successful end-to-end integration
- Our incredible perseverance for almost 12 hours straight through heck and high water <3
What we learned
- How to build flowers out of spaghetti
- Working with hardware and backends solo for the first time
- How to integrate many different services
- About webhooks and webservers!
What's next for heartbloom
- Sentiment analysis of the text message to change the colour of the LEDs
- Extend servo arm to increase degree of movement
- 3D printed lamp parts and a more elegant opening mechanism