Devices & Components
Breadboard - 830 contacts
Arduino Uno Rev3
1 relay module 5 Vdc 10A (assembled)
Soil Moisture Sensor
Resistor 220 Ohm
Capacitive Soil Moisture Sensor
Water Pump
5V LED
Jumper wires (generic)
4 AA battery holder + battery
Software & Tools
Arduino IDE
TINKERCAD
Project description
Code
Soil Moisture Monitoring
cpp
Measure the soil moisture.
1// ================================================================================ 2// Read values from a soil moisture sensor and blink LEDs accordingly 3// This code works with resistance-based soil moisture sensors 4// Created on 17 July 2024 5// Created by Lucas Fernando (https://www.youtube.com/@lucasfernandochannel) 6// You are free to use this code the way you want 7// ================================================================================ 8 9#define GREEN_LED 2 // Green LED connected to digital pin 2 10#define YELLOW_LED 3 // Yellow LED connected to digital pin 3 11#define RED_LED 4 // Red LED connected to digital pin 4 12#define SENSOR_PIN A5 // Soil moisture sensor connected to analog pin A5 13// Defining soil moisture readings thresholds 14// From 0 to 500 - extremely wet 15// From 501 to 800 - wet 16// From 801 - dry 17#define DRY_THRESHOLD 800 18#define WET_THRESHOLD 500 19 20void setup() { 21 pinMode(GREEN_LED, OUTPUT); 22 pinMode(YELLOW_LED, OUTPUT); 23 pinMode(RED_LED, OUTPUT); 24 25 digitalWrite(GREEN_LED, LOW); 26 digitalWrite(YELLOW_LED, LOW); 27 digitalWrite(RED_LED, LOW); 28 29 Serial.begin(9600); 30} 31 32void loop() { 33 int sensorValue = analogRead(SENSOR_PIN); 34 // Print the sensor reading values 35 Serial.print("Soil moisture sensor value: "); 36 Serial.println(sensorValue); 37 38 if(sensorValue > 0 && sensorValue <= WET_THRESHOLD) { 39 // Extremely wet (green LED) 40 digitalWrite(GREEN_LED, HIGH); 41 digitalWrite(YELLOW_LED, LOW); 42 digitalWrite(RED_LED, LOW); 43 } else if (sensorValue > WET_THRESHOLD && sensorValue <= DRY_THRESHOLD) { 44 // Wet (yellow LED) 45 digitalWrite(GREEN_LED, LOW); 46 digitalWrite(YELLOW_LED, HIGH); 47 digitalWrite(RED_LED, LOW); 48 } else { 49 // Extremely dry (red LED) 50 digitalWrite(GREEN_LED, LOW); 51 digitalWrite(YELLOW_LED, LOW); 52 digitalWrite(RED_LED, HIGH); 53 } 54}
Irrigation System
cpp
Irrigation system using Arduino.
1// ===================================================================================== 2// Read values from a soil moisture sensor and turn on or off a water pump accordingly 3// This code works with capacitance-based soil moisture sensors 4// Created on 17 July 2024 5// Created by Lucas Fernando (https://www.youtube.com/@lucasfernandochannel) 6// You are free to use this code the way you want 7//======================================================================================== 8 9// Defining soil moisture reading threshold 10// From 0 to 400 - wet soil 11// Above 400 - dry soil 12#define THRESHOLD 400 13#define RELE_PIN 2 //Relè is connected to digital pin 2 14#define SENSOR_PIN A5 //Soil moisture sensor connected to analog pin A5 15 16 17void setup() { 18 pinMode(RELE_PIN, OUTPUT); 19 digitalWrite(RELE_PIN, LOW); 20 Serial.begin(9600); 21} 22 23void loop() { 24 long sensorValue = 0; 25 for (int i = 0; i < 100; i++) { 26 sensorValue += analogRead(SENSOR_PIN); 27 } 28 sensorValue = sensorValue / 100; 29 30 // Print the sensor reading values 31 Serial.print("Soil moisture sensor value: "); 32 Serial.println(sensorValue); 33 34 if (sensorValue > THRESHOLD) { 35 // Turn on the water pump 36 digitalWrite(RELE_PIN, HIGH); 37 } else { 38 // Turn off the water pump 39 digitalWrite(RELE_PIN, LOW); 40 } 41 42 // Wait one second before measure the soil moisture again 43 delay(1000); 44}
Comments
Only logged in users can leave comments