Introduction: In today’s fast-paced world, finding time to tend to our gardens can be a challenge. But what if there was a way to ensure our plants receive the care they need, even when we’re busy or away from home? Enter the world of DIY electronics and automation! In this blog post, we’ll explore how to build an automated plant watering system using Arduino Uno, revolutionizing the way we care for our gardens.
Why Automated Plant Watering? Before we dive into the technical details, let’s consider the benefits of automated plant watering. By automating the watering process, we can:
- Ensure plants receive the right amount of water at the right time, promoting healthy growth.
- Save time and effort spent on manual watering, especially for large gardens or indoor plant collections.
- Monitor plant health remotely, allowing us to address any issues promptly, even when we’re away from home.
Components Needed: To build our automated plant watering system, we’ll need the following components:
- Arduino Uno: The brains of our operation, responsible for monitoring soil moisture levels and controlling the watering system.
- Soil Moisture Sensor: Detects the moisture level in the soil and triggers the watering system when moisture levels are low.
- Relay Module: Controls the water pump or solenoid valve to deliver water to the plants.
- Breadboard
- 12v DC Pump : Delivers water from a reservoir to the plants.
- Jumper wires
- DC Socket
- Power Supply: Provides power to the Arduino Uno and other components.
- LCD Display + I2C:
- DHT11 Temperature Sensor (for environmental monitoring).
Building the System:
- Connect the soil moisture sensor to the Arduino Uno to measure soil moisture levels.
- Write code to read sensor data and control the relay module based on moisture levels.
- Connect the relay module to the water pump or solenoid valve to deliver water to the plants.
- Optionally, integrate additional sensors like the PIR motion sensor or DHT11 temperature sensor for enhanced functionality.
- Test the system to ensure proper operation and make any necessary adjustments.
Watch the tutorial now to make your own Automated Garden
Benefits of Using Arduino Uno: Arduino Uno is an ideal platform for building our automated plant watering system due to its ease of use, versatility, and affordability. With a vast community of makers and extensive documentation available online, Arduino Uno offers endless possibilities for creating custom electronics projects like ours.
Conclusion: By harnessing the power of DIY electronics and automation, we can revolutionize the way we care for our gardens. With an automated plant watering system built using Arduino Uno, we can ensure our plants receive the care they need, even when life gets busy. So why wait? Let’s roll up our sleeves, unleash our creativity, and transform our gardens into thriving oases of greenery and life.
Happy gardening!
Copy the code below and paste it in your Arduino IDE to run
//Theishanjain.com //code by Ishan jain // visit https://theishanjain.com/index.php/home/ for more interesting stuff // Search @theishanjain on youtube !!! #include#include #define DHTPIN 2 // Pin connected to the DHT11 sensor #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(0x27,16,2); int sensor_pin = A0; //Sensor Pin int relay_pin = 7; //Relay Pin void setup() { Serial.begin(9600); lcd.begin(16,2); lcd.backlight(); lcd.setBacklight(HIGH); dht.begin(); // Initialize DHT sensor pinMode(sensor_pin, INPUT); pinMode(relay_pin, OUTPUT); } void loop() { int sensor_data = analogRead(sensor_pin); int temperature = dht.readTemperature(); int humidity = dht.readHumidity(); Serial.print("Sensor_data:"); Serial.print(sensor_data); Serial.print("\t | "); if(sensor_data > 950) { Serial.println("No moisture, Soil is dry"); digitalWrite(relay_pin, LOW); lcd.setCursor(0,0); lcd.print("Soil Dry "); lcd.setCursor(10,0); lcd.print("T:"); lcd.print(temperature); lcd.print("C"); Serial.print("Temperature is: "); Serial.print(temperature); Serial.println("C"); lcd.setCursor(10, 1); lcd.print("H:"); lcd.print(humidity); lcd.print("%"); Serial.print("humidity is: "); Serial.print(humidity); Serial.println("%"); Serial.println("___________________________________________________"); lcd.setCursor(0,1); lcd.print("Motor ON "); } else if(sensor_data >= 400 && sensor_data <= 950) { Serial.println("There is some moisture, Soil is medium"); digitalWrite(relay_pin, HIGH); lcd.setCursor(0,0); lcd.print("Soil Medium"); lcd.setCursor(0,1); lcd.print("Motor OFF"); } else if(sensor_data < 400) { Serial.println("Soil is wet"); digitalWrite(relay_pin, HIGH); lcd.setCursor(0,0); lcd.print("Soil Wet "); lcd.setCursor(0,1); lcd.print("Motor OFF"); } delay(2000); }