Aquassist : DIY Automatic Fish Feeder With Companion App
Introduction: Aquassist : DIY Automatic Fish Feeder With Companion App
Today, we are here with an interesting DIY project, the automatic fish feeder. You might be thinking, what's new in an automatic fish feeder, right? Sit tight; we've got you a surprise.
Apart from the existing automated fish feeders, this has a companion app that can control the fish feeder from anywhere in the world. You can instantly feed the fish using the "Feed Now" button. In addition, you can set your feeding schedule and change them easily using the scheduler in the companion app.
Step 1: Materials Needed
To make one of your own you will need only a few items. Here is a list of what we used and where you can find it for yourself online.
* 1 X Wemos D1 Mini V2
* 1 XTowerPro SG90 Continuous Rotation 360 Degree Servo Motor
* 1 X 5V 2A USB Wall Adapter
* 1 X Micro USB Charging Cable
* 1 x Instant adhesive
* 2 X M2 Nuts and Bolts(Optional)
Step 2: Why Wemos D1 Mini ?
There is a wide variety of development boards with the ESP8266 chip. We actually need a board with an optimum size that can be easily reprogrammable and powered from an external source. So Wemos D1 Mini satisfies our need.
For programming up the Wemos D1 Mini with Arduino IDE, let's have a look here.
Note: You can use any development board with an ESP8266 chip.
Step 3: Continous Rotation Servo
In this project, we are using a continuous rotation servo for rotating the Archimedes screw, because they have integrated motor drivers in a compact and very inexpensive. They can easily drive from the microcontroller itself, not needing an external power supply. The normal DC motor needs a driver circuit which will make the project a little messy. As you all know servo can provide high torque also.
A continuous rotation servo (sometimes called a full rotation or 360°servo) looks like a regular hobby servo. While a regular servo motor only turns over a narrow range, with precise control over position, a continuous rotation servo has a shaft that spins continuously, with control over its speed and direction.
A continuous rotation servo motor can be controlled by calling the servo.writeMicroseconds() function, which typically accepts values from 1000-2000. 977
A value of 1000 should rotate the motor counter-clockwise at full speed. A value of 2000 should rotate the motor clockwise at full speed. A value of 1500 should cause the motor to stop rotating (and without any vibration). Intermediate values can be used to change the speed of the rotation.
If you need your device to only rotate for a specific period of time, then simply use a delay() statement to wait for a specific amount of time in milliseconds (1000 milliseconds = 1 second) before stopping the motor. If you want to know more about this, just have a look here.
Here we used SG90 named servo which can produce optimum torque and that is very enough for this project. If you are planning to make a large feeder consider huge torque generating servos.
Note: You can also hack your normal servo for continuous rotations by referring this guide
Step 4: Firebase Realtime Database
Firebase is a mobile and web application development platform. Firebase frees developers to focus on crafting fantastic user experiences. You don’t need to manage servers. You don’t need to write APIs. Firebase is your server, your API and your data-store, all written so generically that you can modify it to suit most needs. In our project, we use Firebase real-time database to instantly post and retrieve data so that there is no time delay. 149