Design Considerations
Outer Housing
-
The first design choice was to use off-the-shelf 6" PVC pipe for the housing of the device. The 5/16" thick walls of the pipe meant components could be fastened securely.
-
Relatively cheap and readily available. PVC is workable with standard tools which made cutting certain sections very easy.
-
A hinged latching lid keeps your pet from accidently gaining access to the hopper. This also makes refilling the device simple.
-
3D printed parts make up the bowl bottom and the motor cover. The motor cover is secured with two screws and can be removed when servicing the motor.
-
The device incorporates a removable stainless steel food dish. This allows the user to clean the food dish if/when it gets dirty.
-
A load cell is incorporated into the design underneath the food dish. Accurate weight readings are taken and plotted on the users phone app.​
​
Feeding system
-
Several dispensing mechanisms were considered (auger, rotating plate, paddle), but a 3D printed auger screw was chosen because when combined with a 1-1/2" PVC Wye, the risk of input jams could be minimized.
-
A 1-1/2" PVC Wye was used to create a novel, gravity-fed Archimedes screw solution to precisely control the output amount of food.
-
NEMA 17 68oz.in. Stepper Motor provides excellent control. A motor driver allows for the selection of input current, thus limiting the output torque from the motor. This prevents accidentally breaking the auger in the event of a jam. The stepper motor will "skip steps" if the maximum torque is exceeded.
-
An adapter was 3D printed with an internal 1-1/2" NPT thread to allow the main stepper motor to be securely attached to the PVC Wye. A shaft coupler joined the auger screw to the motor output shaft.
-
Mounted to the hopper funnel, a second stepper motor provides agitation to the feed input. This motor is powered by a separate 12V-5V buck converter and motor driver. Eliminating any possible electrical interference with the Arduino.
​
Arduino microcontroller
-
An Arduino Mega 2560 provides ample IO ports for the various components. A protoshield was used to provide a soldered base for the main stepper motor driver, WiFi module, and load cell amplifier. Pin headers were used to allow for faulty components to be swapped out.
-
ESP8266 WiFi module was used to communicate with the Blynk cloud server. An ESP-01 adapter board was utilized to simplify power delivery and data transmission between the Arduino and ESP.
-
3D printed mount can be removed using one screw. Shaped to the inside diameter of the housing permitting study installation.
-
12V supply allows the main motor driver board to receive the necessary voltage to drive the stepper motor via the Vin pin on the Arduino.
​
Phone Application
-
Blynk was used to create a widget-based phone application. The pre-built libraries made communicating with the Arduino using a phone very simple.
-
Storing the WiFi network credentials on the Arduino allowed the device to connect to the internet and begin communicating with the user's phone after being powered on.
-
The application allows for complete control over the device. Everything from setting feeding schedules, to manually dispensing food. An amount-over-time chart was added to the application later in the project and proved to be very useful in monitoring food levels.