I love to travel, and I also love having animals at home. As far as pets go, cats are fairly independent and can manage themselves for a few days. We have two cats, and one of them can’t control herself when it comes to eating, so we can’t just leave a huge bowl of food out.
Nikoli & Honey Buns
Now obviously this isn’t a leave for three weeks kind of thing. We have cameras to keep an eye on them and have friends and family to stop by to play with them and clean the litter box (next project…).
I decided to over-engineer a cat feeder rather than buying one. The reason is, I have some specific requirements when it comes to integrating with my Home Automation as well as making the project infinitely expandable (some crazy ideas for cat facial recognition come to mind).
The brains of this project is an ESP32. I have plans to upgrade this to a Raspberry Pi in the future, but for now it’s the perfect cost-effective choice with built-in WiFi and existing Arduino libraries for the steppers and scales. I specifically got the Heltec with a built-in OLED display with plans to integrate it in the future. See the software section for more details.
Stepper Motor Driven Auger
The auger and inspiration for this project came from Thingiverse although I updated it to accept a standard NEMA17 stepper motor shaft and designed a custom back-plate motor mount and matching 1.5″ PVC T-joint mounts. The stepper allows me to precisely make forward and backward movements (to prevent jamming) in increments until the desired feed amount is reached.
For the scales I used (2) 5kg HX711 load cells paired with 3D printed mounts and bowl holders. Since the food will never come out of both spouts evenly, this allows me to average the two as well as have a failsafe in the code if one or both give out.
The double bowl and pet food container were store bought. The box is a simple MDF construction. The rest is 3D printed including a funnel insert for the container to encourage the food into the hole, mounting brackets, double spout, and load-cell/bowl holders.
Blynk is an awesome tool for IoT projects that allows you to create customized apps and dashboards with drag-and-drop blocks. It’s really easy to get started and the documentation covers everything.
The core functionality came from an awesome Instuctable that set me in the right direction. My iteration includes a real-time clock with three schedulable feed times, feed adjustment slider, feed stats, a camera feed, estimated hopper level, manual scale measurement and zeroing, graphs and stats, a terminal, notifications, and even an OTA update button.
I also implemented MQTT for sending stats and control through Homeassistant. This allows me to log information over time and have all my home automation in one place.
- OLED screen and Rotary Encoder for manual feeds and adjustments as well as on demand stats.
- Cat Facial Recognition to determine who’s eating and possibly feed when they want to eat rather than specific times of day. This will require a camera and a Raspberry Pi. Ideas of portion control on an individual basis come to mind…
CatsArduinoEsp32ElectronicsCodeDesignIoTHome AutomationHomeassistantMQTT3D Printed3D ModelingFusion 360Apps