Automated aquarium feeder and DS18B20 water temperature monitoring system integrated with Home Assistant via MQTT.

ESP32 aquarium feeder controller with DS18B20 waterproof temperature probe

Status: running

What it does

  • Triggers automated 0.5-second motor feed cycles on demand or on schedule via Home Assistant MQTT (tank/feed)
  • Monitors aquarium water temperature continuously using a waterproof DS18B20 sensor probe
  • Reports temperature updates over MQTT (tank/temperature) every 10 seconds
  • Optically isolates motor high-current power rails from ESP32 logic power to prevent brownouts

Bill of Materials

Part Quantity Purpose
ESP32 DevKitC Board 1 Microcontroller running Wi-Fi, MQTT client, and OneWire protocol
3V-6V DC Feeder Motor 1 Drives auger screw mechanism for dispensing fish food
IRFZ44N N-Channel MOSFET 1 Low-side solid-state switch driving DC motor from GPIO 27 / GPIO 2
DS18B20 Waterproof Probe 1 Submersible temperature sensor on GPIO 14
1N5822 Schottky Diode 1 Flyback diode across motor terminals protecting MOSFET against inductive spikes
Resistors (10kΩ & 4.7kΩ) 2 Gate pull-down (10kΩ) and OneWire bus pull-up (4.7kΩ)

How it works

The ESP32 drives the IRFZ44N MOSFET gate via GPIO 27 / GPIO 2 to pulse the 5V/12V DC motor for 500ms when an MQTT feed payload is received. The DS18B20 waterproof probe communicates via OneWire on GPIO 14 to report water temperature every 10 seconds.

What broke

  • Inductive kickback from the DC motor initially caused random ESP32 reboots during feeding pulses until a 1N5822 Schottky flyback diode was installed across the motor terminals and common ground was established.
Description
No description provided
Readme 45 KiB
Languages
C++ 100%