Arduino Soil Moisture Sensor
***Edit***
Please use resistors when connecting the LEDs to your Arduino!
This Instructable is old. I have not had the time to update any of the information. You
will find a lot of GREAT information in the comments please read them after reading
the instructions.
Intro
In this instructable I will show you how to connect the an Arduino Nano and a
moisture sensor. The information will then be displayed with 5 LEDs. This is very
easy build and I would class it as a beginner project.
Step 1: Things You Will Need
1 - Breadboard (http://www.ebay.com/itm/171705651308?ssPageName=ST...
5 - LEDs
5 - 1k resistors
1 - Soil Moisture sensor kit
(http://www.ebay.com/itm/171705525756?ssPageName=ST...
1 - Arduino Nano (http://www.ebay.com/itm/171728876932?ssPageName=ST...
~8 - Assortment of jumpers.
Step 2: Arduino
The Code:
<p>/* </p><p>Innovativetom.com
Flower Pot Soil Mosture Sensor</p><p>A0 - Soil Mosture Sensor
D2:D6 - LEDS 1,2,3,4,5</p><p>LED1 - Green
LED2 - Green
LED3 - Green
LED4 - YELLOW
LED5 - RED</p><p>Connect the Soil Mosture Sensor to anolog input pin 0,
and your 5 led to digital out 2-6</p><p>*/
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;</p><p>int mostureSensor = 0;</p><p>void setup() {
// Serial Begin so we can see the data from the mosture sensor in our serial inp
ut window.
Serial.begin(9600);
// setting the led pins to outputs
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}</p><p>// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(mostureSensor);
// print out the value you read:</p><p> Serial.println(sensorValue);
if (sensorValue >= 820)
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
else if (sensorValue >= 615 && sensorValue < 820)
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
else if (sensorValue >= 410 && sensorValue < 615)
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
else if (sensorValue >= 250 && sensorValue < 410)
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
else if (sensorValue >= 0 && sensorValue < 250)
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
delay(1000); // delay 1 second between reads
}</p>