A solar water pump controller automates irrigation and water distribution using solar power, making it ideal for Indian agriculture, terrace gardens, and rural water supply. By combining Arduino with solar panels, water pumps, and level sensors, you can build an intelligent system that operates entirely off-grid. This guide covers the complete build process for an Arduino-based solar water pump controller in India.
Table of Contents
- Why Solar Water Pumping?
- System Design
- Components Needed
- Circuit and Wiring
- Control Logic
- Advanced Features
- Frequently Asked Questions
- Conclusion
Why Solar Water Pumping?
India’s agricultural sector is the largest consumer of ground water, and many rural areas face unreliable grid electricity. Solar-powered water pumps solve this by operating during sunlight hours — which conveniently coincide with when water is most needed (daytime irrigation). The Indian government’s PM-KUSUM scheme also promotes solar pumps for agriculture.
Benefits of solar water pumping:
- Zero electricity cost after initial installation
- Works in remote areas without grid connection
- Automatic operation reduces manual labour
- Environment-friendly alternative to diesel pumps
- Long lifespan (solar panels last 25+ years, pumps last 10-15 years)
System Design
Our controller manages a solar-powered pump with these intelligent features:
- Solar-powered: Runs the pump directly from solar panels during daylight
- Tank level monitoring: Turns pump off when the tank is full, on when it drops below a threshold
- Dry-run protection: Turns pump off if the water source runs dry
- Sunlight detection: Only operates when solar panels produce sufficient voltage
- Manual override: Physical button for manual pump control
Components Needed
- Arduino Nano or Uno
- 12V DC water pump (submersible or diaphragm)
- 12V solar panel (20W for small pump, 50-100W for larger pumps)
- Relay module (12V, 10A or higher)
- Ultrasonic sensor HC-SR04 (for tank level measurement)
- Float switch (for dry-run protection at the water source)
- Voltage sensor (voltage divider) for solar panel voltage monitoring
- LM2596 buck converter (to power Arduino from the solar panel)
- OLED display (for status display)
Circuit and Wiring
Power Circuit
The solar panel connects to a 12V relay module that switches the pump. The Arduino controls the relay through a digital output pin. An LM2596 buck converter steps down the 12V solar supply to 5V for the Arduino.
Sensor Connections
- HC-SR04 ultrasonic sensor: Mounted at the top of the water tank, facing down. Trigger pin to D7, Echo pin to D8. Measures the distance to the water surface.
- Float switch: Connected to D4 with internal pull-up. Goes LOW when water is present, HIGH when dry.
- Voltage divider: Connected to A0. Monitors solar panel voltage to detect sufficient sunlight.
- Relay: Connected to D3. Controls pump power.
Control Logic
The Arduino runs a simple decision loop:
// Pseudo-code for solar pump controller
if (solarVoltage > 10V) { // Sufficient sunlight
if (tankLevel < 80%) { // Tank not full
if (sourceWaterPresent) { // Water source not dry
pumpON();
} else {
pumpOFF(); // Dry-run protection
displayAlert("Source Empty");
}
} else {
pumpOFF(); // Tank full
displayStatus("Tank Full");
}
} else {
pumpOFF(); // Not enough sunlight
displayStatus("Low Light");
}
Tank Level Calculation
The ultrasonic sensor measures the distance from the sensor to the water surface. If the tank is 100 cm tall and the sensor is mounted at the top:
- Tank empty: Distance reading = 100 cm → Level = 0%
- Tank half: Distance reading = 50 cm → Level = 50%
- Tank full: Distance reading = 10 cm → Level = 90%
Advanced Features
- Time-based scheduling: Add an RTC (DS3231) module to enable specific watering windows (e.g., pump only between 7 AM and 4 PM)
- Soil moisture integration: Add a soil moisture sensor to water only when the soil is dry
- SMS alerts: Use a SIM800L GSM module to send SMS alerts when the tank is full, source is empty, or a fault occurs
- Data logging: Log daily pump run time, water volume pumped, and solar generation for performance tracking
Frequently Asked Questions
Can this system work without a battery?
Yes, for a direct solar pump system, the pump runs only when sunlight is available. The Arduino can be powered through the buck converter from the same solar panel. No battery is needed. However, the pump will stop during cloud cover and the Arduino will restart when sunlight returns (programme state is lost).
What size solar panel do I need for a specific pump?
Match the panel power to the pump power with a 1.3x safety margin. A 12V 3A pump (36W) needs at least a 50W panel. A 12V 5A pump (60W) needs at least an 80W panel. Larger panels help maintain pump operation during partial cloud cover.
How do I protect against lightning?
India experiences significant lightning during monsoon season. Install a surge protector (MOV-based) on the solar panel leads and the pump power lines. Earth the solar panel frame and the controller enclosure. Do not run long exposed wires between panels and controller.
Conclusion
An Arduino-based solar water pump controller is an ideal project for Indian agriculture and home gardening. It automates irrigation, prevents water waste, and operates entirely on free solar energy. The component cost is under ₹3,000 (excluding the solar panel and pump), making it far cheaper than commercial solar pump controllers. Find Arduino boards, pumps, sensors, and all components at Zbotic’s online store.
Add comment