OpenSprinkler Forums Comments, Suggestions, Requests Suggestion on adding a moisture sensor to system Reply To: Suggestion on adding a moisture sensor to system

#66919

tmittelstaedt
Participant

Well here this is AGAIN since it vanished from the blog after making 1 edit on a typo:

I have been working on this myself and let me explain my approach. First of all the idea of tying a soil sensor directly into OS is, in my view, a waste of time. The reason is that there’s a lot of processing and logic that is needed, too much to load down on OS. So here is my approach:

1) Setup OpenSprinkler (either buy an outright Open Sprinkler controller or build one based on a Raspberry Pi (the second thing is what I did mainly because I wanted an excuse to learn about Raspberry Pi’s but trust me unless your time is worth nothing, it’s way cheaper to buy the entire OS unit ready to roll)

2) Setup a Vera Home Controller.

3) Install The Open Sprinkler app from here (https://github.com/dbochicchio/vera/tree/master/OpenSprinkler) He should have it updated in the Vera Store by now but if not you can install it manually

4) Build a waterproof soil probe such as detailed in the Instructible referenced above a few posts ago. The one in the instructible is unsuitable because it’s not waterproof and it’s not powered remotely but the idea behind it is good.

5) Write a Vera app that communicates with the soil sensor

6) Build and install a weather station around an arduino or raspberry pi

7) Tie this into the Vera

8) Write a scene in the Vera that manages sprinkling using the soil moisture and weather conditions. This is a lot more complex than it looks because of a number of rules:

a) you don’t want to water on days with low humidity because a lot of the water evaporates before going into the soil
b) you want to have a day or so where the sun thoroughly dries out the plants and surface of the soil or your are going to promote moss & mold and mildew growth as well as rot the plants
c) you don’t need to water as much when it’s cloudy because the decreased solar radiation means the plants activity is a lot lower and they are not taking up as much water
d) Soil water level only tells you the moisture where the probe is not the entire lawn so if you wanted to go off soil moisture you would need a bunch of probes
e) you don’t want to water when the weather forecast says it’s going to rain tomorrow

Professional agricultural like golf courses and farmers use cameras pointed at the plants, weather data, and seat-of-the-pants, thumbs-behind-the-britches experience to control watering and they are constantly tinkering with it. But they are running thousands of gallons of water and have labor costs for moving the sprinklers, and electricity costs for pumping water that make a mistake very costly. Lawn care companies that program sprinklers for homeowners simply over-water because the homeowner isn’t going to scream at them if their water bill is high but they will scream at them if the lawn is brown. DIY gardeners use the “stick finger in dirt and look at it to see if it need water” method which is the most accurate way of doing things – as long as they do it every single day – which 90% of them don’t.

The goal of a watering system is to approximate the “look at it and stick finger in dirt” method as close as possible with software and the end goal being to use only the amount of water the plants need to have and no more. Unfortunately that is a lot more complicated than just attaching a soil sensor to the sprinkler and sitting back and letting it do it’s thing.

I’m basically at step#4 right now. Unfortunately I have a ton of other stuff on my plate right now so I likely won’t be able to get on it for some time. I started this 3 years ago with a remote lawn 90 miles away, and Rainbird sprinkler controller at the lawn and nothing else, so it has taken a lot of time and work to be able to get to step #4. But at this point I can see the lawn (remotely) turn on and off the sprinklers and set a sprinkling schedule, so at least I am no longer operating blind.