This project aims to develop an automated water irrigation system that can schedule irrigation times and control water pumps via a user-friendly interface provided by a Nextion Touch LCD. The system is designed for agricultural applications where precise control over irrigation is crucial for optimizing water usage and enhancing crop growth.
Components Used in the Project:
Arduino UNO: The main microcontroller that manages the entire system.
Nextion Touch LCD: A touchscreen display for user interaction, allowing easy scheduling and control.
Relay Modules: These are used to switch the water pumps on and off based on user settings.
Water Pumps: To irrigate the crops.
Water Level Sensors (optional): To monitor water levels in the storage tank and prevent dry running of pumps.
Power Supply: Suitable power supply for the Arduino and pumps.
Connecting Wires: For wiring connections between components.
Breadboard: For prototyping the circuit.
Working Principle:
The water irrigation scheduling and pump control system operates based on user-defined parameters set through the Nextion Touch LCD. Here’s a breakdown of the working principle:
- User Interface: The user interacts with the system through the Nextion Touch LCD, which allows them to set irrigation schedules and manually control the pumps. The interface displays options for scheduling times, durations, and current pump status.
- Input Processing: The Arduino UNO continuously monitors inputs from the LCD. When a user sets a schedule or changes a pump’s status, this input is processed by the Arduino.
- Control Logic:
- The Arduino checks the current time against the scheduled irrigation times. If the current time matches a scheduled time, the corresponding relay is activated, turning on the water pump.
- If the user manually overrides the schedule, the Arduino can directly activate or deactivate the pumps based on the user’s input.
- If water level sensors are included, the Arduino checks their status to ensure the pump does not operate when the water level is too low, preventing damage to the pump.
- Output Control: The relay modules receive signals from the Arduino to either activate or deactivate the pumps. The status is also reflected back to the Nextion LCD, providing real-time feedback to the user.
Circuit Diagram:
Code:
#include <Nextion.h>
NexButton buttonStart = NexButton(0, 1, "bStart"); // Button to start irrigation
NexButton buttonStop = NexButton(0, 2, "bStop"); // Button to stop irrigation
NexText textStatus = NexText(0, 3, "tStatus"); // Text field to show status
const int relayPin = 7; // Pin connected to the relay
int irrigationTime = 0; // Variable to hold irrigation time in minutes
bool isIrrigationActive = false;
void setup() {
Serial.begin(9600);
buttonStart.attachPush(irrigationStart);
buttonStop.attachPush(irrigationStop);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // Ensure pump is off initially
textStatus.setText("System Ready");
}
Applications:
Agriculture: Automated irrigation systems for crops to optimize water usage, ensuring plants receive the right amount of water without manual intervention.
Gardening: Home gardeners can use the system to maintain their gardens, ensuring that plants are watered efficiently.
Greenhouses: Monitoring and controlling irrigation in controlled environments to promote optimal growth conditions.
Landscape Maintenance: Efficiently managing water resources for lawns, parks, and public spaces.
Research: Used in agricultural studies to monitor the effects of different irrigation schedules on crop yields.
Conclusion:
The water irrigation scheduling and pump control system using Nextion Touch LCD, Arduino UNO, and relay modules offers an efficient, automated solution for managing irrigation in agricultural settings. With its user-friendly interface and customizable features, this project can significantly enhance water management, reduce wastage, and improve crop yields. Future improvements could include remote control capabilities via Wi-Fi or integrating sensors for soil moisture to automate irrigation based on real-time data.