First working prototype of "bitponics": hydroponics + Arduino + aquarium
UPDATE 10/01/2011: Bitponics now has a home! http://bitponics.com. Michael Zick Doherty and I have teamed up, and I'm super-excited to be collaborating with someone with his hacking skills. Also, Bitponics as a concept has been pared down to just the sensors+software. Its focus is on the elements that will be helpful to more growers, as a drop-in add-on to any existing hydroponics system. I'll continue blogging about my progress with my containers here though. Stay tuned...to everything!
![]() |
| From Plants |
![]() |
| From Plants |
This is a prototype of a what I call a "bitponics" system. Basically, data + plants (and maybe + fish). The video and photos above show what I've got running so far:
- A container design, currently based on 1/8" acrylic. The containers have a sloped bottom that drains to one corner.
- A frame design, currently built using wood beams and chain. It works for now, but I would like to figure out a leaner way of suspending the containers.
- A reservoir made with 1/4" acrylic sheeting. It fits a little under 10 gallons.
- An Arduino posting sensor data (currently only a light sensor) out to a node.js web server, and a web page connected to that server over socket.io showing a live graph of the sensor data. The datastore is mongoDB. (+5 buzzword combo!) The end of the video shows the Arduino posting data every 2 seconds, and you can see that my hand waving over the light sensor caused a dip in the graph.
My goal for this project is to use technology to enrich and simplify the hydroponic/aquaponic growing process. Hydroponics is an activity that, to do optimally, requires continual monitoring of numerous variables (light, temperature, pH, nutrient concentration, water level, etc). Monitoring, logging, and adjusting these variables is definitely something I struggle to keep up with. So this is an attempt to build a system that can aid in its own maintenance, by streaming data about itself to the web and alerting the user whenever maintenance needs to be performed.
I hope to add more sensors in the coming weeks and months, but I still have a lot to learn. If you have any experience in this area, I'd love to hear about it!
If there's interest, I'll eventually tidy the source code up and post it on github.

