Finally I was able to get back to my Sprinklers project. Over the last few weeks I added Sensors reading capability, as well as got watering logging to pretty much complete stage.
(Sensors_avr is the version of the code I'm working on - it is derived from Sprinklers_pi, but runs on Arduino Mega and has several improvements/extensions I added).
Sensors support in the Sprinklers_avr allows recording various sensors information (temperature, pressure, humidity, waterflow etc) to SD card. Sensors information is stored in CSV files, making it directly usable in Excel and other programs - pretty much any kind of the data processing application can take CSV.
Currently I wired in BMP180 sensor, which monitors temperature and humidity. Once I receive DHT21 sensor I have on order I will add it in. But adding more sensors is relatively easy, since the infrastructure is in place now.
Having sensors telemetry infrastructure allows me to start monitoring soil condition, local weather, actual water consumption etc - making it a lot more useful device.
Also I finished up the work on the logging sub-system, and enabled original Sprinklers_pi watering Graph visualizer. This required some work, since in the original Sprinklers_pi data is stored in SQLite, while in my Arduino Mega version logs data is stored in CSV files on the SD card. Certain things that are done by SQLite (e.g. summaries, grouping etc) had to be done in the code now. But it is all working now:-)
In the process of doing it I fixed few bugs, and now I would consider the code v0.9 - Beta quality. Pretty much all of the intended functionality is in, and it seems to work correctly.
This is my Sprinklers controller:

This is a "dev" version, with only 4 channels of relays attached. For the actual daily use I'm planning to put together a separate box using slightly different hardware.
Updated code is at Github, as usual.
Next steps:
Next major step would be to create "remote" version of the device that would be able to act as wireless (RF) extension of the Sprinklers controller. It is useful for both sensors monitoring, and for operating groups of sprinklers at a far end of the property.
I'm planning to use Xbee RF modules from Digi (already on order), and a simplified low/resource version of Arduino for remote station. There is actually pretty cool board called RBOARD from iteadstudio.com, it is essentially Arduino Uno with 4 relays and Xbee socket onboard. I ordered one of these boards, it seems like a good candidate for remote station.
I was hesitating a bit which RF modules to use. There are cheap options available (e.g. nrf24l01), but if you want decent range (and I need decent range to reach far side of the property) there are not that many options available. And Xbee has big advantage of being (to some degree) future-proof - it uses 802.15.4 wireless protocol and it can work with other 802.15.4 devices. Main drawback of Xbee is the cost, but for a few devices I'm making as a hobby project it is not that big of a deal.
However I will try to write the code in a way to allow any packet-based radio to work.
Just don't know how long would it take me to finish the remote station - right now I'm able to spend maybe one day per month on this hobby project. But on the other hand I'm not in a hurry:-)
(Sensors_avr is the version of the code I'm working on - it is derived from Sprinklers_pi, but runs on Arduino Mega and has several improvements/extensions I added).
Sensors support in the Sprinklers_avr allows recording various sensors information (temperature, pressure, humidity, waterflow etc) to SD card. Sensors information is stored in CSV files, making it directly usable in Excel and other programs - pretty much any kind of the data processing application can take CSV.
Currently I wired in BMP180 sensor, which monitors temperature and humidity. Once I receive DHT21 sensor I have on order I will add it in. But adding more sensors is relatively easy, since the infrastructure is in place now.
Having sensors telemetry infrastructure allows me to start monitoring soil condition, local weather, actual water consumption etc - making it a lot more useful device.
Also I finished up the work on the logging sub-system, and enabled original Sprinklers_pi watering Graph visualizer. This required some work, since in the original Sprinklers_pi data is stored in SQLite, while in my Arduino Mega version logs data is stored in CSV files on the SD card. Certain things that are done by SQLite (e.g. summaries, grouping etc) had to be done in the code now. But it is all working now:-)
In the process of doing it I fixed few bugs, and now I would consider the code v0.9 - Beta quality. Pretty much all of the intended functionality is in, and it seems to work correctly.
This is my Sprinklers controller:

This is a "dev" version, with only 4 channels of relays attached. For the actual daily use I'm planning to put together a separate box using slightly different hardware.
Updated code is at Github, as usual.
Next steps:
Next major step would be to create "remote" version of the device that would be able to act as wireless (RF) extension of the Sprinklers controller. It is useful for both sensors monitoring, and for operating groups of sprinklers at a far end of the property.
I'm planning to use Xbee RF modules from Digi (already on order), and a simplified low/resource version of Arduino for remote station. There is actually pretty cool board called RBOARD from iteadstudio.com, it is essentially Arduino Uno with 4 relays and Xbee socket onboard. I ordered one of these boards, it seems like a good candidate for remote station.
I was hesitating a bit which RF modules to use. There are cheap options available (e.g. nrf24l01), but if you want decent range (and I need decent range to reach far side of the property) there are not that many options available. And Xbee has big advantage of being (to some degree) future-proof - it uses 802.15.4 wireless protocol and it can work with other 802.15.4 devices. Main drawback of Xbee is the cost, but for a few devices I'm making as a hobby project it is not that big of a deal.
However I will try to write the code in a way to allow any packet-based radio to work.
Just don't know how long would it take me to finish the remote station - right now I'm able to spend maybe one day per month on this hobby project. But on the other hand I'm not in a hurry:-)