OC
OceanRemote
Low-code IoT platform
← Back to Course

Irrigation System Types and Components

Irrigation System Types and Components

💧 Irrigation System Types and Components - Complete Guide for African Farmers

💧 What You'll Learn in This Lesson:

  • 💧 Compare 8 irrigation system types for your specific farm
  • 💰 Understand costs, water efficiency, and ROI for each system
  • 🛠️ Learn all components needed for a complete irrigation system
  • 💻 Build an ESP32-controlled automated irrigation system
  • 🌾 Choose the right system for your crop, budget, and water source

📊 Complete Irrigation System Comparison

System Type Water Efficiency Cost per Hectare Labor Required Best For Automation Ready
💧 Drip Irrigation 90-95% (Highest!) $800-2,000 Low Vegetables, fruits, row crops ✅ Excellent
💧 Micro-Sprinkler 85-90% $1,000-2,500 Low Tree crops, nursery, greenhouses ✅ Excellent
💧 Sprinkler (Gun) 70-80% $500-1,000 Medium Cereals, pasture, large areas ✅ Good
💧 Center Pivot 80-85% $5,000-10,000 Very Low Large-scale commercial (50+ ha) ✅ Excellent
💧 Surface/Furrow 40-60% $100-300 High Low-cost, suitable for slopes ❌ Difficult
💧 Flood/Basin 30-50% $50-150 High Rice, pastures ❌ Difficult
💧 Solar Drip 90-95% $1,500-3,000 Very Low Off-grid farms (no electricity) ✅ Excellent
💧 Gravity Drip 85-90% $200-500 Low Small plots, hillside farms ✅ Good
🌟 Recommendation for African Smallholders:

Drip irrigation + soil moisture sensors + ESP32 automation offers the best ROI:

  • 💧 90-95% water efficiency (vs 40-60% for furrow)
  • 📈 30-50% yield increase
  • 💰 $800-1,500 initial investment per hectare
  • 🔄 Payback period: 1-2 growing seasons
  • 🔋 Can be solar-powered for off-grid farms

🛠️ Complete Irrigation System Components

💧

1. Water Source

  • Well/Borehole: Consistent supply, initial drilling cost $500-2000
  • River/Stream: Free but seasonal variability
  • Reservoir/Tank: Stores rainwater, sizes 5,000-50,000L
  • Municipal: Reliable but ongoing cost
  • Rainwater Harvesting: Sustainable, requires storage

2. Pump

  • Submersible: For wells/boreholes, 0.5-5HP, $100-500
  • Centrifugal: For surface water, 1-10HP, $80-300
  • Solar Pump: Off-grid, 0.5-3HP, $300-1500
  • Diaphragm: Low flow, high pressure for drip
  • Pedal Pump: Human-powered, $50-100 for small plots
🧹

3. Filtration

  • Screen Filter: 120-200 mesh for clean water, $20-50
  • Disc Filter: Better for organic matter, $30-100
  • Sand Filter: For dirty water sources, $100-300
  • Hydrocyclone: Removes sand/silt, $80-200
  • CRITICAL: Drip systems NEED filtration!
📏

4. Pressure Regulator

  • Drip Systems: Need 20-30 PSI (1.4-2.1 bar)
  • Sprinklers: Need 30-50 PSI (2.1-3.5 bar)
  • Cost: $15-40 each
  • Without regulator: Emitters fail, uneven watering
📡

5. Main & Sub-main Lines

  • PVC Pipe: Rigid, 50-110mm diameter, $5-15/meter
  • Polyethylene (PE): Flexible, 25-50mm, $2-8/meter
  • HDPE: Heavy-duty, long life, $3-10/meter
  • Size based on: Flow rate and distance
🔘

6. Control Valves

  • Ball Valve: Manual on/off, $5-15
  • Solenoid Valve: Electric, for automation, $15-40
  • Gate Valve: Flow adjustment, $10-25
  • Check Valve: Prevents backflow, $8-20
💧

7. Drip Tape / Emitters

  • Drip Tape: Flat, disposable, 0.5-2L/hour, $0.05-0.15/meter
  • Drip Line: Round, reusable, 2-4L/hour, $0.10-0.30/meter
  • Individual Emitters: For trees, 4-20L/hour, $0.20-0.50 each
  • Spacing: 20-30cm for vegetables, 50-100cm for row crops
🖥️

8. Automation Controller

  • ESP32: WiFi, Bluetooth, 30+ GPIO, $5-10
  • ESP8266: WiFi-only, cheaper, $3-6
  • Relay Module: 4-16 channel, $6-25
  • Soil Moisture Sensors: Capacitive type, $3-10 each
  • Power Supply: 12V/2A for valves + 5V for ESP32

💧 Drip Irrigation - Detailed Design

