Name | NetID | Section |
---|---|---|
Emily Chen | emilyyc3 | ECE 120 |
Ethan Fritsche | ethanjf3 | ECE 110 |
Statement of Purpose
Our group’s goal is to build an automated pet food and water feeder that allows the owner to customize feeding times/quantity and also alerts the owner to shortages. The project's objectives are to have a fully automatic and interactive feeder that will dispense food at set times and at set amounts, not overfill the food container via weight sensor, and alert the owner when water is running low via water sensor. This project will solve the problem of constantly catering to a cat, a pet we both have, and will ideally be more interactive and customizable than other preexisting options.
Background Research
Initially we wanted to develop an app or an interactive publicly hosted website that the user can log into and configure the settings. However, we were unsure on how we could send the data collected from the website to the Raspberry Pi/motor system (assuming we would have to implement some sort of API/server for data collection/processing). While researching, we found that there are ways where we could host a static website through Raspberry Pi, but there weren’t a lot of detailed descriptions regarding how one could code a user-interactive site. We were also considering using traditional buttons or up/down arrows as the user interface, but we are instead planning on configuring a GUI application in Python to make the interface more streamlined. Rather than building a feeder completely from scratch, we are instead opting to buy a regular non-automated feeder, and focus on adding sensors/user interface information
As far as using an Arduino vs a Raspberry Pi, we opted to use a Raspberry Pi since the mechanism for keeping time would be easier (connect over WiFi) compared to using millis() in Arduino (which disconnects if power was lost). Raspberry Pi would also have the ability to work with a User Interface in Python.
Block Diagram / Flow Chart
System Overview
The core of our system is the Raspberry Pi as it communicates with the user and controls the physical components. The feeder components include the elevated container for the dry food and the rotating dispenser mechanism . The servo interacts with the feeder by automatically turning the dispensing mechanism at set times communicated by the Raspberry Pi. The weight sensor will sit under the food bowl and detect the levels of food, reporting that back to the Raspberry Pi, which will determine how much food we release at the next interval. For example, if the animal isn't eating as much food for lunch, we won’t dispense the usual x amount, rather adjust it so that the dispensed food + food already in the bowl = x amount. The water container is a simple gravity fed container that will have water sensors at two levels to report the water status, and when half -empty/ empty will trigger the yellow or red LED. Combining all the data, the Raspberry Pi will report it in an interpretable and interactive way to a Python GUI.
Parts
Water Dispenser: $9.29
Water Detection: (2x for the LED control light) $1.95 x 2 = $3.9
https://www.adafruit.com/product/4965#description
Servo: 12.95 (maybe use ECE's current servo)
https://www.pololu.com/product/1248
Raspberry Pi: 35
https://vilros.com/products/raspberry-pi-4-2gb-ram?src=raspberrypi
1 Raspberry Pi power supply: 8
1 16GB microSD card for the Raspberry Pi - 7.50
https://vilros.com/products/official-raspberry-pi-foundation-micro-sd-card-pre-programmed-w-noobs
Total: $104.77
Possible Challenges
Some possible challenges that we anticipate facing are:
The servo we have isn't strong enough to turn when the food bowl is completely full or we would have trouble calculating and controlling exactly how much we dispense via the servo. However, we don’t anticipate having too many problems with the strength of the servo since the specific component we are looking to purchase is built to handle turning robotic structures.
Water sensor communicating to the Raspberry Pi might be laggy; it may take a long time to dry, especially if there are water droplets remaining on the sensor.
Communicating with the Raspberry Pi or having the user easily communicate with our system.
References
https://techtutorialsx.com/2018/06/24/raspberry-pi-3-raspbian-getting-input-from-the-python-shell/
http://www.instructables.com/id/Setup-Weaved-and-the-Raspberry-Pi/?ALLSTEPS.
https://storiknow.com/automatic-cat-feeder-using-raspberry-pi/
https://www.instructables.com/id/Internet-Enabled-Raspberry-Pi-Pet-Feeder/
List all references you used in your proposal. This is important, you do not want to be blamed for plagiarism. IEEE citation format is highly recommended. You can use citethisforme.com's IEEE citation generator to painlessly generate your references in this style.
Final Report
https://docs.google.com/document/d/18ljV8o5ByqnkTlCv09iHKpBLuDIj0xl1r0CHziHdf5o/edit?usp=sharing
Video: