This project is an automated irrigation system powered by an ESP32
microcontroller.
It uses sensors to monitor soil moisture and water levels, controls a pump for irrigation, and logs information on an LCD display.
The system ensures efficient water usage while minimizing human intervention.
- Soil & Water Monitoring: Reads data from moisture and water level sensors.
- Automated Irrigation: Activates the pump when moisture levels drop below a threshold.
- LCD Display: Displays real-time sensor readings and warnings.
- Wi-Fi Connectivity: Uses NTP for time synchronization and potential remote monitoring.
- Energy Efficiency: Enters deep sleep mode between irrigation cycles.
- Error Handling: Provides warnings for low water levels and device initialization failures.
- ESP32 Development Board
- Soil Moisture Sensor
- Water Level Sensor
- 16x2 LCD with I2C Interface
- Water Pump 5V
- Power Supply (e.g., battery or solar panel)
- Clone the repository:
git clone https://github.com/mistersomov/IoT-AutoIrrigation
-
Install
ESP-IDF
(Espressif IoT Development Framework
): If you do not have theESP-IDF
Framework pre-installed, follow the installation instructions on the official documentation ESP-IDF Get Started. Otherwise skip this step. -
Configure Wi-Fi credentials: While in the root directory of the project, execute the command:
idf.py menuconfig
- Next,
Irrigation Configutraion
menu. - Go to
Wi-Fi
. - Enter your credentials.
- Exit with save.
Example:
After completing the “Installation” item, to build the project, run the command:
idf.py -p PORT flash monitor
Replace PORT
with your ESP32 board's USB port name. If the PORT
is not defined, the idf.py
will try to connect automatically using the available USB ports.
- Integration with cloud platforms for remote monitoring.
- Advanced scheduling based on weather data.
- Customizable thresholds via a web interface.