📐 Drip System Design Formula:

Total Flow Rate (L/hour) = Number of Emitters × Emitter Flow Rate (L/hour)

Required Pump Size (HP) = (Flow Rate × Total Head) / (4500 × Pump Efficiency)

Example (1 hectare = 10,000m²):

  • Plant spacing: 1m × 0.5m = 20,000 plants
  • One emitter per plant @ 2L/hour → 40,000 L/hour total flow = 667 L/min
  • 4" main line, 1.5HP pump, 25 PSI pressure regulator

🛠️ Complete Drip Irrigation Layout Diagram

═══════════════════════════════════════════════════════════════════════════════
                    COMPLETE DRIP IRRIGATION SYSTEM LAYOUT
═══════════════════════════════════════════════════════════════════════════════

    WATER SOURCE
        │
        ▼
    ┌───────────────┐
    │  PUMP         │  (Submersible/Centrifugal/Solar)
    │  1-5 HP       │
    └───────┬───────┘
            │
            ▼
    ┌───────────────┐
    │  FILTER       │  (Screen or Disc - 120-200 mesh)
    │  Backwash     │
    └───────┬───────┘
            │
            ▼
    ┌───────────────┐
    │  PRESSURE     │  (Set to 20-30 PSI for drip)
    │  REGULATOR    │
    └───────┬───────┘
            │
            ▼
    ┌───────────────┐     ┌───────────────┐     ┌───────────────┐
    │  ZONE 1       │     │  ZONE 2       │     │  ZONE 3       │
    │  SOLENOID     │────▶│  SOLENOID     │────▶│  SOLENOID     │
    │  VALVE        │     │  VALVE        │     │  VALVE        │
    └───────┬───────┘     └───────┬───────┘     └───────┬───────┘
            │                     │                     │
            ▼                     ▼                     ▼
    ┌───────────────┐     ┌───────────────┐     ┌───────────────┐
    │  MAIN LINE    │     │  MAIN LINE    │     │  MAIN LINE    │
    │  (50-75mm)    │     │  (50-75mm)    │     │  (50-75mm)    │
    └───────┬───────┘     └───────┬───────┘     └───────┬───────┘
            │                     │                     │
            ▼                     ▼                     ▼
    ┌───────────────┐     ┌───────────────┐     ┌───────────────┐
    │  LATERAL      │     │  LATERAL      │     │  LATERAL      │
    │  LINES        │     │  LINES        │     │  LINES        │
    │  (16mm)       │     │  (16mm)       │     │  (16mm)       │
    └───────┬───────┘     └───────┬───────┘     └───────┬───────┘
            │                     │                     │
            ▼                     ▼                     ▼
    ┌───────────────────────────────────────────────────────────┐
    │              DRIP TAPE / EMITTERS                         │
    │   ●  ●  ●  ●  ●  ●  ●  ●  ●  ●  ●  ●  ●  ●  ●  ●  ●   │
    │   Emitter spacing: 20-50cm depending on crop             │
    │   Flow rate: 0.5-4 L/hour per emitter                    │
    └───────────────────────────────────────────────────────────┘

═══════════════════════════════════════════════════════════════════════════════
    CONTROLLER: ESP32 + Relay Module + Soil Moisture Sensors
═══════════════════════════════════════════════════════════════════════════════

💻 ESP32 Automated Irrigation Controller Code

/*
 * Complete ESP32 Automated Drip Irrigation Controller
 * Controls 4 zones with soil moisture feedback
 * 
 * Components:
 * - ESP32 Development Board
 * - 4-Channel 5V Relay Module
 * - 4 Soil Moisture Sensors (capacitive)
 * - 4 Solenoid Valves (12V/24V AC or DC)
 * - 12V/2A Power Supply for valves
 * - 5V/2A Power Supply for ESP32/Relays
 */

#include 
#include 

// ========== PIN DEFINITIONS ==========
#define SOIL_ZONE1 32
#define SOIL_ZONE2 33
#define SOIL_ZONE3 34
#define SOIL_ZONE4 35

#define RELAY_ZONE1 5
#define RELAY_ZONE2 18
#define RELAY_ZONE3 19
#define RELAY_ZONE4 21

// ========== WIFI CONFIGURATION ==========
const char* ssid = "YOUR_WIFI";
const char* password = "YOUR_PASSWORD";

// ========== SOIL CALIBRATION ==========
const int DRY_VALUE = 3800;
const int WET_VALUE = 1500;

// ========== IRRIGATION THRESHOLDS ==========
const float ZONE1_THRESHOLD = 35.0;  // Start watering below 35%
const float ZONE2_THRESHOLD = 40.0;
const float ZONE3_THRESHOLD = 45.0;
const float ZONE4_THRESHOLD = 30.0;

