Table of Contents

Automatic Pet Feeder

Author: Calinovschi Teodor
ACES 2022
Project repository
Demo video

I. Short Description

This project aims to reduce the workload of a pet owner and to make it possible to leave the pet(s) alone while being cost effective. It is also suitable for multiple pets, as it lets only authorized ones to eat. Via Arduino's IoT Remote app or web site, the user can schedule feeding time, set the amount of food, see if there is enough stock of food, check if it is working fine or if it is stuck and register/remove pets on/from the feeder.

II. How to use and what it can do

First of all, its purpose is to feed a pet a specific amount at a specific moment. This is accomplished by entering the food quantity and the hour of feeding in the app, as in the image below.

 App

In addition, the app shows if there is enough food supply or not by checking at 1 hour intervals and sends an email and turns on the low food LED every time it detects not enough stock.

When feeding time comes, if the food gets stuck, first, the feeder tries to unlock itself and if it fails it signals in the app that it is not working well, turns on the error LED and sends an email. The working well monitor can also mean that the feeder is plugged in or not.

If the user wants to add a new pet, it can type “1” in the last field and after that get the RFIG tag close to the reader. If there are already two tags registered, a new addition would fail. If the user wants to remove a pet, it can type “2” in the last field and after that get that tag close to the reader.

From the pet's perspective, it has to come near the bowl and if it is registered the lid would open and if it is not registered the lid would close.

III. Hardware implementation

The main components (besides wiring) used in this project are as follows:

Schematic

 Schematic

Because the 2 motors require a 5V power supply, they were connected to the Vin pin of the board (which outputs 5V). In order for them to have enough torque, the board should receive supply through the Vin pin.

IV. Software implementation

I used Arduino IDE, as Espressif ESP32-WROOM-32D board is compatible with it. The programming language is C/C++. Being an IoT project, it requires some over the internet communication. That being said, I used the Arduino Cloud IoT platform from where I can control and monitor the feeder.

Any Arduino compatible code consists of 2 main void functions:

The code flow is presented in the diagram below, from the feeder's perspective.

 Diagram



V. Packaging

I used AutoCAD to design the feeder, shown in the image below.

 AutoCAD design

Then, I 3D printed the parts and assembled them, the final product looking like in the image below.

 Real life

VI. Challenges, conclusion and further development

The biggest milestone was designing a proper food delivery system which would not get stuck so easy. At first, I did not know how to do 3D designs at all and until I got to the final one it took many iterations of designing, printing and testing.

All in all, the project turned out well, it is user friendly, robust and you cannot let your pet starving, at least without knowing.

Future improvements may include:

VII. References