This small repository provides everything needed to purchase, print, and prepare your own wifi enabled treat dispenser for remotely dispensing treats to our furry companions.
This project was created with the goal of integrating the functionality into a Home Assistant server (read more about that here), but upon startup it creates it's own webserver that you can access from any device on the local network.
This was my first Arduino project and I relied heavily on the guides provided by Random Nerd Tutorials, specifically ESP32 with Stepper Motor (28BYJ-48 and ULN2003 Motor Driver). If you would like to fork this project and are looking for inspiration, they provide a huge resource of proof-of-concept projects utilizing the ESP32 Dev Board to facilitate wifi-enabled projects.
All of the following links are suggestions - any equivalent piece of hardware will suffice. I tried to provide a link for all major components for the sake of providing a comprehensive resource, but any hardware you have lying around will do just as well.
ESP32 Dev Board - https://www.amazon.com/dp/B08D5ZD528?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1
ULN2003 5V Stepper Motor and Driver Board - https://www.amazon.com/dp/B0BG4ZCFLQ?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1
Jumper Cables - https://www.amazon.com/dp/B01EV70C78?ref=ppx_yo2ov_dt_b_fed_asin_title
LEDs - https://www.amazon.com/dp/B07PG84V17?ref=ppx_yo2ov_dt_b_fed_asin_title
Threaded Inserts - https://www.amazon.com/dp/B0D1CGC18H?ref=ppx_yo2ov_dt_b_fed_asin_title
Metric Hex Screws, Nuts, and Washers - https://www.amazon.com/gp/product/B07K1DV93T/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
3D Printer - Any model will work, but I used the Bambulab P1S
- A design constraint I imposed on this project from the begining was that the entire finished product shoudl fit within a 5" diameter circle. I did this for aesthetic reasons, and because I wanted to use a plant stand to hold this finished product.
- The body of the treat dispenser was designed to accomodate the specific hardware I used (linked above). While the ESP32 and Driver Board are simply glued into place, the Stepper Motor dimensions did dictate the design of the mounting point in the treat dispenser body.
- I decided to setup this project using HTTPS POST requests as the driving mechanism for dispensing treats because that was the most easily expandable method. Once the treat dispenser is on and the webserver initialized, it will respond to the POST request from any source, which made it very easy to integrate into my Home Assistant server.