← Back to Course
Automation with Relays - Part 2
🛠️ Automation with Relays - Part 2: Practical Implementation
🎯 What You'll Learn:
- ⚙️ Build an automatic irrigation system that waters only when needed
- 🔌 Wire relay modules safely to control pumps and valves
- 📊 Set custom soil moisture thresholds for different crops
- 💧 Save 40-60% water compared to timer-based irrigation
🛒 Components You Need
- 🔹 ESP32 microcontroller — $8 · Brain of the system
- 🔹 1-Channel Relay Module — $5 · Controls pump on/off
- 🔹 Soil Moisture Sensor — $8 · Measures soil water content
- 🔹 12V Water Pump — $10 · Pumps water to crops
- 🔹 Water tubing & fittings — $5 · Distribute water to plants
- 🔹 12V Power Supply — $8 · Powers pump and ESP32
💡 Total System Cost: ~$44
Pays for itself in 2-3 months through water savings! A typical 1-acre farm saves $120-180/year on water bills.
🔌 Wiring Diagram
ESP32 → Relay Module
GPIO26 → IN pin (control signal)
3.3V → VCC (relay power)
GND → GND
Relay → Water Pump (12V circuit)
COM → Pump positive (+)
NO → 12V power supply positive (+)
Pump negative → 12V power supply negative (-)
ESP32 → Soil Moisture Sensor
GPIO34 (ADC) → AO (analog out)
3.3V → VCC
GND → GND
⚠️ CRITICAL SAFETY WARNING:
Never connect the pump directly to ESP32 pins! The pump draws 200-500mA, which will destroy your ESP32. ALWAYS use a relay module to isolate high-power circuits.
📖 Complete Automation Code
#include <WiFi.h>
#define RELAY_PIN 26
#define SOIL_PIN 34
const int DRY_THRESHOLD = 30; // Water when below 30%
const int WET_THRESHOLD = 70; // Stop watering at 70%
const unsigned long PUMP_RUN_TIME = 300000; // 5 minutes
const unsigned long CHECK_INTERVAL = 3600000; // Check every hour
unsigned long lastCheck = 0;
bool pumpRunning = false;
unsigned long pumpStartTime = 0;
void setup() {
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH); // Relay HIGH = Pump OFF (active low)
Serial.println("🌱 Auto Irrigation System Started");
}
int getSoilMoisturePercent() {
int raw = analogRead(SOIL_PIN);
// Sensor dry: 4095, Sensor wet: 1500 (adjust based on your soil)
int percent = map(raw, 4095, 1500, 0, 100);
percent = constrain(percent, 0, 100);
return percent;
}
void startPump() {
digitalWrite(RELAY_PIN, LOW); // Pump ON
pumpRunning = true;
pumpStartTime = millis();
Serial.println("💧 PUMP ON - Watering crops");
}
void stopPump() {
digitalWrite(RELAY_PIN, HIGH); // Pump OFF
pumpRunning = false;
Serial.println("💧 PUMP OFF - Watering complete");
}
void loop() {
unsigned long now = millis();
// Handle active pump timer
if (pumpRunning && (now - pumpStartTime >= PUMP_RUN_TIME)) {
stopPump();
}
// Check soil moisture every hour
if (!pumpRunning && (now - lastCheck >= CHECK_INTERVAL)) {
lastCheck = now;
int moisture = getSoilMoisturePercent();
Serial.printf("📊 Soil moisture: %d%%\n", moisture);
if (moisture < DRY_THRESHOLD) {
Serial.println("⚠️ Soil too dry! Starting pump...");
startPump();
} else if (moisture > WET_THRESHOLD) {
Serial.println("✅ Soil moisture is good. No watering needed.");
} else {
Serial.printf("🌿 Soil moisture optimal (%d%%). No action needed.\n", moisture);
}
}
}
💡 Adjusting Moisture Thresholds by Crop:
- Tomatoes: Water at 25% dry, stop at 65%
- Maize/Corn: Water at 20% dry, stop at 60%
- Leafy greens: Water at 35% dry, stop at 75%
- Succulents/Drought crops: Water at 15% dry, stop at 50%
📖 Case Study — Smart Irrigation Saves 55% Water, Kenya:
A tomato farmer replaced timer-based irrigation with soil moisture sensors:
- 💧 Water savings: 55% reduction (from 8,000L to 3,600L/week)
- 💰 Cost savings: $65/month on water bills
- 📈 Yield increase: 28% better tomato production (no over/under watering)
- ⚡ Power: Solar-powered ESP32 runs 6+ months
"My tomatoes never looked better. The system paid for itself in 6 weeks!" — Farmer, Kiambu County
🌟 Advanced Features to Add:
- 📱 Remote monitoring: Add WiFi to see moisture from your phone
- 🌧️ Rain delay: Add a rain sensor to skip watering
- ⏰ Time restrictions: Water only in morning/evening (prevents evaporation)
- 📊 Data logging: Track moisture trends over weeks
🎯 Key Takeaways:
- ✅ Relay modules protect your ESP32 from high-power devices (pumps, valves, lights)
- ✅ Soil moisture sensors save 40-60% water compared to timers
- ✅ Different crops need different moisture thresholds — adjust for your farm
- ✅ Always add a max run time (fail-safe) to prevent flooding
- ✅ This $44 system pays for itself in 2-3 months through water savings
💡 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.
×