For all the flag-flying I do for open-sourceness and collaborative prototyping/development, I do a shit job of actually contributing anything myself.
I told myself I’d publish/share my garden software once everything was running smoothly, and I had added all the features I wanted to add on the first version. Well, everyone says that, and that’s why it’s hard to find introductory, simple stuff sometimes: everyone has done it but does not feel like it’s special enough to warrant sharing it.
I am very certain that my software is not special. It is not even original, not at all. And I am a little nervous about how to allocate credit (as I would hate to take credit for the work when in fact I only very slightly modified the work of many others). Nevertheless, here it is:
Arduino-to-Pachube firmware for v1 of AKA Garden system: AKA_pachube_only_client_v3_release1
This software has been tested to work with an Arduino Diecimila (although I don’t know why any other Arduino board that can take a shield wouldn’t also work) and the v2 Arduino Ethernet board. I had a terrible, terrible time trying to get LadyAda’s older Ethernet shield working (the one with a Lantronix XPort Direct+ chipset), and I recommend you just get the newer boards with the Wiznet module. I say this because I spent about 40 hours trying to get success with the old board, and if I had instead gone outside and looked for coins I would only have had to find about a dollar an hour to make it worthwhile to just buy the new board…
The garden setup has been up and running for more than a week now with zero downtime, so I feel OK about the reliability of the circuit and the code. Next steps are:
-
More sensors (I am now trying to develop a low-cost, perpetually-embeddable pH sensor, as these don’t exist for under a couple thousand dollars)
-
Code that posts to my own database, rather than just posting to Pachube (I would like to have more features than Pachube offers for free, such as infinite-resolution histories, different graph options, and infinite streams)
-
Code that allows for actuation as well as datalogging; for example, to trigger a drain cycle on the system, take a photo, or adjust the lights
The Garden page has a slideshow of all my Flickr photos with the “garden” tag, and if you browse to the most recent photos you can see the physical setup of the board, shields, and sensors.
I tried hard to comment all my code and make everything intelligible, but it’s my first time letting code out into the wild so I bet I messed it up. Hit up the comments if you have questions or want help!