Inspiration
When we travel as a family, it is challenging to find a pet sitter for my fish. It is expensive and costs money. Especially when we go on longer trips, it is harder to know if my pet fish is healthy and fit. When looking online, there were several automatic fish feeders. However, these feeders had inaccurate portions, or portions that I could not consistently fill up. My fish requires two pellets a day, a precision that none of the market fish feeders have. That is why I wanted to create a device that I could use out of the house via a GUI application that feeds my fish for me, with precise measurements.
What it does
AquaSitter is used by a GUI where you can select the number of pellets you want to feed your pet fish. Then, the number is sent to a Kintone app, and is sent again to the Raspberry Pi connected to a servo motor. This servo motor turns a disk to release a pellet. You can check your recorded submissions for the amounts of pellets you selected on a certain day and time through the Kintone App.
How we built it
Using Python’s Tkinter library, I created the GUI with simple buttons and images. The GUI submit button automatically sends the recorded number of pellets and stores it in the Kintone app. This data is then sent to the Raspberry Pi using Kintone’s API token to send and retrieve data. The servo motor connected to the Raspberry Pi retrieves this data and rotates according to the number of pellets recorded. It is programmed by Pigpio to create the smoothest, most accurate, and precise movements. The actual disk on which the pellet is released is made from recycled materials. More specifically, a food container that was once used for Hummus. This depth and size gave me the opportunity to create the perfect rotary disk.
Challenges we ran into
A big challenge I ran into was the design of the pellet dispenser. I went through multiple designing and redesigning processes. I first brainstormed how I would release one pellet at a time. The first inspiration I had was from a gumball machine, as it is able to release one gumball at a time. But then I realized it was more complex than I imagined, and quickly resorted to a different design. I ended up using some components of the gumball machine, but since I was using a servo motor, I had to adjust the way it worked.
Another challenge was programming and debugging. I encountered issues with connecting my GUI inputs to Kintone, which prevented it from recording and storing data. I eventually found that my field name was incorrect after debugging for a long time. I also faced challenges with figuring out how to reset the pellet number so that it would not dispense the same number continuously until the next submission.
Accomplishments that we're proud of
I am proud of coming up with a mechanical design that works well for individual pellet dispensing. I struggled with thinking of the best design, especially since dispensing singular pellets had many challenges. Not all pellets are the same size, and the actual mechanism design had to be complex. However, taking inspiration from a gumball machine and tailoring it to my design, I created a working prototype. My previous project focused more on software development and less on IoT devices. I was able to incorporate different skills into this project, such as GUI, Kintone data communication, mechanical engineering, and a little electrical engineering.
What we learned
Most of the time, when I try to find solutions to a debugging problem, the root problem is usually a simple mistake. Thus, I learned that I need to double-check every aspect of code before assuming problems when debugging. I also learned that redesigning and rethinking your approach to a project is acceptable. The first iteration of a project idea is almost never the final result; thus, going through and evolving across different stages of a project is essential to its development.
What's next for AquaSitter - Betta Fish Feeder
The next steps for AquaSitter are to connect a temperature sensor, a camera, and a pH level sensor. Despite the main goal for this project to be a feeder, I want to be able to check the boxes to the ultimate “babysitter” for fish. That way, I can monitor the temperature, pH level, or a video of the fish swimming. By doing this, I can optimize its health while I am away and identify any problems with the fish or its environment.
Built With
- api
- gui
- kintone
- pigpio
- python
Log in or sign up for Devpost to join the conversation.