636f68be59573e8fa26acfa6e55343291898c168
Automated aquarium feeder and DS18B20 water temperature monitoring system integrated with Home Assistant via MQTT.
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.
Links
- Gitea Repository: sam/fish_feeder_temperature
Description
Languages
C++
100%
