Project Summary/scope:
Create a DIY controlled "self aware" aquarium system that will monitor/control my tank. I've got an old spare PC to dedicate to this and will be using X10 modules to do the contolling actions and a joystick interface to do the monitoring. Controlling software will be written in Perl Scripts (because it's easy & flexible, and I don't know VB or C++).
I've done some research and was able to do an initial "proof of concept". I wrote a Perl script that can monitor the activity on a standard Joystick port. There's a bunch of stuff on the web about using the joystick port for basic input into a computer. The goal of this project is to make my tank 'self-aware' and add an interactive level to the standard control of X10 technology.
Proposed features:
1- Create a safety system to prevent the aquarium from overflowing onto the cartpet making a disaster & potentially ruining a pump. Sure this is not terribly likely, but I DO NOT WANT A MAJOR OVERFLOW. It's both a challenging "pet because-I-Can project" for me to work on, and a peace-of-mind thing.
A
float switch will trigger a pump shutdown when it detects that the level in my corner overflow has risen to an unsafe level. The floatswitch sends an input trigger, the PC catches it and cuts the main pump power via an X10 Module.
2- add a temp monitor/logger to the system
This is very possible and several websites out there that show step by step accounts of how to accomplish this relatively easily. Here's one perfect resource I stumbled onto:
PC Thermometer via Gameport It spells out the hardware part I need to complete for this part.
3- Other inputs ? (Not sure yet, but I can support up to 4 triggering on/off inputs per gameport that would telll me about the tank. Any suggestions on these would be great. If I need more I can add another gameport to the for next to nothing.
4- Schedule the lighting like a natural reef circadian rhythm by matching the sun/moon schedule of a native reef. I've created a table of on/off times based on the date for a reef in Indonisia by pulling the data from the US's Geographical data. I can off-set this photoperiod to my liking so the tank is lit to better align with my schedule since "sunrise" is relative to time, but lighting duration is what animals know. Sure this feature is not needed at all, but it's easy to do once I have things setup, so I figure Why not?
This feature requires no inputs but just scheduling control via X10 modules.
5- Adding "Currents" in the main tank. I'm thinking I'll have 4 or so powerheads in different corners of the tank that will be alternated on/off to change the currents. This wouldn't be very rapidly, but maybe every 10 minutes the flow chages as a different combination of PH's are running. This isn't intended to be a surge style feature, but more of a randomization of the tank's ambient flow.
6- add a PH meter/logger ??
I haven't really looked into this one much, but from several resources I've found, it looks like it may be possible. PH meters translate PH into volts/resitance in some fashion, and I sould be able to capture that with the right setup. This is a last phase addition but hopeful addition to the system. It's a good candidate feature, but I don't plan to add this right
7- Instant notifications & logging of key events/status.
When the pump Is cut, I'll be notified via email as well as paged on my cell phone to let me know of the emergency and it would also be logged. This also means that they sytems basic functions could be managed remotely to some extent, and I could add a web interface to display current tank parameters.
8- Automate water chages
This one's a stretch becuase I'd like to have some safety measures built in to protect me from any disasters. I think it would be possible, given the right protection form catastrophe. A drain controlled via a selenoid valve empties a preset amount (duration) of tank water & a container of pre-mixed water replaces the removed water.
That's most of what I've come up with. This is my plan to run the aquarium though not all features/phases of the system will be implemented immediately. I've still got a couple months of build time remaining, but I am actually devoting more time to finishing my tank, and I am setting it all up to support this system at some point. Of course my MAIN focus it getting the tank running, but most of the framework for this system will be laid as I complete the build.
Any Comments/suggestions are willingly accepted. If you have knowledge you'd like to share than post away. I'll try and post status updates of the system as it progresses.
(Before anyone posts, Yes I'm aware of the downfalls of x10 technology, but have decided to use it to control my setup anyways because of it's flexability and relatively low cost. Most of the downfalls I think I can avoid or deal with.)