Smart feeder for pets. Works according to schedule. Supports Wifi and ESPHome. Based on ESP8266.
This project is forked from Bmdenisov. I found this feeder on Printables. I have used the hardware and rewritten the software in ESPHome.
- Scheduled feeding
- Supports WiFi
- Supports Home Assistant
- Scheduled feeding
- Status LED
- Keep track of last fed moment
- Reverse motor to clear blocked kibble
- Estimate remaining kibble
- Skip schedule if fed manually
- ...
Feeder settings are available on the device web page http://pet-feeder.local/
.
Consider ordering the PCBs assmbled (or at least the SMD components), or have a hotplate with solder paste and a stencil to solder the SMD-components. It's not fun to do by hand!
- ESP8266 (ESP-12F)
- Stepper driver A4988
- MP2307DN
- Motor Nema 17
- 4x Countersunk M3 30mm screws
- Switch (TA-03)
- 2-row headers
- 2-3-and-4 pin 2mm JST Connectors (both M and F)
- 2-pin 2.54mm power connector
- Inductor 10uH (I found these to be a bit too large for the PCB)
- Pair diodes SS34
- Touch Button TTP223
- 5mm LED (I used a 3mm I had laying around with a 3D-printed adapter)
- 100uH Capacitor
- Resistors and capacitors (0805) — I found it most economical to order a combination of the following sets of 0805 components:
- 12v PSU
- PCB ordered on PCBWay
Capacitors | Resistors |
---|---|
3.9nF | 1k |
10nF | 6.8k |
2x 100nF | 5x 10k |
10uF | 18k |
2x 22uF | 47k |
100k |
Ensure you have a TTL/FTDI adapter to flash the ESP8266 board.
In the PCB folder you will find everything you need to produce a printed circuit board.
Final view of the printed circuit board:
I had some trouble finding the correct connections to wire up for the stepper motor. (Although it turns out that one of my aligator clip wires was broken).
It's recommended to verify which coils belong together. You can check this trough setting your multimeter to coninuity and check which wires belong together on your stepper motor.
I found, that in my case I wired it as such:
I wired my included stepper wire to the JST cable I ordered. This is the color scheme from the perspective of the stepper wire (the side where green and blue wire are crossed):
The switches on the PCB allows you to select your microsteps on the A4988 driver.
All 3 switches need to be set to HIGH
if we want 16 microsteps to use.
MS1 | MS2 | MS3 | Microstep Resolution |
---|---|---|---|
Low | Low | Low | Full step |
High | Low | Low | Half step |
Low | High | Low | Quarter step |
High | High | Low | Eighth step |
High | High | High | Sixteenth step |
To drive the NEMA 17 (with 1.8° step angle or 200 steps/revolution) in quarter-step mode, the motor will produce 800 microsteps per revolution.
Optionally you can set the current limit on the drivier. Set the 3 microsteps switches to LOW
, connect 12V to the board, measure voltage across the current potentiometer and ground (GND).
Vref = Current Limit / 2.5
The STL folder contains all the files necessary for printing.
Reductor designed for stepper motor Nema 17. Use M3x30 countersunk screws to attach the reduction box to the assembly.
Step 1 Step 2 Step 3 Step 4 Step 5 Slice Final
- Make sure to set your TTL/FTDI in 3.3V mode.
- Make sure you have the right drivers installed and your system recognizes the serial port.
- Bridge GPIO0 and GND to ensure the ESP8266 boots in flash mode.
- Power the board by connecting VCC and GND
- Connect the serial wires, usually you cross TX and RX, however, I found that on this board I had to wire TX to TX and RX to RX.
- Install ESPHome
- Run
esphome run feeder.yaml