The Internet Enabled Fishtank

Hello,
I imagine you’re here because you have heard about the internet enabled fishtank, the world’s most advanced talking aquarium.
I made it as a one-off project purely to push my technical skills to the limit and create something awesome. I had a vision and loads of crazy ideas of what I could make it do, some seemed way beyond my level of technical skill. I’m happy to say I proved myself wrong.
I’m really happy with how it turned out. Naturally there’s a few bits I’d like to neaten up or spend more time on, but overall it’s a finished project.

The project contains an Arduino Mega and a Raspberry Pi.
The source code is freely available in the below GIT repository, including the C++ arduino code and the PHP/JS code for the web interface.

Build Gallery

The old Apple Mac G5, with side panel removed. Torx screwdriver set is a necessity for dismantling this badboy.

Tearing the insides out. These things are really well built. Hence the high price tag.

Sucking up all of the dust.

Acrylic arrived! 8mm clear cast acrylic to be precise. Sorry, I forgot to take a photo of measuring up the case. After measuring thrice and drawing sketches, I placed my order from Bay Plastics.

It fits! Sorry, I forgot to take a pic of the gluing process. Trust me, you haven't missed much ;). I used Tensol 70 acrylic cement. This stuff has a thicker viscosity than some stuff. Some people also use Weld-on.

First tentative water test. Didn't have much faith in my gluing skills at this stage but if done properly, acrylic welding should be as strong as the acrylic itself. Also, a cameo appearance from my son, Ryan.

Added a bit more water once I realised the kitchen hadn't flooded. Added the water filter just because.

Bit of case trimming using my trusty multi-tool. If you do make projects, get one. Seriously.

It fits better! Actually there were two tank builds after I learned the hard way that 6mm acrylic was not sufficient and it bowed. This is the new 8mm tank. There are free online calculators for working out the required acrylic thickness. I strongly recommend you follow recommendations!

Full water test with some proof-of-concept LED keychains blu-tacked in the case. This was the moment I realised that my crazy idea just might work...

The tank with protective wrapper removed. Notice the slope at the back. I had to cut this with a Jigsaw as it would have fouled the lights otherwise. Probably should have constructed the tank part last!

I put the original Mac mainboard back in behind the tank to see if it would look like it's underwater. It does and it is awesome.

Servo hacking to allow continuous rotation. Lots of tutorials on this online, also loads of Youtube videos.

Initial electronics to get the main parts working together. This is before the auto feeder existed.

To make webcam more slimline, I had the idea of placing the webcam PCB on the back of some clear acrylic and covering with silicone sealant to make it waterproof. It will not be submersed however.

Webcam electronics in place on the acrylic and covered with silicone. Make sure the lens and acrylic are dust free!

Webcam in place using a few cable ties. It turned out the camera was upside-down but Iuckily ffmpeg has a commandl line switch that allows you to rotate the video feed. Easy! The blueness is the protective cover still on the acrylic.

The lighting and ultrasonic transducer mounted on some acrylic. Notice the plastic hinge I found on eBay. This allows the unit to be lifted so you can reach into the tank.

Top view of the LED lights and sonar. Notice the layer of silicone sealant to make it all water resistant

To attach the servo to the airline tap I used cable ties and a load of superglue. Springs prevent the tap head coming off if the servo turns too far.

Speaker and air pump mounted. Rubber bands and foam hold the pump in place to prevent rattling and vibrations.

Airlines fitted. Right angles prevent kinks in the pipe. Well worth the tiny investment if you ask me.

Fitting the Ethernet RJ45 socket right where the original used to be. This means I have a nice neat socket as the original Mac had. Much neater than having cables exit the back of the unit via a hole

Fitting the first wires. I used self adhesive clips from eBay to make it all nice and neat. This is an early picture hence the electronics and pump layout not matching other pictures. I later revised the layout so I could access the Arduino without pulling it out first.

The final layout of electronics. Everything can be fitted and then a piece of chipboard just placed on top. Much more effective use of space. Notice the Raspberry Pi in the middle.

Hacking the Eheim auto fish feeder. Got this unit off Amazon and they work great. I connected a jack plug to the connections of the feed button and disabled it's own autofeed timer

Close-up of the jack plug. Added plenty of glue afterwards

Looks really neat! Well proud.

These motors make the lid slide open when the auto-feeder is triggered. Took this picture later of hence all the water!

The autofeeder in place on the newly sliding lid. Notice the notch cut out of the aluminium case to for the autofeeder

The LCD display mounted to a piece of clear acrylic where the old DVD-ROM used to be. This LCD has a serial backpack which makes talking to it easy. Got this off Sparkfun.

Another shot of the LCD display with the LED Matrix in the background.

Testing the LED matrix display. This is two displays daisy-chained to make one. Bought this from Adafruit. They have a great range to choose from. I have since bought more of these for a new project.

Everything in place!

The web interface in action. Built using PHP and jQuery Mobile This is what I do for a living.

The finished fishtank! The little orange guy inside is called Nemo. My two year old daughter Chloe picked the name.

Suppliers

Parts used to construct this project were sourced from the following suppliers.