Automatic garden watering using a BeagleBone Black. via yotopuce.com
…Do you already have a central garden watering system ? Then let’s see how you could make it smarter using a BeagleBone Black and a Yoctopuce device.
A time-based automated watering system is not bad. The right time to water a garden is mainly defined by the time of day: either at daybreak, at dawn or during the night. This reduces the water loss due to evaporation, which can otherwise sum up to 60% of the water spent. But the question is, how often does a garden need watering ? That varies a lot depending on past and upcoming weather.
One could decide to blindly water every two days, and use longer watering periods during the warmest months. But there are days where this would be literally pouring water down the drain. In a temperate climate, watering 200 square meters of cultivation (flowers, vegetables, etc) may use up to 100’000 liters water! There is plenty of room for significant water savings by properly choosing when watering can be skipped.
The standard solution
One standard method is to disable the watering system after every “significant rain”, using a rain sensor.
Automated watering system often have an input for an external rain sensor like this one. When there is no such input, it is also possible to connect the sensor directly on the 24V supply of the solenoid valves, as central watering system use normally closed solenoids. So when one of the wires connecting the valve gets disconnected by the switch, watering is disabled even if the watering controller is still running.
The advantage of this system is its simplicity. The problem is, the turn-on and turn-off thresholds are not well defined, and they cannot properly be adjusted at will. That’s not good for automation, in particular when your only quality check is to look for water drops coming out of a dripping hose during a rainy night. Not to speak about upcoming summer storms, that this sensor will not be able to anticipate.
The IoT solution
There is a better solution, which does not cost much. The idea is to replace the low-tech rain sensor by a simple USB relay driven by a tiny PC, which will decide to water or not to water in a deterministic way. This system will allow us to simply pull out our mobile phone to know wether or not there will be watering tonight, and for what reason. As controller, we will use a BeagleBone Black for this project, but a Raspberry Pi would do as well in this case since the USB stack will only be mildly solicited. Better safe than sorry, we connect the output A (normally closed) of the Yocto-PowerRelay to the rain detector input. In this way, in case our IoT control system goes astray, the watering system will return to a basic daily time-based watering until the problem is solved.
In order to decide if watering is needed or not, a simple solution is to use a weather data and forecast service. Unless you live in a highly singular place, there is a good chance that the interpolation of data from nearby weather stations will provide more relevant information than a wet cork in your garden. Moreover, this makes it possible to use weather forecast for the next 24h, which are also very likely to be good at telling if there is going to be a real good rain or not.
Each Tuesday is BeagleBone Black Day here Adafruit! What is the BeagleBone? The BeagleBones are a line of affordable single-board Linux computers (SBCs) created by Texas Instruments. New to the Bone? Grab one of our Adafruit BeagleBone Black Starter Packs and check out our extensive resources available on the Adafruit Learning System including a guide to setting up the Adafruit BeagleBone IO Python Library. We have a number of Bone accessories including add-on shields (called “capes”) and USB devices to help you do even more with your SBC. Need a nice display to go along with your Bone? Check out our fine selection of HDMI displays, we’ve tested all of them with the Beagle Bone Black!