Capacitive soil moisture sensor interfaced via I2C. Additionaly provides ambient light and temperature readings. Open Source Hardware.Designed by Catnip electronics, Ships from Lithuania
NOTE: currently I am out of stock of plain non-rugged sensors, so by default rugged version is selected. This is a "sensor mode only" version of my plant watering alarm Chirp. If you are interested...Read More…
NOTE: currently I am out of stock of plain non-rugged sensors, so by default rugged version is selected.
This is a "sensor mode only" version of my plant watering alarm Chirp. If you are interested in long cable runs, lower power and improved stability, you should check my RS485 soil moisture sensor -- also it's the easiest way to get your soil moisture readings into Raspberry Pi.
The sensor can be read via I2C protocol and provides these features:
This is the second version of my sensor with some improvements:
More documentation and example code is available on github page
Both light and moisture sensors give relative values. Meaning, more moisture will give you higher reading, more light, lower reading.
Moisture is somewhat linear. I test all sensors before shipping and they give about 290 - 310 in free air at 5V supply.
I didn't measure linearity of the light sensor, it gives 65535 in a dark room away form desk lamp. When it's dark, it takes longer to measure light, reading the light register while measurement is in progress will return the previous reading. Be aware, light sensor is pretty noisy.
Temperature is measured by the thermistor on the body of the sensor. Calculated absolute measurement accuracy is better than 2%. The returned value is in tenths of degrees Celsius. I.e. value 252 would mean 25.2°C.
Note Upon reading the moisture or temperature value, a value form the previous read command is returned and the new measurement is started. If you do rare measurements and want to act instantly, do two consecutive readings to get the most up to date data. Also you can read GET_BUSY register via i2c - it will indicate when the measurement is done. Basically the process goes like this: read from GET_CAPACITANCE, discard results, then read from GET_BUSY until you get '0' as an answer, then read form GET_CAPACITANCE again - the returned value is the soil moisture NOW.
The sensor works fine with Arduino and RaspberryPi. Examples are available on github page.
Thanks guys for writing this software, open source yay!
In some cases the default ESP8266 Arduino I2C library has the clock stretching timeout set too low. If you experience intermittent communication, add this to your code:
The sensor comes coated with PRF202 - a moisture resistant varnish for electronics. It's ok for play around in a flower pot but not enough for outdoor use. You must add an additional protection to the whole sensor after soldering cable to it! Some suggestions on making the sensor more robust after attaching the cable:
Be sure to coat the whole thing - the sensor part, the electronics and the cable connection itself so no bare copper or solder is accessible to the water.
Pre-coated version is available since December 2016. The sensor is coated in epoxy resin, cured and additionally protected by adhesive-lined heat shrink. The 1m (3 feet) long cable is pre-soldered. Light sensor is covered by heatshrink, so the light reading will always report total darkness.
The pinout of the rugged version (with white cable):
Shield is not grounded on the sensor end and must be grounded on the master end.
Drop me a message if you want your project listed here.
Christian | June 17, 2018
Gurhan | June 11, 2018
Alexander | May 22, 2018
David | April 26, 2018
Olivier | Feb. 28, 2018
Robert | Jan. 23, 2018
Charles | Nov. 10, 2017
Manlio | Nov. 8, 2017
Charles | Aug. 6, 2017
Petit | June 17, 2017
Nilesh | June 9, 2017
Patrick | May 6, 2017
Norman | April 29, 2017
Varun | April 18, 2017
Rob | April 11, 2017
Harro | April 10, 2017
Gabor | Sept. 19, 2016
Tzu-Chiang | Sept. 14, 2016
Ioannis | Aug. 23, 2016
Rodrigo | Aug. 17, 2016
Jay | July 1, 2016
Marc | June 17, 2016
Rickard | June 15, 2016
Jan | June 15, 2016
Victor | May 25, 2016
Ashish | May 23, 2016
Carl | May 16, 2016
Craig | May 9, 2016
Sebastian | May 2, 2016
Sebastian | April 19, 2016
Tony | April 5, 2016
Dietmar | Feb. 29, 2016
Jean-Philippe | Jan. 6, 2016
Mihai | Nov. 28, 2015
Geoff | Oct. 31, 2015
Klavs | Oct. 26, 2015
Gerald | Oct. 22, 2015
David | Aug. 23, 2015
Claus | June 28, 2015
Heiner | June 24, 2015
Ralf | May 11, 2015
Christopher | April 10, 2015
Leigh | April 10, 2015
Attila | April 2, 2015
Stefan | Dec. 12, 2014
Michael | Oct. 31, 2014
Jeremy | Aug. 23, 2014
Chris | June 27, 2014
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!
I've beed a web-based software developer for 10+ years, but now I'm an engineering ronin doing mostly digital electronics projects.