31 lines
1.9 KiB
Markdown
31 lines
1.9 KiB
Markdown
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](https://gitea.lab.audasmedia.com.au/sam/fish_feeder_temperature)
|