The shipping fee depends on your address
Standard: 9-15 business days,fee is down to $3.99
Express: 4-7 business days,fee is down to $5.99
WE'RE READY TO BUILD A CUSTOM PRODUCT FOR YOU.
If you're looking for a custom product, we can help. Kindly contact us via email support@keszoox.com and send us the details for your need, then we'll let you know how we can deliver the right solution.We make into production usually Within 1 - 3 Bussiness Days.
Expect customization orders.Helps determine amount of moisture in soil.
The Soil Moisture Sensor Module determines the amount of soil moisture by measuring the resistance between two metallic probes that is inserted into the soil to be monitored. This can be used in an automatic plant watering system or to signal an alert of some type when a plant needs watering.
These sensors work by measuring the resistance between the two probes of the fork that is inserted into the soil. That resistance will depend mostly on the moisture content of the soil. The resistance affects a voltage divider and so an analog voltage output is available which can be read by an analog input on a MCU that roughly corresponds to the moisture content of the soil.
The more moisture in the soil, the lower the resistance. A low resistance gives a low analog voltage reading. As the soil dries out, the resistance increases. The higher the resistance (drier the soil), the higher the voltage will be.
Besides the analog output, there is also a LM393 comparator IC that provides a HIGH output when that analog voltage goes above a certain level. A potentiometer on the module allows the set-point of this digital output to be adjusted. This output could be used to drive a relay to activate a small water pump to water the plant without necessarily having a MCU in the loop. An LED lights when this output goes HIGH.
Besides moisture, there are other factors that can affect the resistance including minerals that are dissolved in the water which can come from fertilizers and other sources. The full length of the forks should be inserted into the soil, but the upper part with the electrical connections should remain dry to minimize corrosion. The depth that the forks are inserted will affect the readings and therefore should be kept reasonably constant.
On the electronics module there are 2 header connectors.
1×4 Header Connector
1×2 Header Connector
It is not possible to directly define an actual percentage of moisture in the soil from the measurements taken, but it is fairly straightforward to define basic ranges for what would be considered ‘too dry’, ‘too wet’ and ‘just right’.
To do that, measure the soil under 3 basic conditions:
From those 3 measurements, ranges for each of the 3 conditions can be initially determined and then honed in on once the setup goes into operation.
On most MCUs like Arduino, the ADC is 10-bit, so the measurement has a range of 0-1023. When the sensor is dry in open air, the ADC will read close to the upper limit of 1023. In my own test, that reading was 985-1000. When the sensor was inserted into a cup of clean water, the reading dropped to about 445. Adding a little salt to increase conductivity as you might have from minerals dissolved in the water in the soil lowered the reading to about 300.
With our test plant, we got the following readings:
Based on that data, the program below defines the following ranges:
The program reports the digital output status as well as the analog but doesn’t do anything with it. The trip point can be set with the pot and it could be used to trip a buzzer alarm or LED if the soil gets too dry or something. I found it convenient to wire a red and green LED on the MCU I was experimenting with. Green meant everything was fine and Red indicated the plant was either too wet or too dry and needed attention.
The probes are made from a PCB board with plated copper traces and corrosion will take its toll on the sensor probes over time.
Having power applied to the probe electrodes speeds the rate of corrosion significantly, so to minimize that issue the device can be powered off of a pin on the MCU so that it can be turned on only when a measurement is being taken. Total power draw with both LEDs lit is about 8mA so that is easily within the drive capability of a MCU Since soil doesn’t dry out very quickly, readings can be spaced relatively far apart depending on your environment, perhaps just once or twice a day.
The program below powers the device off a digital pin on the microcontroller and takes a measurement every second for test purposes. It takes the analog and digital measurement separately mainly for illustrative purposes. These could be combined and only power the device up once for both readings if both are required.
The program is using pin A0 for the analog reading but this can be any analog pin. Similarly pin 8 is doing the digital reading and pin 9 is being used to power the module, but these can be changed to any 2 digital pins as needed.
/* Soil Moisture Sensor Module Test Monitor soil moisture analog output 'A0' on ADC input A0 Monitor soil moisture digital output 'D0' on digital input pin 8 Power the module off of digital output pin 9 only when taking a measurement to reduce corrosion rate of the sensor probe. */ // Define pins used below #define ADC_PIN A0 // Use any available ADC Pin, connect to A0 sensor pin #define DIGITAL_PIN 8 // Use any available digital pin, connect to D0 sensor pin #define PWR_PIN 9 // Use any available digital pin, connect to VCC sensor pin #define SOIL_WET 500 // Define max value we consider soil 'wet' #define SOIL_DRY 750 // Define min value we consider soil 'dry' //=============================================================================== // Initialization //=============================================================================== void setup() { Serial.begin(9600); // Set Serial Monitor window comm speed pinMode(PWR_PIN, OUTPUT); // Set pin used to power sensor as output digitalWrite(PWR_PIN, LOW); // Set to LOW to turn sensor off at start } //=============================================================================== // Main //=============================================================================== void loop() { int returnedADCData = readSoilADC(); // Read sensor analog output Serial.println(returnedADCData); // Print raw ADC data Serial.print("\tDigital Output = "); Serial.print(readSoilDigital()); // Read sensor digital output and print directly if (returnedADCData < SOIL_WET) { // Determine status of our soil moisture situation Serial.println("\tConclusion: Soil is too wet"); } else if (returnedADCData >= SOIL_WET && returnedADCData < SOIL_DRY) { Serial.println("\tConclusion: Soil moisture is perfect"); } else { Serial.println("\tConclusion: Soil is too dry - time to water!"); } delay(1000); // Take a reading every second for test purposes. // Normally we would take reading perhaps every 12 hours } //=============================================================================== // Function readSoilADC returns the analog soil moisture measurement //=============================================================================== int readSoilADC() { digitalWrite(PWR_PIN, HIGH); // Turn sensor power on delay(25); // Allow power to settle int val_ADC = analogRead(ADC_PIN); // Read analog value from sensor digitalWrite(PWR_PIN, LOW); // Turn sensor power off return val_ADC; // Return analog moisture value } //=============================================================================== // Function readSoilDigital returns the digital soil moisture value //=============================================================================== int readSoilDigital() { digitalWrite(PWR_PIN, HIGH); // Turn sensor power on delay(25); // Allow power to settle int val_Digital = digitalRead(DIGITAL_PIN); //Read the digital value from sensor digitalWrite(PWR_PIN, LOW); // Turn sensor power off return val_Digital; // Return digital moisture value }
Notes:
Operating Ratings | ||
Vcc | Range | 3.3 to 5V |
I(typ) | With both LEDs lit | < 8mA |
Vout | Analog Output | 2V to 5V (typ) |
Dimensions | ||
Sensor Probe Board | L x W (PCB) | 60 x 20mm (2.4 x 0.8″) |
Sensor Electronics Board | L x W (PCB) | 30 x 15mm (1.2 x 0.6″) |
Cable | Length | 20cm (8″) |
WE'RE READY TO BUILD A CUSTOM PRODUCT FOR YOU.
All orders are dispatched from our warehouse. The shipments are fully tracked—from our door to yours. Please allow 3-5 business days for your order to be processed in addition to the shipping times below.
Standard: 9-15 business days. Express: 4-7 business days.
Please note that shipping providers are extremely busy during this time, and some orders might experience a delay on top of usual delivery times. If your order is late, please allow 5-10 days more than indicated in standard shipping times before contacting our customer service. Thank you for your understanding.
All orders are 100% tracked. You’ll receive an email with a tracking number and a link to track your parcel once your order leaves our warehouse. Please allow 24-48 hours for the tracking link to start showing shipping information.
Receive our latest updates about our products & promotions.
Thanks for subscribing!
This email has been registered!