I am a busy person but I love my little fishies. So for them not to starve when I'm not around, I built this simple feeder machine that I can control anywhere with an internet connection.
The feeder device is a copy of a project by coberdas. I just changed the microcontroller from an Arduino Nano to an ESP32. I also created my own housing for the ESP32 board.
The electronics are pretty simple:
The servo is attached to an auger that dispenses the fish food.
This auger is placed inside a tube. Use places the fish food from the hopper where the tube is attached:
So far I've only tried flakes and it works well. I'll try using pellet-type fish food and post an update here.
Most of the work is on the code. At first boot, an access point is created in order for the user to specify his/her home WiFi credentials. The user can also specify the interval between feed (hours) and the food volume. Here's the access point screen:
Once the WiFi creds are set, the system restarts and is now ready to listen for commands from the user.
I've set up a web app from my external server where the user can manually feed the fish or set up a timer for when to feed the fish.
For timed feeding, the ESP32 reads JSON from an NTP server and waits for that time to elapse. The web app sends messages to the feeder through MQTT. I guess HTTP requests are OK too (not to mention free) but I find this method easier.
The basic functions are ok but I still need to make the system more secure.
Here it is attached to my aquarium:
My aquarium needs cleaning the time this picture is taken. I might need to create an automatic aquarium cleaner next.
Future updates include security (as mentioned), and a way to measure the food left on the hopper.
Comments