Introduction: Industrial Strength Cat (pet) Feeder
I travel for many weeks at a time and I have these outdoor feral cats that need to be fed while I am away. For several years, I have been using modified feeders purchased from Amazon that are controlled using a raspberry pi computer. Even though my feeding system uses two feeders (primary and backup), reliability of the residential grade feeders has been a concern. This project removes a lot of the the reliability concern. This feeder is superior to the modified purchased feeders in the following ways: Easier to program, IOT, heavy duty motor, bearings on shaft. moving parts are all steel, dispenses all food (none left in feeder), disassembly is easy, allows thorough cleaning, and feed rate is consistent full or near empty.
The industrial Strength Cat Feeder is a pet feeder project which is web/internet based:
Computer (raspberry pi) controlled
The feeder is operated by a web server. The server displays the current photo of bowl. The web server has buttons to: feed on demand, take new photo, easily customize automatic feeding times, indicate how much food has been dispensed Feed Various amounts of kibble at various times of day - easily customized Emails photos before and after feeding to verify operation Take picture on demand Web server displays current photo of bowl on web site Logs and displays how much food has been dispensed.
Reliability - High quality motor, bearings to minimize wear, battery backup for pi.
Connectivity - Away from the home? check on your pet’s food supply.
This feeder is actually designed as a subpart for an outdoor feral cat feeding system. The outdoor feeding system contains two of these feeders for redundancy in case of a failure.The outdoor system is raccoon proof. It is designed to be operated unattended for long periods of time. I will link the larger outdoor system at a later date.
Because others may want to use this feeder in an indoor environment, I added a base, cover and bowl. I will be using mine without the base and bowl. I also include a extension in case someone wants extra capacity.
I have been using raspberry pi controlled feeders for extended periods of time and I am satisfied with the reliability. This feeder has been in operation for a few weeks, been disassembled and inspected. The feeder was easily disassembled and cleaned up easy. I could remove all remnants of food to keep my animals from getting sick. I believe that the reliability will be very high.
This project requires a 3d printer. This should not be a problem if you don't have one and live in a large metro area. Many libraries have 3d printers now.
Disclaimer: This project links to other web sites that cover the necessary steps to install software on a raspberry pi, etc. This is my first "instructable", and these instructions are written at a high level and do not get into the smallest of details. Some further investigation/research may be required.
Step 1: Understanding How the Feeder Works
The feeder consists of a hopper which holds food. The hopper sits on top of a screw conveyor. The screw conveyor is turned by a stepper motor which has more than enough torque to turn the auger.
The motor is driven by a 12V transformer through a stepper controller. The power to the controller is controlled by a relay which turns the power on/off only when the feeder is operating. Stepper motors use power even when they are not turning. This is why I installed a relay - only supply power when the motor is required. The stepper controller is controlled by a raspberry pi computer which has a web server.
The web server index page has four buttons which control the pi. There is a "settings" button (linked to a settings page), "feed now" button (linked to a feed now page), "picture" button (linked to a picture page), and a "reset fill" (linked to a reset page).
"Settings button" -> settings.php - this page writes the settings to a text file(configuration.txt) located in the /var/www/html directory. This txt file will be read every hour to see if it is time to feed and how much to feed.
"Feed Now" -> button.php - this page calls the shell script "feedNow.sh" which calls the python script "
"Reset button" just resets the feeder count to zero. The current count is maintained by the file "fdrCount.txt".
"Picture button" forces the camera to take a new picture. The picture on the web site is updated once an hour and is taken 10 minutes after every hour (after the feeder has dispensed the food.
The crontab will be modified to run a python script "checkDispenseFood.py" every hour on the hour. This script reads the configuration.txt file. It looks at the current time, sees if the times match for any of the three feed times. If there is a match, it dispenses the amount of food that is set by the configuration.txt file. The script also calls a script which emails a photo from the camera before feeding and after feeding. This way someone can verify that they are eating all of the food and that the dispenser is actually working.
The auger has been tested with only one type of cat kibble (Meow Mix). The feeder does empty the hopper completely with very little "rat holing". The feeder appears to dispense consistent amounts of food whether the hopper is completely full or near empty.
Step 2: Start Printing the Cat Feeder Parts and Order the Parts to Purchase
All of the 3d printer files are located at thingiverse. Link
Step 3: Start Loading OS on the Pi and Configure
These instructions are for a headless install. I use a mac so I don't know if any of the steps will be different on whatever computer type you are using.
Download RaspbianDo not use NOOBS.
Install the card and ssh into the pi
Create the icf (inddustrial Cat Feeder Account) sudo adduser icf
Step 4: Copy the Web Server Files Over to the /var/www/html Folder
Copy the web server files over to the /var/www/html folder
Verify/set the Permissions/owners of the Files
After the files are copied on the pi, verify that the owners and permissions match the image.
If you are new to linux/raspberry pi? Google "chown" & "chmod" to learn how to set owner and permission in Linux.
Step 5: Modify the 'sudoers' File
Type in the following command<br><em>sudo nano /etc/sudoer </em>
Add the line to the bottom of the file
www-data ALL=(ALL) NOPASSWD: /var/www/html/feedNow.sh, NOPASSWD : /var/www/html/camera.sh
Step 6: Copy the Script Files to the CatFeeder Directory
Create a catFeeder directory in the icf directory and copy the files from github into that directory.
Check and set the owners/permissions so that they match the image above.
Change the code in the following files for your email: sendAfterEmail.py, sendBeforeEmail.py
Step 7: Modify the Crontab File to Run the 'checkDispenseFood' Script
Type in the following at the command line
sudo crontab -e
Add the following line to the bottom of the file
10 */1 * * * sh /var/www/html/camera.sh >> /home/icf/logs/camera 2>&1 0 * * * * sh /home/icf/catFeeder/checkDispenseFood.sh >> /home/icf/logs/cronlog
This will execute the 'checkDispenseFood.sh' script every hour on the hour. If the settings from the web server match, the feeder will dispense food.
This will take a picture every 10 minutes after the hour.
Step 8: Start the Wiring Part of the Project - Build the Control Box
Build the control box. I made my control box large, just so it would make it easier to assemble and wire. I may modify this design and make it much more compact.
Connecting the motor to the control box: Use two aviation plug assemblies. Snip the four (4) wires from the motor. There is one hole in the motor mount for a plug. There are two holes in the control box. Use either hole for the motor plug. Install the motor in the motor mount using (4) four 3mm x 8mm hex sockets and solder the 4 wires to one plug. Snip the dupont connectors off of the other side of the 4 wires and solder the plugs on both sides to make a cable that plugs into the control box. Solder 4 wires to another plug to be used for the control box plug. Install plug in control box
Install the pi using 2 mm X 8 mm hex sockets, relay using 2 mm X 8 mm hex sockets, and controller using M3 x 8 mm and nuts in the box and wire it up per the wiring diagram. Set the controller's dip switches to on, on, off, on, off, off. This project used a combination of dupont wires, regular wires. Some soldering is required. The soldering is mainly required for the plugs. I used the aviation plugs so I can easily plug and unplug.
Snip the end of the transformer wire and solder on another aviation plug. Wire up the power per the wiring diagram.
Step 9: Assemble the Cat Feeder
By now, all of your parts should be printed.
Bolting: I used brass inserts for eight connections. I will be cleaning the feeder often, so I need the thread to be in good shape. Insert the brass fittings in the base and the lower housing of the screw feeder.
Assemble the auger - Use a round file if the shafts don't fit inside the auger (I actually had to run a drill through the center and then used a round file to end up with a tight connection). Use 3mm x 8mm cap screws for the end flanges. The shafts should be able to slide in and out the flanges. Make final shaft adjustments during final assembly.
Bolt the base on to the base extension. My actually feeder does not use this. I added the base extension for anyone who builds this that uses a bowl. Use (4) 4mm x 12mm and nuts.
Bolt the Motor support to the motor mount. Use (3) 4mm x 12mm and nuts.
Bolt The Motor support to the base. Use (4) 4mm x 40mm bolts and nuts.
Attach the coupling to the motor shaft.
Slide the bearings onto the auger shaft.
Place the auger in the bottom trough and slide the trough in place, while guiding the shaft into the coupling. Finalize the shaft projections and tighten down all of the set screws associated with the shaft and couplings.
Place the top trough over the bottom trough and bolt down to the base and lower trough.
Add the four splice connectors to the columns and fasten using (4) 4mm x 40mm and nuts.
Add the hopper and bolt the splices to the hopper.
Step 10: Add Power to the Pi and Control Box
Plug in your pi and your control box. Open up a web browser. Navigate to your pi, set up your feeder times and introduce your cat to it's new feeder.