So I run alot of my planted aquarium with home assistant through ESPHome devices and i wanted to add a dosing pump as i am little forgetful to dose it myself…
So I made this using fairly standard parts and it has been working great!
Parts List:
1 x Seeed Studio XIAO ESP32C3 - https://www.unmannedtechshop.co.uk/product/seeed-xiao-esp32c3/
1 x Peristaltic Pump, DC12V Mini Peristaltic Liquid Pump 32x23mm Motor for Experiments, Biochemical Analysis(Type C) - https://amzn.eu/d/i1QkSs3
1 x Voltage Boost PCB for the 12v supplly to the motor- https://amzn.eu/d/eJ5knap
1 x Switch circuit - (I made my own but somthing like this should work) https://amzn.eu/d/i6b5pwy
8 x M3x12mm bolts (i prefere these low profile cap torx boltrs) - https://www.accu.co.uk/torx-low-cap-head-screws/14457-SHCL-M3-12-A2
2x M3 nuts to hold pump in place
1 x USB C supply (I used this one but any should work as long as it can deliver enough power) - https://amzn.eu/d/9RMtsJO
1 x Silicone Tube Food Grade 3mm ID x OD 5mm - https://amzn.eu/d/gblbX2M
Also check out my other part for a pipe holder on the tank.
https://www.printables.com/model/907914-aquarium-dosing-pump-pipe-clip
Ah nearly forgot to add you need to flex the main case when inserting the pump to get the mounting wings past the screw mounts at the base of the case. small design oversign but it will go together.
I made sure the esphome set up only allowed the pump to come on for a max of 3 seconds which is about 6ml in my setup. and then i have an automtion set up in home assistant to turn on my CO2 and run the nutient pump once in the moring.
ESP Home code for reffrence:
esphome:
name: fish-tank-nutrients-dispenser
friendly_name: Fish Tank Nutrients Dispenser
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "B89UpB2duqrRGILX8Nc5XV25tLXL+TAE34eO+ZEVovg="
ota:
password: "76a8d0d8e9291837d1c8f8c7d0a70265"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Fish-Tank-Nutrients-Dispenser"
password: "choose your own ;)"
captive_portal:
switch:
- platform: gpio
pin: 2
id: "nutrients_dispenser"
name: "Nutrients Dispenser"
on_turn_on:
- delay: 3000ms
- switch.turn_off: nutrients_dispenser
Also I added a 300uF electrolytic capacitor to the 12v output of the boost circuit so the inrush of the pump starting didn't knock out the ESP32.
The author marked this model as their own original creation.