New Product – High Reliability Soil Moisture Sensor – Grove
The Grove – High Reliability Soil Moisture Sensor is designed for the Raspberry Pi and Arduino (including the ESP8266) and can be used to detect the moisture of soil. It can be used to decide if the plants in a garden need watering. It can be used in gardens to automate watering plants. It can be used very easily by just inserting the sensor into the soil and reading the output using ADC. The Grove Power Save is used to shut off the power to the moisture when the sensor is not being read. This dramatically extends the life of the sensor by dramatically reducing electroplating.
This is the unit that is shipped with all new SmartPlantPi Raspberry Pi based plant watering systems.
This product uses a Grove Analog port and a Grove Digital Port.
NOTE: This sensor is not hardened against contamination or exposure of the control circuitry to water and may be prone long term to electrolytic corrosion across the probes (slowed way down by interrupting the power with the Grove PowerSave). It is designed for experimenting and prototyping only. It isn’t well suited to being used outdoors. You can, however, seal all the parts with a waterproof silicon or epoxy.
Features
- – Grove compatible interface
- – Easy to use
- – Far outlasts a continuously powered moisture sensor
Why a High Reliability Moisture Detector?
One of the common issues of using an inexpensive soil moisture detector is the relatively short lifespan of these units when exposed to a moist environment. Since we are mostly interested in moist environments when we are using this device, this is a problem. SwitchDoc Labs has come up with a solution for these inexpensive soil moisture detectors by designing a small board that shuts the power off to the moisture sensor with a command from the controlling computer. This board is the Grove PowerSave. It can also be used to shut down power to unneeded Grove devices in Solar Powered systems.
Depending on the amount of moisture and impurities in your water and soil, the HR Grove Moisture Detector will outlast similar moisture sensors by 4 to 5 times.
If you are building a solar powered plant monitoring system, this has the side benefit of reducing your power requirements for the sensor from 35mA to almost nothing (depending on how often you read the sensor!).
How To Use
You have three grove Cables that are supplied with the HR Soil Moisture Sensor. Do the following:
With the Power Off!
1) Plug a Grove cable into the Input Port of the Grove PowerSave
2) Plug the other end of the cable in #1 into one your Analog to Digital converter port on the Arduino or into a 4 Channel Grove 16 bit ADC for your Raspberry Pi.
3) Plug a Grove cable into the Control port of the Grove PowerSave and connect it to a Grove Digital Output (GPIO Pin) on your Raspberry Pi (Pi2Grover) or a Digital port on your Arduino
4) Plug the third Grove cable from the Output port on the Grove PowerSave and connect it to the Grove connector on the Grove Moisture Detector.
See the software below for testing.
The Software
The software is simple for both the Arduino and the Raspberry Pi .
Software for Arduino
The Arduino has a 10 bit ADC (Analog to digital converter). See specifications above.
// Test code for Grove - Moisture Sensor int sensorPin = A0; // select the input pin for the moisture sensor int sensorValue = 0; // variable to store the value coming from the sensor int HRControl = 4 void setup() { Serial.begin(9600); pinMode(HRControl, OUTPUT); } void loop() { // Turn on the Power to the Sensor through Grove PowerSave digitalWrite(HRControl, HIGH); // read the value from the sensor: sensorValue = analogRead(sensorPin); delay(1); digitalWrite(HRControl, LOW); Serial.print("sensor = " ); Serial.println(sensorValue); delay(1000); }
Software for the Raspberry Pi
(using the 4 Channel 16 bit ADC for the Raspberry Pi)
This Python code snippet is taken from SmartPlantPi. This uses a 16 bit ADC.
############ # Setup Moisture Pin for GrovePowerSave ############ GPIO.setup(config.moisturePower,GPIO.OUT) GPIO.output(config.moisturePower, GPIO.LOW) def readMoistureValue(): if (config.ADS1115_Present): GPIO.output(config.moisturePower, GPIO.HIGH) Moisture_Raw = ads1115.readADCSingleEnded(config.moistureADPin, gain, sps)/7 # AIN0 wired to AirQuality Sensor GPIO.output(config.moisturePower, GPIO.LOW) Moisture_Humidity = Moisture_Raw/7 if (DEBUG): print "Pre Limit Moisture_Humidity=", state.Moisture_Humidity if (Moisture_Humidity >100): Moisture_Humidity = 100; if (Moisture_Humidity <0): Moisture_Humidity = 0;
Specification
- Operating voltage: 3.3~5V
- Operating current: 35mA
- Sensor Output Value in dry soil: 0~ 300 (10 bit ADC – 0 – 1024)
- Sensor Output Value in humid soil: 300~700 (10 bit ADC – 0 – 1024)
- Sensor Output Value in water: 700 ~ 950 (10 bit ADC – 0 – 1024)
- PCB size: 2.0cm X 6.0cm
1 Trackback / Pingback
Comments are closed.