Skip to main content
Version: ACS CC

Automatic Irrigation System

The project consists of an intelligent irrigation system for plants that constantly monitors essential parameters for optimal irrigation.

info

Author: Murarescu Carmen-Maria
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-CarmenMaria17

Description

The project consists of an intelligent irrigation system for plants that constantly monitors three essential parameters for optimal irrigation:

Soil humidity - determines when plants need water
Reservoir level - checks water availability for irrigation
Light intensity - prevents irrigation during periods of strong light

When soil moisture drops below a preset threshold, the system checks if the reservoir contains enough water and if the light intensity is suitable. If all conditions are met, it automatically activates a mini-pump that irrigates the plants. The system includes a display to show levels (low, medium, high) for the 3 parameters.

Motivation

I chose to develop this automatic irrigation system because I wanted to solve a practical problem many plant owners face, that being the inconsistent watering due to busy schedules or forgetfulness. Second, this project allows me to apply embedded systems knowledge in a hands-on way, working with multiple sensors and including a display for easy reading of the parameters.

Architecture

The main architectural components are:

  • ON/OFF Buttons - for starting and shutting down the irrigation system

  • RTC Clock with Battery - a clock that keeps the microcontroller sleeping, it wakes it at intervals of 10 minutes and completes 20 measurements for accuracy and then puts it back to sleep

  • Humidity Sensor & Photoresistor & Float Sensor - measures the soil humidity and if it is too low, the light is not too strong and there is water in the reservoir then the realy module starts the water pump and it waters the plant

  • Display - shows all the parameters and messages for the start of the process etc.

Architectural Diagram

alt text

Log

Week 5 - 11 May

  • will do

Week 12 - 18 May

  • will do

Week 19 - 25 May

  • will do

Hardware

Sensors

  • DHT22 Humidity Sensor: A precision capacitive humidity sensor with digital output that measures soil moisture.

  • Photoresistor: A light-dependent resistor that exhibits variable resistance inversely proportional to light intensity, enabling the system to monitor ambient light conditions for optimal plant growth.

  • Float Sensor: A mechanical sensor triggers when water levels reach predefined thresholds, preventing both reservoir depletion and overflow conditions.

Control and Timing Components

  • RTC (Real-Time Clock) Module: Incorporates a DS3231 enabling programmed sleep cycles for the microcontrollers via interrupt-based wakeup, significantly reducing power consumption.

  • Push Buttons: Two tactile momentary switches providing digital input signals for system control functions including power toggling.

Actuation

  • Relay Module: A 5V relay that provides safe switching of the higher-current water pump circuit.

  • Water Pump: A pump capable of delivering appropriate water volume for plant irrigation.

Display

  • ST7735 LCD Display: A 1.8" TFT color display with SPI interface and embedded controller, providing visual representation of system status, sensor readings, and operational modes.

Schematics

alt text

Bill of Materials

DeviceUsagePrice
2x Raspberry Pi Pico WThe microcontroller35 RON
2x ButtonsON/OFF Buttons8 RON
Humidity Sensor DHT22Soil Humidity Measurement23 RON
PhotoresistorLight Measurement2 RON
!!!Float SensorChecks Water Level20 RON
RTC Clock with BatterySleep Mode for MCU20 RON
Relay ModuleControls the Water Pump5 RON
Water PumpWaters the Plant16 RON
LCD Screen ST7735Displays the measurements28 RON
Power Source - 5VDisplays the measurements5 RON
[Power Source (Battery Support and Battery) - 12V]Poweres the Water Pump15 RON
[Others (wires, breadboards, pins etc)]Used for connections10 RON

Software

LibraryDescriptionUsage
embassy-executorAsync/await runtime for embedded systemsProvides the core async runtime for concurrent task execution
embassy-timeTime handling for embedded systemsManages timers, delays, and time-related operations
embassy-rpRaspberry Pi Pico for EmbassyHardware abstraction layer for RP2040 microcontroller with GPIO, I2C, SPI support
embedded-halHardware abstraction layer traitsCore traits for peripheral access
dht-sensorDHT22 temperature/humidity sensor driverProvides interface for DHT22 soil humidity measurements
embassy-rp::adcADC module for Embassy RPReads analog values from photoresistor for light measurement
ds323xDS3231 RTC driverManages the real-time clock with alarm functionality for sleep mode
st7735-lcdST7735 display driverControls the ST7735 LCD screen
embedded-graphicsgraphics libraryDrawing routines for text and graphics on the display
embassy-rp::gpioGPIO module for Embassy RPControls the float sensor, relay, buttons, and other digital I/O
  1. Documentatie MCU
  2. Embassy Documentation
  3. Embassy-RP Crate Docs
  4. Embassy GitHub Repository