Arduino-Based Automated Plant Watering System
Budget: $10 – $30 USD
I'm working on a conceptual design project for an embedded system as an assignment. The system I have chosen and defined is an Automatic Plant Watering System based on the Arduino Uno R3 microcontroller platform. The goal of this project is to design a system that can automatically monitor conditions relevant to a plant's watering needs, automate watering, and provide user interaction and feedback.
I need:
For this project, I need to include and document the design for a system using the following components and functionalities:
Hardware Components:
- An **Arduino Uno R3** board (main processing unit).
- A **Soil Moisture Sensor** (e.g., YL-69) to measure soil moisture level (connected to **analog A0**).
- An **Ultrasonic Distance Sensor (HC-SR04)** to measure water reservoir level (connected to **digital D8/D9** for TRIG/ECHO).
- A **Potentiometer** for an adjustable input (e.g., moisture threshold), connected to **analog A1**.
- **Two Push Buttons** for user commands. Button 1 connects to **digital D2 (External Interrupt INT0)** for critical/fast actions. Button 2 connects to **digital D12** for other commands.
- A **16x2 LCD Display with I2C module** to show status, readings, and alerts (connected using **I2C A4/A5**).
- A **Relay Module (1-channel)** to switch pump power (controlled by **digital D10**).
- A **DC Pump** (waters plants, uses separate power supply controlled via Relay).
- A **Buzzer** for audio alerts (e.g., low water), connected to **digital D11**.
- **Red and Green LED Diodes** for visual status (e.g., D5, D6), require resistors.
- A **Breadboard** for connections.
- Power connections (Arduino power, separate pump power).
System Functionality and Logic:
- Continuously read soil moisture (A0) and water level (D8/D9).
- Process sensor data and user input (buttons D2/D12, potentiometer A1).
- Implement automatic watering: activate pump (D10) if soil moisture is below a threshold (from potentiometer) AND sufficient water is available (from ultrasonic).
- Detect low water level and trigger audio (Buzzer D11) and/or visual (LEDs D5/D6) alerts.
- Handle manual user commands via buttons, specifically implementing **external interrupt handling for the button on D2** for rapid response actions.
- Display relevant information (readings, status, alerts) on the LCD (A4/A5).
- Provide visual status feedback using LEDs (D5/D6).
- System logic manages different operating states (watering, idle, alerts, manual, etc.).
Only need it done on a simulator line tinkercad
I need:
For this project, I need to include and document the design for a system using the following components and functionalities:
Hardware Components:
- An **Arduino Uno R3** board (main processing unit).
- A **Soil Moisture Sensor** (e.g., YL-69) to measure soil moisture level (connected to **analog A0**).
- An **Ultrasonic Distance Sensor (HC-SR04)** to measure water reservoir level (connected to **digital D8/D9** for TRIG/ECHO).
- A **Potentiometer** for an adjustable input (e.g., moisture threshold), connected to **analog A1**.
- **Two Push Buttons** for user commands. Button 1 connects to **digital D2 (External Interrupt INT0)** for critical/fast actions. Button 2 connects to **digital D12** for other commands.
- A **16x2 LCD Display with I2C module** to show status, readings, and alerts (connected using **I2C A4/A5**).
- A **Relay Module (1-channel)** to switch pump power (controlled by **digital D10**).
- A **DC Pump** (waters plants, uses separate power supply controlled via Relay).
- A **Buzzer** for audio alerts (e.g., low water), connected to **digital D11**.
- **Red and Green LED Diodes** for visual status (e.g., D5, D6), require resistors.
- A **Breadboard** for connections.
- Power connections (Arduino power, separate pump power).
System Functionality and Logic:
- Continuously read soil moisture (A0) and water level (D8/D9).
- Process sensor data and user input (buttons D2/D12, potentiometer A1).
- Implement automatic watering: activate pump (D10) if soil moisture is below a threshold (from potentiometer) AND sufficient water is available (from ultrasonic).
- Detect low water level and trigger audio (Buzzer D11) and/or visual (LEDs D5/D6) alerts.
- Handle manual user commands via buttons, specifically implementing **external interrupt handling for the button on D2** for rapid response actions.
- Display relevant information (readings, status, alerts) on the LCD (A4/A5).
- Provide visual status feedback using LEDs (D5/D6).
- System logic manages different operating states (watering, idle, alerts, manual, etc.).
Only need it done on a simulator line tinkercad