Introduction: Fat Cat Automated Arduino Pet Feeder
Everybody say hello to Duke! He is a 24 pound Maine Coon that I adopted three years ago. Duke enjoys laying in the sun, watching the birds outside, and....waking up his owner at 5 o'clock in the morning for breakfast. As you can imagine, if you have a 24 pound cat sitting on your chest early in the morning, you have no choice but to wake up, gasp for air, and feed the beast. I know what you're thinking, "why not buy a pet feeder?" Well the answer I have come up with is...(pause for dramatic effect)...buying a pet feeder is boring and easy! I will instead build one! As a college student studying Engineering, I have enough of a DIY background to compete the task, but let's see if we can maintain a college student budget and complete the feeder for under $100.
Step 1: Parts for the Feeder.
So here are the main ideas behind the build. Let's build it for under $100 and let's see if we can make use of other products to make the build simpler.
Here is the parts list:
- Home Basics Cereal Dispenser - (Ebay $17.75)
- SPRING SM-S4303R JR interface 360 Robot Servo Large Continuous Rotation - (Ebay $8.90)
- 12"x12"x1/4" project board - (Michael's $4.90)
- 16 Hz Arduino Uno R3 - (Ebay $3.50)
- 4x 1" right angle brackets- (Home Depot $1.97)
- 1 pack of 24x1/2" zinc screws and bolts - (Home Depot $1.18)
- 2" PVC 90 degree elbow - (Home Depot $.98)
Step 2: Getting Started: the Body
I had originally planned to build the entire thing from scratch but the more plans I drew out, the more complicated it became. So I thought, "What is something that already dispenses that is cheap and easy to modify?" Viola! I give you the hand crank cereal dispenser. Perfect!!! It already has dispensing capability and it should be fairly simple to connect a servo to it.
So an Ebay buy and a few days of shipping later, I was ready to get started.
Step 3: Crank/Servo Assembly
The first thing I did was modify the crank that comes with the dispenser. I cut off the handles until only the middle cylinder of the crank was left. After a little bit of sanding I was able to attach one of the smaller servo rotation discs with some small screws that were provided. After that was finished all that was left was to attach the disc to the servo.
(Note: I highly recommend you buy a servo kit with multiple rotation attachments in case the dispenser you buy has different dimensions for the crank.)
Step 4: Front Panel
After that, I constructed the front face of the feeder. I cut a piece of project board to the proper dimensions so that it fit snugly to the front and provided a good amount of cover for the electrical components. Once that was cut and sanded, I attached 4 right angle brackets to the edges to that I could mount it to the front of the feeder. Then I drilled two holes on each side to attach the panel to the body of the feeder. The bolts and nuts make it incredibly easy to disassemble and reassemble.
(Note: I recommend you buy right angle brackets that are a little bit bigger. The 1" brackets I bought work but the screws touch on the inside corners.)
Step 5: Dispensing Funnel
This was the easiest part. I used the mouth of the pipe to trace an outline on the front panel. Then I attached the angled pipe to the bottom of the dispenser using hot glue.
(Note: Make sure you check the fit of the pipe and the front panel before you hot glue the pipe in place.)
Step 6: Securing Servo
Now that all of that is done, we can attach the servo so that it won't move while turning. Here I used two wood screws through the bottom mounting holes of the servo and screwed them into the wood.
Step 7: Programming the Arduino
Now for the really fun part! We need to program the Arduino so that it dispenses food at certain times of the day. I tried to keep the code as simple as possible. I looked up how much food and how often throughout the day Duke needs to be fed based on his current age, weight, and breed. So the feeder will dispense .65 cups of food every 8 hours. Feel free to modify the feeding time and amount based on your pet's needs. The pin outputs will stay the same.
(Note: If you want cheap wire to connect your Arduino to the servo and use on other projects, Home Depot and Lowe's carry spools of telephone jumper wire. It's cheap-color-coded-copper wire.)
Step 8: Connecting Everything and Testing
Now that we have the code written, we can connect the Arduino to the servo to test everything out. The connections are as follows:
Black Servo Wire - Arduino GND
Red Servo Wire - Arduino 5v
White Servo Wire - Arduino Pin 13
After you have tested that everything is working properly, you can secure the Arduino in place. My Arduino has a 3D printed case that I made for it. This made it really easy to just hot glue the assembly to the inside if the pet feeder.
Using what was left of the project board, I cut out a back panel for the pet feeder, making sure to leave room for the power cord.
The final modification I made was adding legs to the feeder to raise it up above the pet food bowl. For the legs I cut 4 2" pieces of dowel rod I had laying around. They I hot glued some foam to the bottom of the pieces so they don't scratch the floor. All that was left to do was hot glue the legs to the feeder and...IT'S DONE!
Step 9: Finished Product
Here it is in all its glory!
Total cost for the project = $39.18
I hope this inspires you to build your own programmable pet feeder!