const int WATER_DURATION = 600;  // 10 minutes per zone
const int DELAY_BETWEEN_ZONES = 5000;  // 5 seconds pause

// ========== ZONE STRUCTURE ==========
struct Zone {
    int soilPin;
    int relayPin;
    const char* name;
    float threshold;
};

Zone zones[] = {
    {SOIL_ZONE1, RELAY_ZONE1, "Tomatoes", ZONE1_THRESHOLD},
    {SOIL_ZONE2, RELAY_ZONE2, "Peppers", ZONE2_THRESHOLD},
    {SOIL_ZONE3, RELAY_ZONE3, "Maize", ZONE3_THRESHOLD},
    {SOIL_ZONE4, RELAY_ZONE4, "Nursery", ZONE4_THRESHOLD}
};

const int ZONE_COUNT = 4;

// ========== READ SOIL MOISTURE ==========
float readSoilMoisture(int pin) {
    int raw = analogRead(pin);
    float moisture = map(raw, DRY_VALUE, WET_VALUE, 0, 100);
    return constrain(moisture, 0, 100);
}

// ========== CONTROL SOLENOID VALVE ==========
void waterZone(int zoneIndex, int durationSeconds) {
    Zone* z = &zones[zoneIndex];
    
    Serial.printf("💧 Zone %d (%s): Starting irrigation for %d seconds\n", 
                  zoneIndex+1, z->name, durationSeconds);
    
    // Open valve (ACTIVE LOW relay)
    digitalWrite(z->relayPin, LOW);
    delay(durationSeconds * 1000);
    
    // Close valve
    digitalWrite(z->relayPin, HIGH);
    Serial.printf("✅ Zone %d (%s): Complete\n\n", zoneIndex+1, z->name);
}

// ========== IRRIGATION DECISION ==========
bool needsWatering(Zone* z) {
    float moisture = readSoilMoisture(z->soilPin);
    Serial.printf("   %s: %.1f%% (threshold: %.0f%%) -> ", z->name, moisture, z->threshold);
    
    if (moisture < z->threshold) {
        Serial.println("NEEDS WATER");
        return true;
    } else {
        Serial.println("OK");
        return false;
    }
}

// ========== DISPLAY SYSTEM STATUS ==========
void displayStatus() {
    Serial.println("\n╔══════════════════════════════════════════════════════════════╗");
    Serial.println("║              💧 IRRIGATION SYSTEM STATUS                     ║");
    Serial.println("╚══════════════════════════════════════════════════════════════╝");
    
    for (int i = 0; i < ZONE_COUNT; i++) {
        float moisture = readSoilMoisture(zones[i].soilPin);
        Serial.printf("\n📍 ZONE %d: %s\n", i+1, zones[i].name);
        Serial.printf("   💧 Soil Moisture: %.1f%%\n", moisture);
        Serial.printf("   🎯 Threshold: %.0f%%\n", zones[i].threshold);
        
        if (moisture < zones[i].threshold) {
            Serial.printf("   ⚠️ Status: BELOW THRESHOLD - Needs irrigation\n");
        } else if (moisture > 70) {
            Serial.printf("   ✅ Status: OPTIMAL - Soil well watered\n");
        } else {
            Serial.printf("   ✅ Status: ADEQUATE - No action needed\n");
        }
    }
}

void setup() {
    Serial.begin(115200);
    
    // Configure relay pins
    for (int i = 0; i < ZONE_COUNT; i++) {
        pinMode(zones[i].relayPin, OUTPUT);
        digitalWrite(zones[i].relayPin, HIGH);  // Start with valves CLOSED
    }
    
    // Configure soil sensor pins
    for (int i = 0; i < ZONE_COUNT; i++) {
        pinMode(zones[i].soilPin, INPUT);
    }
    
    // Connect to WiFi
    WiFi.begin(ssid, password);
    Serial.print("📡 Connecting to WiFi");
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.println("\n✅ WiFi connected!");
    
    Serial.println("═══════════════════════════════════════════");
    Serial.println("💧 ESP32 AUTOMATED IRRIGATION CONTROLLER");
    Serial.println("   4-Zone Drip System with Soil Feedback");
    Serial.println("═══════════════════════════════════════════\n");
    
    displayStatus();
}

