Our mission

DIY Reef Monitor

I thought I'd share a project I've been working on called WaterLog. It's a home brew reef monitor and data logging system. Ultimately it's meant to be a controller, but I don't yet trust it to control anything. :)

Most of this post is going to be technical details. If you don't care, skip to the bottom!

The system is based on the Make Controller Board (www.makingthings.com) which is a little embedded project board that has an Atmel CPU, a bunch of analog and digital IO connectors, an ethernet port, a USB port, a power circuit, and a whopping 64 k of RAM. Compared to a real computer it's from the stone age. Compared to most microcontroller systems, however, it kicks ass.

The board is programmable in C and ships with a nice set of utility libraries. It's got a TCP/IP stack implementation, which means you can program it to talk to the internet with relative ease.

I have the board connected to two pieces of hardware. The first is my Ranco ETC temeprature controller, which can produce a voltage output proportional to temperature. The second is a pH electrode amplifer from MCU Research (http://mcuresearch.com/). Those folks are kind of enough to release specs that allow nerds like me to build stuff with their gear.

I wrote custom firmware for the make controller that just reads the values from the built-in analog-to-digital converters, connects to my web server, and posts the values it read. The script on the web server interprets those values and turns them into pH and temperature readings based on calibration data. It then shoves the pH and temperature readings into a SQL database.

A CGI script, written in python, can then pull data out of the database and produce graphs of it using the google charts API. (http://code.google.com/apis/chart/)

I like this setup because it allows me to store and publish the data on a real web sever, but without needing a whole computer next to the tank.

Now on to the results! I have a page ,waterlog.rgba.net, where I can access the data. The controller logs data once a second and the page refreshes every 5 seconds. I can also embed live graphs into other pages like this:

graph.py


graph.py


The data right now is a little wonky because I've been messing with things, calibrating, etc. Those are one day graphs so they should settle out by this time tomorrow.

Well, that's about it! In the future I'll probably add some controller functionality and perhaps some additional data sources. (salinity, maybe ORP, maybe status of pumps and lights and stuff) I'd also like to improve the web page, make it more flexible, make calibration easier, etc. For now, I'm just happy that I got it to a point where I can see graphs of pH and temperature. :D
 
Looking good so far, before I got my AC3 I thought about doing a DIY, but didn't have any time to devote to another project back then.

So, for control are you going to be using the analog IO to drive several relays to control the power for devices? Or will you try for a signaled relay via the digital IO?
 
There are 8 digital output lines on this board, and each supports up to 1 amp. I'll just use those to drive solid state relays directly.
 
this is very cool.... I've been researching controllers/monitors for a while now and am very interested in your DIY version. Update this thread regularly so we can see how things are going...
 
It's a little ghetto, but here ya go:

3204681471_1787f226f0.jpg


For now it's just screwed to the wall of my cabinet. I suppose I should make a box for it or something.
 
[quote author=zambavi link=topic=5953.msg75273#msg75273 date=1232241607]
this is very cool.... I've been researching controllers/monitors for a while now and am very interested in your DIY version. Update this thread regularly so we can see how things are going...
[/quote]

Thanks! Will do.
 
That looks a lot cleaner than some of the DIY controller.. You should see some of the DIY controllers on RC :D ..
Just put on a box, add an LCD if you can and it will look great..
 
Nice... any progress geek? (I say that affectionately, like someone from the brotherhood of geeks)


And 64K is huge. I wrote many an excellent program for my 16k Trs-80 CoCo... wow, I'm just dating myself aren't I?

V
 
[quote author=Vincerama2 link=topic=5953.msg85315#msg85315 date=1235804027]
Nice... any progress geek? (I say that affectionately, like someone from the brotherhood of geeks)


And 64K is huge. I wrote many an excellent program for my 16k Trs-80 CoCo... wow, I'm just dating myself aren't I?

V


[/quote]

Kinda, but anyone saying that is dating themselves as well :D
 
[quote author=GreshamH link=topic=5953.msg87770#msg87770 date=1236804203]
[quote author=Vincerama2 link=topic=5953.msg85315#msg85315 date=1235804027]
Nice... any progress geek? (I say that affectionately, like someone from the brotherhood of geeks)


And 64K is huge. I wrote many an excellent program for my 16k Trs-80 CoCo... wow, I'm just dating myself aren't I?

V


[/quote]

Kinda, but anyone saying that is dating themselves as well :D
[/quote]

Here is the first word processor that I used, in grade 9;

10 READ A$
20 IF A$="THE END" THEN END
30 PRINT A$
40 GOTO 10
1000 DATA "My essay, by Vince"
1010 ....
9999 DATA "THE END"

Written by my Dad on his IBM System 23. If I had to add text, I just added DATA lines, if I needed to remove it, I'd just delete the line, if I wanted to read a paragragh, I'd do LIST 1400,1450. When it was ready to print, I'd print it on the 30 lb dot matrix printer and my Mom would proofread it for me and "spell check" it then I'd make corrections to it again. It sure beat pen and liquid paper!

That computer was a steal for only $17,000. Too bad IBM introduced the IBM PC ONE MONTH later >:(

V
 
Back
Top