My project is designed to help many pet owners feed their pets at the exact same times every day, in a precise quantity every time. It will be good for many kinds of pets, including: Cats, Dogs, Fish, Parrots and so on.
This specific feeder was created for my fish pond and for my lovely koi fish. Because it is placed outside, it is waterproof.
You can see in the video above the alpha version of the feeder in the initial test. You can determine the hour, minutes, and seconds for feeding time, and also feed with a remote when you want to. Feeding with a remote command will cancel the next feed you determined by hour.
Link to video: https://youtube.com/shorts/JcsN5wG63ao
Redundant Mechanics: Automatic Pet Feeder
Throwing a cup of food onto the floor mechanically is simple. Ensuring that mechanism physically cannot jam, cannot double-feed, and will definitely operate even after a power outage requires robust engineering. This Smart Pet Feeder is an exercise in building a redundant, fail-proof system using components like the DS3231 RTC and heavy-duty servos.
Eliminating The "Jam" Flaw
The biggest flaw of many DIY pet feeders is using a sliding trap door. A piece of hard kibble gets stuck between the sliding door and the frame, the servo burns out trying to close it, and the entire food hopper dumps onto the floor!
- The Wheel Mechanism: The solution is to design an internal "Paddle Wheel" or horizontal carousel with open chambers.
- A MG996R Metal Gear Servo rotates the wheel exactly 45 degrees.
- One chamber containing the food aligns with the exit hole. There is no door to jam! Food just falls using gravity.
Flawless Time Execution (The RTC Interlock)
You cannot use delay(). You must use real-time scheduling.
- The incredibly stable DS3231 RTC I2C Module keeps time perfectly.
- Inside the
loop(), you pull the hour:int currentHour = rtc.now().hour(); - The Single-Trigger Flag:
if (currentHour == 8 && feedStatus == false) { DeployFoodServo(); // Run the motor once feedStatus = true; // Lock the physical system! } if (currentHour == 9) { feedStatus = false; // Reset the system an hour later } - This boolean trap guarantees that even if the Arduino resets randomly at 8:05 AM, it won't accidentally feed the pet a second breakfast!
Fail-Safe Requirements
- Arduino Uno/Nano.
- DS3231 RTC Module (Mandatory. The battery backup protects the feeding schedule during power blips).
- MG996R High Torque Metal Gear Servo. Standard plastic servos will break instantly against hard food.
- A 3D Printer to construct the anti-jam rotary paddle-wheel hopper.
- An emergency backup power bank to run the Arduino if the main wall power drops.