void loop() {
    Serial.println("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    Serial.println("🌾 STARTING IRRIGATION CYCLE");
    Serial.println("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    
    bool anyIrrigated = false;
    
    for (int i = 0; i < ZONE_COUNT; i++) {
        if (needsWatering(&zones[i])) {
            waterZone(i, WATER_DURATION);
            anyIrrigated = true;
            delay(DELAY_BETWEEN_ZONES);
        }
    }
    
    if (!anyIrrigated) {
        Serial.println("✅ All zones have adequate moisture - No irrigation needed\n");
    }
    
    // Update display
    displayStatus();
    
    // Send data to OceanRemote cloud
    sendToCloud();
    
    // Wait 6 hours before next check (adjust as needed)
    Serial.println("⏰ Waiting 6 hours until next irrigation cycle...\n");
    delay(21600000);
}

// ========== SEND DATA TO OCEANREMOTE CLOUD ==========
void sendToCloud() {
    if (WiFi.status() != WL_CONNECTED) return;
    
    HTTPClient http;
    http.begin("https://api.oceanremote.net/device/state");
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    
    String data = "token=YOUR_TOKEN";
    
    for (int i = 0; i < ZONE_COUNT; i++) {
        float moisture = readSoilMoisture(zones[i].soilPin);
        data += "&zone" + String(i+1) + "_moisture=" + String(moisture);
    }
    
    int httpCode = http.POST(data);
    if (httpCode == 200) {
        Serial.println("✅ Data sent to OceanRemote dashboard");
    }
    http.end();
}
    
📖 Case Study - Kenyan Farm Converts to Drip Irrigation:

A 2-hectare vegetable farm in Thika, Kenya switched from furrow to drip irrigation:

  • 💧 Before: Furrow irrigation, 15,000L/day, 40% efficiency
  • 💧 After: Drip system with ESP32 automation, 6,000L/day, 92% efficiency
  • 💰 Cost: $1,800 for materials + $200 for ESP32/valves
  • 📈 Yield increase: 45% (tomatoes, peppers, cabbage)
  • 💵 Payback period: 8 months! (Water savings + increased yield)

"The drip system paid for itself in less than a year. Best investment we ever made." - Farm Owner, Thika, Kenya

💡 Pro Tips for System Selection:
  • 📍 Small plot (<0.5 ha): Gravity drip or battery-powered drip (lowest cost)
  • 📍 Medium farm (0.5-5 ha): Electric drip + ESP32 automation + solar optional
  • 📍 Large farm (>5 ha): Center pivot or large sprinkler + automation
  • 📍 Tree crops: Micro-sprinklers or individual emitters
  • 📍 Off-grid: Solar pump + gravity tank + drip (most reliable)
⚠️ Common System Failures & Prevention:
  • Clogged emitters (90% of failures): Install adequate filtration + flush lines monthly
  • Burst pipes (freezing/overpressure): Use pressure regulator + drain system
  • Pump burnout (running dry): Install low-water cutoff sensor
  • Valve failure (debris): Install Y-strainer before each valve
  • ESP32 reset (power issues): Use separate power supply for relays
🎉 Congratulations!

You can now design and build a complete automated irrigation system!

  • ✅ Compare 8 irrigation system types with costs and efficiency
  • ✅ Identify all 20+ components needed for a complete system
  • ✅ Design a drip system layout for your specific farm
  • ✅ Build an ESP32-controlled 4-zone automated system
  • ✅ Achieve 90-95% water efficiency + 30-50% yield increase

Next step: Add soil moisture sensors for fully automated feedback!

📋 Quick Reference - Component Sizing:
┌─────────────────────────────────────────────────────────────────────────────┐
│                    COMPONENT SIZING GUIDE (1 HECTARE)                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  DRIP SYSTEM:                                                               │
│  • Emitters: 20,000-30,000 (2L/hour each)                                  │
│  • Flow rate: 40,000-60,000 L/hour (660-1000 L/min)                       │
│  • Main line: 63-75mm HDPE or PVC                                          │
│  • Laterals: 16mm PE (10,000-15,000 meters)                                │
│  • Pump: 2-3 HP (centrifugal) or 1.5-2 HP (submersible)                    │
│  • Filter: 2" disc or screen (120-150 mesh)                                │
│  • Pressure regulator: 25 PSI, 1000 L/min capacity                         │
│                                                                             │
│  SPRINKLER SYSTEM:                                                          │
│  • Sprinklers: 40-60 (2-3 bar operating pressure)                          │
│  • Spacing: 12m × 15m (rectangular pattern)                                │
│  • Flow rate: 30,000-40,000 L/hour                                         │
│  • Pump: 3-5 HP                                                             │
│  • Main line: 75-90mm HDPE                                                  │
│                                                                             │
│  AUTOMATION:                                                                │
│  • Solenoid valves: 4-8 (12V DC latching recommended)                      │
│  • Soil sensors: 4-8 (capacitive type)                                     │
│  • Controller: ESP32 + 8-channel relay module                              │
│  • Power supply: 12V/5A (valves + ESP32)                                   │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘
💡 Key Takeaways:
  • Apply these concepts directly to your farm or project.
  • Take notes on important details for the quiz.
  • Use the button below to track your progress.