1 / 16
Pepper's Puppy Auto-Feeder — zdjęcie 1
1 / 16

Pepper's Puppy Auto-Feeder

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

Using the Arduino ESP32 microcontroller, this feeder will automatically feed your pets at any time of day.

Ocena
0 / 5
Polubienia
16
Pobrania
40
Wydruki
0
Wyświetlenia
347
Oceny
0

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Pets
Licencja
Creative Commons — Attribution — Noncommercial

-For Pepper-

This project began after I got my puppy, Pepper, and I can't be home all the time so I spent the last couple weeks designing this so I wouldn't have to worry about feeding times anymore. 

This pet feeder will automatically dispense food at the push of a button, from your phone or any computer. 

The microcontroller allows you to set times to dispense food at any time of the day, as the ESP32 is connected to WiFi and synchronizes time to your timezone.

This design has incorporated 3D printed threads for the lid, and snap fittings for the rest of the parts. You can see a small animation of how everything goes together in the project photos. 

 

 

 

-Web-Interface-

The way you control this feeder is through the web-interface that we will set up in the code and assembly section of this project. The Feed Now button runs a normal feeding cycle, the rotate buttons allow you to control the servo manually. Set Feeding Times & Speed allows you to control the speed at which the food is dispensed therefore controlling the amount of food, as well as set feeding times you would like to schedule. The top of the interface allows you to see the current time based on your timezone in the code. 

 

 

-Hardware Needed- 

ESP32 ESP-WROOM-32 Development Board WiFi + Bluetooth Dual Core 2.4Ghz Microcontroller Arduino

Breadboard and Jumper Wires Kit

MG90D 9g Digital Micro RC Servo Replace SG90, Full Metal Gear Mini Servos for Arduino DIY Project (360° Continuous Rotation) 

Superglue 

 

-Software-

I used Autodesk Inventor to model all of the parts and Arduino IDE to code the web-interface. You will use Arduino IDE to flash the code to the microcontroller. 

  • Libraries:  ESPAsyncWebServer, AsyncTCP, WiFi, ESP32Servo, WiFiUDP (for NTP)
  • Programming languages: C++ (Arduino), HTML, JavaScript (for web interface)

 

-Wiring Diagram-

Zoom in on the image if you can. It might look intimidating but it's only 5 wires that you need. 

Signal pin to ESP32 GPIO 23  , VCC to 5V , GND to common ground. The 2 yellow wires at the top of the image connect power and ground to the breadboard. That's it!

 

-Code-

You can find the .ino file here in the project that has the code you open with Arduino IDE, I'll run through some of the specifics. 

INSTALL THESE IN ARDUNIO IDE in the Tools->Library Manager Menu

*PAY ATTENTION TO THE AUTHOR*

  1. ASync TCP by ESP32Async
  2. ESP Async WebServer by ESP32Async
  3. NTPClient by Fabrice Weinberg

These variables store the feeding times and it tracks if feedings have occurred to prevent duplicates.

  • // Feeding schedule
    int feedingHour1 = 9;  // Default 9:00 AM
    int feedingMinute1 = 0;
    int feedingHour2 = 17; // Default 5:00 PM
    int feedingMinute2 = 0;
    bool feedingTriggeredToday1 = false;
    bool feedingTriggeredToday2 = false;
    int lastCheckedDay = -1;

This is how you connect to your Wifi network using your WiFi credentials 

  • // Network credentials
    const char* ssid = "YOUR_WIFI_SSID";     // Replace with your network name
    const char* password = "YOUR_WIFI_PASSWORD"; // Replace with your network password

 This section is what keeps your time updated for your timezone. Default is UTC time, for your timezone you'll have to apply an offset where it says 0 to match where you live.

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 0, 60000); // Set to UTC time, to edit your timezone you will type in your timezone offset where it says 0. Updates every 60 seconds.

 

-Printing-

All of the parts are best printed out of PLA, due to stiffness and dimensional stability, but it could easily be printed out of anything. PETG would be ideal for the outdoors. 0.2mm layer height is great.

1 main body.stl 
  • 2 walls, 5% gyroid infill, tree support, buildplate only, 20° overhang threshold angle
2 Lid.stl
  • 2 walls, 5% gyroid infill, normal support, everywhere, 20° overhang threshold angle
3 Electonics Door.stl
  • 2 walls, 5% gyroid infill, tree support, buildplate only, 20° overhang threshold angle
4 feeder tube.stl
  • 3 walls, 10% gyroid infill, tree support, buildplate only, 20° overhang threshold angle, critical regions only
5 Helical Auger.stl
  • 4 walls, 5% standard infill, no supports, 5mm brim for bed adhesion
6 Stand.stl
  • 2 walls, 5% gyroid infill, tree support, buildplate only, 20° overhang threshold angle

 

-Assembly-

The Helical Auger has an interference fit with the servo gear. What you want to do is use the screws that were provided with the servos to mount it to the Feeder Tube, and then ONLY A SMALL DROP of Super Glue put inside the hole of the Helical Auger and fit it to the servo. When mounted correctly it will not come off, it will be practically welded to the servo. 

If you use too much super glue when you mount it, the glue will leak out and glue the servo, so it only needs just a small drop for it to work.

 

 

 

 

 

 

Upload the Arduino code to the microcontroller, make sure everything is plugged in correctly, and place the setup inside the Electronics Door and close it. There is a hole on the stand for the power coord to make its way out to the plug.

 

 

 

 

 

 

 

 

 

 

 

 

-Usage Instructions-

When the microcontroller is connected to your WiFi, it will ping an IP address that you will use to connect to the web-interface using your internet browser. All you need to do is type in the IP address in your browser search bar.

The webpage allows you to connect from anywhere and set feeding times or dispense food manually if you want to.  

 

-Additional Tips-

On flat bottom on the stand, I intended to put a weight down there to keep from getting knocked over by your dog if you have a bigger dog.

I did actually try to add a Piezo buzzer to this project, to make a little jingle go off during feeding time like a kitchen appliance, but I've run out of time. I'll probably be updating and adding that in the future. 

 

-Hope you enjoy-

 

Tagi