Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Arduino
90 min
Share

قم ببناء نظام ري ذاتى للنباتات باستخدام الاردوينو

إذا كنت تحب وتستمتع بزراعة الأزهار والنباتات الطبيعية، فأنت تدرك مدى أهمية العناية بها يوميًا. بفضل الأردوينو يمكنك صنع نظام ري ذاتي للنباتات لكي يتابع ما إذا كانت الأزهار بحاجة إلى الماء أم لا طوال اليوم .

Project Video

Overview

في هذا المشروع، سنقوم ببناء نظام ري ذاتي باستخدام الأردوينو وحساس رطوبة التربة، حيث يقوم بضخ الماء للنبات عند حاجته للماء وإيقاف ضخ الماء عند تشبع تربة النبات بالماء الكافي .

Getting the Items

Arduino Uno R3 (Voltaat Version)
Get Item
2×16 LCD with I2C Module
Get Item
Mini Submersible Water Pump
Get Item
2N2222 – NPN Transistor (3 pieces)
Get Item
Soil Moisture Sensor
Get Item
Half-size Breadboard
Get Item
1/4 Watt Resistor (20 Pack)
Get Item
Jumper Wires - Male to Male (40 Pack)
Get Item
Jumper Wires – Male to Female (40 Pack)
Get Item

Steps

Wiring it Up

قم بتوصيل الاسلاك بين الاردوينو وحساس رطوبة التربة والترانزستور ومضخة المياه والشاشة الكريستالية كما هو ظاهر فى الصورة التى فى الاسفل .

التوصيلات من الاردوينو الى لوحة التجارب :

• منفذ ال 5 فولت ← المنافذ الموجبة بلوحة التجارب

• منفذ الجراوند ← المنافذ السالبة بلوحة التجارب

التوصيلات من حساس رطوبة التربة :

• المنفذ الموجب لحساس الرطوبة ← المنافذ الموجبة بلوحة التجارب

• المنفذ السالب لحساس الرطوبة ← المنافذ السالبة بلوحة التجارب

• منفذ A0  ← منفذ رقم A0 فى لوحة الاردوينو

التوصيلات من الترانزستور :

• طرف الباعث ← المنافذ السالبة بلوحة التجارب

• طرف الفاعده ← مقاومة 4.7 كيلو اوم ← منفذ رقم 3 فى الاردوينو

التوصيلات من مضخة المياه :

• طرف المضخة الاول ← المنافذ الموجبة بلوحة التجارب

• طرف المضخه الاخر ← طرف المجمع بالترانزستور

التوصيلات من الشاشة الكريستالية:

• المنفذ الموجب للشاشة الكريستالية ← المنافذ الموجبة بلوحة التجارب

• المنفذ السالب للشاشة الكريستالية ← المنافذ السالبة بلوحة التجارب

• المنفذ SCL للشاشة الكريستالية ← منفذ رقم A5 فى لوحة الاردوينو

• المنفذ SDA للشاشة الكريستالية ← منفذ رقم A4 فى لوحة الاردوينو

Coding

/*

Voltaat learn (https://www.voltaat.com)

Link for full tutorial:

LiquidCrystal I2C Library: https://learn.voltaat.com/wp-content/uploads/2023/05/LCD_library.zip

Tutorial: Build an auto watering system for plants using Arduino

The function of this code is to pump water to the plant when the plants need water and stop the pump

if the soil of the plants is sufficiently saturated with water, and printing the status of whether the plants

need water or not on a crystal screen.

Connections from the Arduino to the breadboard:

• Arduino 5v pin → breadboard 5v line

• Arduino GND pin → breadboard GND line

Connections from the Soil Moisture Sensor:

• VCC pin → breadboard 5v line

• GND pin → breadboard GND line

• A0 pin → Arduino pin A0

Connections from the npn transistor:

• the emitter → breadboard GND line

• the base → resistor → Arduino pin 3

Connections from the pump :

• the first wire → the collector

• The second wire → breadboard 5v line

Connection from the LCD:

• VCC pin → breadboard 5v line

• GND pin→ breadboard GND line

• SDA pin→ Arduino analog pin A4

• SCL pin → Arduino analog pin A5

*/

#include  "LiquidCrystal_I2C.h" // Include the LiquidCrystal_I2C library

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Create an instance of the LiquidCrystal_I2C class with the specified address and dimensions

int soilMoistureValue = 0;  // Variable to store the analog reading of soil moisture

int percentage = 0;  // Variable to store the calculated percentage of soil moisture

void setup() {

pinMode(3, OUTPUT);  // Set pin 3 as an output pin

lcd.init();  // Initialize the LCD display

lcd.backlight();  // Turn on the backlight of the LCD

lcd.clear();  // Clear the LCD display

digitalWrite(3, LOW);  // Set pin 3 to a low state (initially turn off the pump)

}

void loop() {

soilMoistureValue = analogRead(A0);  // Read the analog value from pin A0 connected to the soil moisture sensor

percentage = map(soilMoistureValue, 490, 1023, 100, 0);  // Map the analog value to a percentage value between 0 and 100

if (percentage < 20) {

  digitalWrite(3, HIGH);  // Turn on the pump (set pin 3 to a high state)

  lcd.setCursor(0, 0);

  lcd.print("The Plants need "); // print on the LCD display

  lcd.setCursor(0, 1);

  lcd.print("water  ");

  lcd.setCursor(8, 1);

  lcd.print(" PUMP ON");

}

if (percentage > 80) {

  digitalWrite(3, LOW);  // Turn off the pump (set pin 3 to a low state)

  lcd.setCursor(0, 0);

  lcd.print("Plants have been");

  lcd.setCursor(0, 1);

  lcd.print("watered");

  lcd.setCursor(8, 1);

  lcd.print("PUMP OFF");

}

}

Testing it Out

في البداية، ستجد الشاشة الكريستالية تظهر ما إذا كان النبات بحاجة للماء أم لا، حيث إذا كان النبات يحتاج للماء، ستظهر عبارة “The plants need water”، ومن ثم ستقوم بتشغيل مضخة المياه لتزويد النبات بالماء. بينما إذا تم ري النبات بالفعل ولا يحتاج النبات إلى الري مجددًا، ستجد الشاشة تظهر عبارة “The plants have been watered”، وستقوم بإيقاف مضخة المياه.

Resources

No items found.