Daily Archives: June 6, 2016

Keep Your Fish Happy with a Raspberry Pi

People who keep fish in aquariums at home know it is important to feed them timely and to keep their habitat clean. Trouble starts when the owner has to leave home for a few days and cannot find a knowledgeable caretaker to take care of the pets. Cabe Atwell tried to solve the problem he faced in an ingenious way – by using the power of the Internet.

Cabe had an automatic fish feeder, but he also enlisted the services of a friend to keep an eye on her goldfish, the friend was not sure of what was required and the automatic fish feeder broke down. Fortunately, the losses were not fatal, but Goldie the goldfish grew to double her size because of overfeeding. This led Cabe to work on a system to allow watching and feeding the pet over the Internet.

Cabe wanted a system that would allow seeing the fish in real time, anytime, by moving a camera around the tank. The next requirement was sensing the tank water temperature and cutting off the power to the tank bubbler and air filters, if necessary. It was also necessary to feed the fish manually, and above all, to do this through a network and ultimately, via the Internet.

Cabe’s research led to the conclusion that a Single Board Computer such as the Raspberry Pi or RBPi and a Pi camera would be most suitable for seeing the fish via the internet. For the other features, an Arduino Uno was more appropriate.

Accordingly, Cabe selected two small Nema 17 mount stepper motors, available on Adafruit, for the driver components. The motor controls came from an Arduino Motor Shield, which made it simpler to drive the motors. Cabe designated one motor for allowing movements in two directions, while the other rotated the food container to dump fish food into the water.

The fish feeder was a modification of the original malfunctioning feeder. It consisted of a drum to hold the fish food. When rotated completely around, a simple trap door opens briefly to let a small amount of feed.

To keep the camera motor traveling too far, Cabe incorporated limit switches in both directions. The limit switches were placed in position using rare-earth magnets, which allowed easy adjustments for the movement range. A surplus belt driven motion platform provided an affordable arrangement for viewing the entire length of the tank.

For sensing the water temperature, a waterproof digital temperature sensor was the most suitable – DS18B20. Although fresh-water fishes are more tolerant of water temperature variations, loss of air-conditioning or heating arrangement can lead to the tank water becoming too hot or cold for the comfort of its occupants.

For the video stream, Cabe settled on VLC since it was easier to use. VLC offered the maximum resolution of 640×480 pixels at 15 frames per second, which Cabe found adequate for keeping a tab on the fish. A simple AC relay took care of feeding power to the air filters and bubbler.

For the future, Cabe wants a better AC control and more sensors for measuring the pH, ammonia and nitrate levels in the water.