amc:ss2025:group-f:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
amc:ss2025:group-f:start [2025/07/22 14:22] – elham.mohammadi | amc:ss2025:group-f:start [2025/07/24 09:07] (current) – elham.mohammadi | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== | ||
+ | Paul-Christian Thoma(32436)-Elham Mohammadi(32475)-Deniz-Zeynep Adem(33784) | ||
+ | ===== 1. Introduction ===== | ||
- | # **Automated Plant Watering System with MQTT and ESP32-S3** | ||
- | |||
- | ## 1. Introduction | ||
Plants require consistent and appropriate watering to grow and remain healthy. However, in daily life, particularly during travel or vacations, it's easy to forget or be unable to water plants. Overwatering and underwatering are common issues that can damage plant health. An automated watering system that responds to soil moisture levels helps ensure optimal plant hydration while minimizing manual intervention. | Plants require consistent and appropriate watering to grow and remain healthy. However, in daily life, particularly during travel or vacations, it's easy to forget or be unable to water plants. Overwatering and underwatering are common issues that can damage plant health. An automated watering system that responds to soil moisture levels helps ensure optimal plant hydration while minimizing manual intervention. | ||
This project presents a smart plant watering system designed to operate semi-autonomously. It monitors the soil moisture and automatically activates a peristaltic pump via a latching relay to deliver water when needed. The system uses two ESP32-S3 microcontrollers connected over Wi-Fi, communicating through MQTT protocol to exchange sensor data and control messages. | This project presents a smart plant watering system designed to operate semi-autonomously. It monitors the soil moisture and automatically activates a peristaltic pump via a latching relay to deliver water when needed. The system uses two ESP32-S3 microcontrollers connected over Wi-Fi, communicating through MQTT protocol to exchange sensor data and control messages. | ||
+ | |||
The architecture is split into two subsystems: | The architecture is split into two subsystems: | ||
- | * **Sensor Node:** Measures soil moisture and publishes data to an MQTT broker. | + | **Sensor Node:** Measures soil moisture and publishes data to an MQTT broker. |
- | * **Actuator Node:** Receives watering commands via MQTT and controls the pump. | + | |
+ | **Actuator Node:** Receives watering commands via MQTT and controls the pump. | ||
Users can integrate remote notifications or dashboards via tools such as Node-RED, Telegram bots, or email alerts. | Users can integrate remote notifications or dashboards via tools such as Node-RED, Telegram bots, or email alerts. | ||
- | --- | ||
- | ## 2. Materials and Methods | + | {{ : |
+ | |||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | ===== 2.1 Materials ===== | ||
- | ### 2.1 Materials | ||
- | | Component | + | | **Component** |
- | | ------------------------------------------ | --------------------------------------------------------------------------- | + | | **ESP32-S3** |
- | | **ESP32-S3 | + | |
| **Capacitive Soil Moisture Sensor** | | **Capacitive Soil Moisture Sensor** | ||
| **DFRobot Peristaltic Pump (DFR0523)** | | **DFRobot Peristaltic Pump (DFR0523)** | ||
| **2-Coil Latching Relay (HF0D2/ | | **2-Coil Latching Relay (HF0D2/ | ||
- | | **Flexible PVC Tubing** | + | | **Flexible PVC Tubing** |
| **LED and resistor (optional)** | | **LED and resistor (optional)** | ||
| **External Power Supply** | | **External Power Supply** | ||
- | ### 2.2 Software and Tools | ||
- | * **Arduino IDE**: For ESP32 programming | + | ==== 2.2 Software |
- | * **MQTT Broker (HiveMQ Public Broker)**: For communication between devices | + | |
- | * **Node-RED (optional)**: | + | |
- | * **Python (optional)**: | + | |
- | * **Telegram Bot (optional)**: | + | |
- | * **Power Profiler Kit (optional)**: | + | |
- | --- | + | * **Arduino IDE**: For ESP32 programming |
+ | * **MQTT Broker (HiveMQ Public Broker)**: For communication between devices | ||
+ | * **Node-RED (optional)**: | ||
+ | * **Python (optional)**: | ||
+ | * **Telegram Bot (optional)**: | ||
+ | * **Power Profiler Kit (optional)**: | ||
+ | |||
+ | |||
+ | ==== 2.3 System Overview ==== | ||
- | ## 2.3 System Overview | ||
The system operates in two parts: | The system operates in two parts: | ||
- | ### **Sensor Node (ESP32-S3 + Soil Sensor)** | ||
- | * Reads analog soil moisture value using GPIO35. | + | **Sensor Node (ESP32-S3 + Soil Sensor)** |
- | * Publishes sensor data periodically to MQTT topic `plant/ | + | |
- | * Locally lights up LED if moisture is below threshold. | + | |
- | * Could optionally be extended with temperature/ | + | |
- | ### **Actuator Node (ESP32-S3 + Latching Relay + Pump)** | + | |
+ | | ||
+ | | ||
+ | | ||
- | * Subscribes to MQTT topic `plant/ | ||
- | * Activates the peristaltic pump via latching relay when commanded. | ||
- | * Could publish status back (e.g., `plant/ | ||
- | --- | + | |
- | ## 3. Results | + | * Unordered List ItemSubscribes to MQTT topic `plant/ |
+ | * Activates the peristaltic pump via latching relay when commanded. | ||
+ | * Could publish status back (e.g., `plant/ | ||
- | ### 3.1 Code Overview | ||
- | #### Sensor Node Highlights: | ||
- | * Uses `analogRead()` to read GPIO35. | + | ===== 3. Results ===== |
- | * Publishes moisture readings every 5 seconds. | + | |
- | * LED indicates dryness when value > threshold (e.g., 2500). | + | |
- | #### Actuator Node Highlights: | ||
- | * Subscribes to MQTT command `plant/ | + | === 3.1 Code Overview === |
- | * Activates one coil of the latching relay to start pump, and another to stop it. | + | |
- | * Provides quick response and avoids continuous current draw. | + | |
- | #### MQTT Topic Examples: | ||
- | * `plant/ | + | **Sensor Node Highlights: |
- | * `plant/ | + | |
- | * `plant/ | + | |
- | #### Optional Python Logic: | + | * Unordered List ItemUses `analogRead()` to read GPIO35. |
+ | * Publishes moisture readings every 5 seconds. | ||
+ | * LED indicates dryness when value > threshold (e.g., 2500). | ||
- | * Subscribes to `plant/ | + | **Actuator Node Highlights: |
- | * If value > 2800 → publishes `" | + | |
- | * Sends email or Telegram alert | + | |
- | ### 3.2 Testing | + | * Unordered List ItemSubscribes to MQTT command `plant/ |
+ | * Activates one coil of the latching relay to start pump, and another to stop it. | ||
+ | * Provides quick response and avoids continuous current draw. | ||
- | * In dry air, soil moisture value > 3300 | + | |
- | * Wet soil: 1800–2000 | + | |
- | * Saturated soil (in water): < 1700 | + | * `plant/ |
+ | * `plant/ | ||
+ | * `plant/ | ||
+ | |||
+ | | ||
+ | * Subscribes to `plant/ | ||
+ | * If value > 2800 → publishes `" | ||
+ | * Sends email or Telegram alert | ||
+ | |||
+ | === 3.2 Testing and Observations === | ||
+ | |||
+ | | ||
+ | * Wet soil: 1800–2000 | ||
+ | * Saturated soil (in water): < 1700 | ||
Pump successfully turns on when soil is dry and stops when moisture reaches target range. | Pump successfully turns on when soil is dry and stops when moisture reaches target range. | ||
- | --- | ||
- | ## 4. Discussion and Conclusion | + | |
+ | ==== | ||
This project successfully demonstrates a modular, scalable, and remotely-controllable plant watering system. By separating sensing and actuation, it allows for distributed architecture and clean integration with home automation systems. | This project successfully demonstrates a modular, scalable, and remotely-controllable plant watering system. By separating sensing and actuation, it allows for distributed architecture and clean integration with home automation systems. | ||
Line 106: | Line 116: | ||
Key advantages: | Key advantages: | ||
- | * **Low power**: Latching relay prevents continuous power usage | + | |
- | * **Remote access**: MQTT allows external control or monitoring | + | * **Remote access**: MQTT allows external control or monitoring |
- | * **Extendibility**: | + | * **Extendibility**: |
- | ### 4.1 Improvements and Future Work | + | |
- | * Add **ultrasonic water level sensor** to detect refill needs | ||
- | * Integrate **web dashboard** or **Grafana** for long-term data visualization | ||
- | * Implement **fail-safe conditions** (e.g., prevent overwatering) | ||
- | * Enable **automatic refills** using water reservoir sensors | ||
- | * Use **deep sleep** to reduce ESP32 power consumption | ||
- | --- | ||
- | ## 5. Media and Demonstration | + | ===== |
- | + | ||
- | > \[Link to demo video] | + | |
- | > Fritzing sketch of the circuit | + | |
- | > Photos of the prototype and setup | + | |
- | > Screenshot of MQTT dashboard and Telegram messages | + | |
--- | --- | ||
- | ## References | + | |
+ | |||
- | * [ESP32 Official Documentation](https:// | ||
- | * [DFRobot Peristaltic Pump Wiki](https:// | ||
- | * [HiveMQ MQTT Broker](https:// | ||
- | * [Node-RED Documentation](https:// | ||
- | * [Telegram Bot API](https:// | ||
- | * [ESP32 ADC Tutorial – Random Nerd Tutorials](https:// | ||
- | - |
amc/ss2025/group-f/start.1753186968.txt.gz · Last modified: 2025/07/22 14:22 by elham.mohammadi