I wanted to make a product that could make someone's life more convenient, even if only slightly. It just so happens that this project idea could help accomplish this goal while also being within the reach of my limited skillset.
What it does
Fish Feeder Pro has an OLED that displays how much time is left before an owner must feed their fish. The user can then press and hold the button, which activates the feeding mechanism and also resets the timer and display.
How we built it
The timer in Fish Feeder Pro was made by subtracting millis() from a hard coded number of total time. The hour and minutes remaining could then be printed onto the display by dividing and using integer math. When the button is pressed, code is run that changes these variables so that the timer is essentially reset; code for the motor is run as well. Additionally, if/else statements ran every loop, so that a different color between green, yellow, orange, and red, would show on the RGB LED depending on how much time was left until the food needs to be refilled.
Challenges we ran into
I originally intended to make Fish Feeder Pro with Bluetooth and Wi-Fi capability in mind. That way, it would serve as a convenient way to feed your pet where ever you are. However, I couldn't get my ESP32 to connect, even with the help of some of my upperclassmen. I also had a lot of trouble with basically everything else as well. I think some notable things were getting the clock working and resetting when the button was pressed, as well as getting the motor to work.
Accomplishments that we're proud of
This was my first real Arduino project, so I'm honestly just pretty proud that I made it to the finish line.
What we learned
On the hardware side, I learned how to use the OLED display, motor, and RGB LED. I also deepened my understanding of if/else statements, variable declaration, and loops as I was building the Arduino clock.
What's next for Fish Feeder Pro
My next goal is to implement those Bluetooth and Wi-Fi capability through the ESP32. I would also like to update the feeding mechanism when I get the chance. At the moment, it's just a cardboard box, so it doesn't have the precision that other hardware might have.