SoilWatch 10

SoilWatch 10 – Soil Moisture Sensor

Soil moisture sensor

SoilWatch 10 is a soil moisture sensor that allows you to measure relative water content in the soil. It’s far more superior to cheap resistive soil moisture sensors which you can buy anywhere. In our sensor design, there are no exposed electrodes that corrode within a few weeks. What’s more, the reads will almost not drift over time or with temperature changes. Our sensor will give the same readings regardless of the supply voltage. Sensor design makes it waterproof and weatherproof. It can be buried in soil for an extended period of time without adverse effects on accuracy.

Features:
  • Accurate
  • Easy to use
  • 75Mhz capacitive sensor
  • Waterproof and weatherproof proof
  • Will last a lot longer than resistive soil moisture sensors
Applications:
  • Irrigation management
  • Soil moisture monitoring
Specification:

Voltage: 2.8 – 5.0V (absolute maximum 5.5V) for 1.1V version
Voltage: 3.1 – 5.0V (absolute maximum 5.5V) for 3V version
Output: 0 – 1.1V (approximately) – 1.1V version
Output: 0 – 3.0V (approximately) – 3V version
Max Current: ~14mA
Temperature drift: Usually less than 5mV
Operating temperature: –20 to 80 °C
Dimensions: 170x25x15mm
Weight: 52g; 120g; 210g; 400g
Cable: 1.5m; 5m; 10m; 20m

Connections:
  • Brown – VCC (+)
  • Green – VDD (-)
  • White – Output
Download:

Datasheet: SoilWatch10

Arduino Example:

/*
SoilWatch 10 soil moisture sensor example
 
Reads analog value of soil moisture sensor and displays it
on the serial port.
 
The circuit:
* Sensor output (white wire) connect to Analog A0 on Arduino.
Connect VCC (brown wire) to 3.3V or 5V on Arduino (3.3V gives more stable readings)
Connect GND (green wire) to GND on Arduino.
 
created 30 Aug. 2017
last updated 9 Feb 2018
by Piotr Trembecki
https://pino-tech.eu/sw10
 
This example code is in the public domain.
 
*/

/* 
******** SETUP ********

 For 1.1V version set is1V1Output to true. The usual maxADC value will be around 1000.
 For 3V version set is1V1Output to false. The usual maxADC value will be around 600.

***********************
*/
const int analogInPin = A0;           // Analog input pin that the sensor output is attached to (white wire)
int minADC = 0;                       // replace with min ADC value read in air
int maxADC = 600;                     // replace with max ADC value read fully submerged in water
bool is1V1Output = false;             // set true if 1.1V output sensor is used for 3V set to false

 
int moistureValue, mappedValue;
 
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);

if(is1V1Output == true)
  analogReference(INTERNAL); //set ADC reference to internal 1.1V
}
 
void loop() {
// read the moisture value:
moistureValue = analogRead(analogInPin);
 
// print ADC results to the serial monitor:
Serial.print("ADC = " );
Serial.print(moistureValue);
Serial.print(", " );

mappedValue = map(moistureValue,minADC,maxADC, 0, 100); 

// print mapped results to the serial monitor:
Serial.print("Moisture value = " );
Serial.println(mappedValue);
 
// wait 500 milliseconds before the next loop
delay(500);
}