For CruzHacks 2022
By Adrian, Adrien, Nate, Weston
An IoT bottle that tracks water consumption. Winner of Best Health Hack, MLH's Best Hardware Hack, and QB3's Best Big Data for the Improvement of Health Care Winner at CruzHacks 2022.
Plan of Reference Document
YouTube Video
Wanted a way to monitor how much water we consumed throughout our day and over a month period
The SmartFlask measures the amount of water in a water bottle and the amount you've consumed over time. It then transmits a radio signal to a receiver and posts it to a web server where the data is saved to a database for you to view it later in the web browser.
We built this device using a Heltec ESP32 for the main computation, a LoRa module for transmission of data, an ultrasonic sensor for monitoring the distance of the water in the bottle, an IMU to measure the movement of the water bottle, a GPS module so you don't lose your water bottle and a power system. On the software side we built out the webserver using Node.js and MySQL. We create the user interface using Next.js and vanilla CSS.
On the hardware side we ran into problems parsing data, power management, water/IMU calculation, and creating the 3D printed lid. On the software side we had trouble building out the user interface as this was something none of us were really experienced in. We also tried deploying our application using Google's Kubernete Engine service with no luck. We also attempted to automate the deployment to Kubernetes using GitHub Actions as apart of our CI/CD build pipeline with no luck.
Successfully calculating the amount of water in the bottle using a depth sensor. 3D printing the housing unit for the water bottle. Creating unique SQL queries that were a bit complex for our leaderboard feature.
The difficulty of working with new software tools that we are unfamiliar with. How to work together as a team and find the necessary tasks to build and execute a full system of hardware, embedded, and web development. The importance of setting realistic goals.
We plan to continue working on this project and redesigning the top as we did not have time to 3D print the design we wanted. Further refining the user interface and building out more useful graphs.
Built With
c++
css
express.js
google
mysql
nextjs
node.js
platformio
typescript
Full Project on Devpost