Automated Cat Feeder

Project Summary

This project was originally part of a group project for an ebmedded system class. I had the idea prior and saw it as an opportunity to try and create something cool and useful, as well a valuable learning experience. I love my two cats dearly, so this was also a great way to make something that ensures they don't starve if I leave them home alone for a few days, or if I just forget. Not that that has ever happened...

Hardware Used


The prototype


The actial chasis that houses all the components was made just using PosterBoard material from Target. It is, by no means, a great or even really good chasis, it was just cheap and easy to make (using only a box cutter, hot glue gun, and some electrical tape). This would be one of the first things I would try and improve, but given the limitations I had in my little apartment, it suffices. In any case, the point of the project is the hardware and software.

Inside there is a Raspberry Pi that is connected to various other hardware devices. Two pins on the Pi are connected to the 2 inputs on the motor driver board, allowing the Pi to control the DC motor. There is a hardware switch directly inline with the 12V supply, so you can manually disconnect power without unplugging. The 12V power connects directly to the 12V motor driver and a 12V to 5V converter with a USB output so the Pi be powered easily with a USB C cable. The distance sensor and character LCD are provided 5V via the Pi. The LCD screen communicates with the Pi using I2C protocol. The Ultrasonic sensor is sent a "TRIGGER" signal, and the response time of the "ECHO" signal is used to compute the distance.

The software

login screen

The web app has a simple login feature. It's not very advanced, the username and password are hard coded, but this system is intended for local network usage, so that's fine.


home page

You can set 2 different automated feed times, and trigger a manual feed with 3 different size options.


log viewer

There is a log viewer so you can track feeds as well.


The code for this project can be viewed here on GitHub