User Tools

Site Tools


amc:ss2025:group-f:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
amc:ss2025:group-f:start [2025/07/22 14:14] – created paul-christian.thomaamc:ss2025:group-f:start [2025/07/24 09:07] (current) elham.mohammadi
Line 1: Line 1:
-Sjajsjasjsjs+======  Automated Plant Watering System with MQTT and ESP32-S3 ====== 
 +Paul-Christian Thoma(32436)-Elham Mohammadi(32475)-Deniz-Zeynep Adem(33784) 
 + 
 + ===== 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. 
 + 
 +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: 
 + 
 +**Sensor Node:** Measures soil moisture and publishes data to an MQTT broker. 
 + 
 +**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. 
 + 
 + 
 +{{ :amc:ss2025:group-f:c24bef46-3e98-49e7-a7a7-43a95f6fb40a.jpeg?direct&400 |}} 
 + 
 + 
 + ====== 2. Materials and Methods ====== 
 + 
 + 
 +=====  2.1 Materials ===== 
 + 
 + 
 +| **Component**                              | **Description**                                                             | 
 +| **ESP32-S3**                               | Microcontroller with built-in Wi-Fi used for both sensor and actuator nodes | 
 +| **Capacitive Soil Moisture Sensor**        | Provides analog output corresponding to soil moisture                       | 
 +| **DFRobot Peristaltic Pump (DFR0523)**     | Waters the plant when triggered                                             | 
 +| **2-Coil Latching Relay (HF0D2/005-S-L2)** | Used to control the pump with minimal power consumption                     | 
 +| **Flexible PVC Tubing**                    | Connects pump to plant pot and water source                                 | 
 +| **LED and resistor (optional)**            | Indicates system status (e.g., dry soil)                                    | 
 +| **External Power Supply**                  | Powers the pump and relay (e.g., 5V/12V DC adapter)                         | 
 + 
 + 
 + ==== 2.2 Software and Tools ==== 
 + 
 +  * **Arduino IDE**: For ESP32 programming  
 +  * **MQTT Broker (HiveMQ Public Broker)**: For communication between devices 
 +  * **Node-RED (optional)**: For visualization, control, or automation 
 +  * **Python (optional)**: For logic and notifications 
 +  * **Telegram Bot (optional)**: Sends alerts to user 
 +  * **Power Profiler Kit (optional)**: For measuring energy consumption 
 + 
 + 
 +==== 2.3 System Overview ==== 
 + 
 + 
 +The system operates in two parts: 
 + 
 + 
 + **Sensor Node (ESP32-S3 + Soil Sensor)** 
 + 
 +  * Reads analog soil moisture value using GPIO35. 
 +  * Publishes sensor data periodically to MQTT topic `plant/soilMoisture`. 
 +  * Locally lights up LED if moisture is below threshold. 
 +  * Could optionally be extended with temperature/humidity sensors. 
 + 
 + 
 + **Actuator Node (ESP32-S3 + Latching Relay + Pump)** 
 + 
 +  * Unordered List ItemSubscribes to MQTT topic `plant/waterCommand`. 
 +  * Activates the peristaltic pump via latching relay when commanded. 
 +  * Could publish status back (e.g., `plant/pumpStatus`) for monitoring. 
 + 
 + 
 + 
 + ===== 3. Results ===== 
 + 
 + 
 +===  3.1 Code Overview === 
 + 
 + 
 + **Sensor Node Highlights:** 
 + 
 +  * Unordered List ItemUses `analogRead()` to read GPIO35. 
 +  * Publishes moisture readings every 5 seconds. 
 +  * LED indicates dryness when value > threshold (e.g., 2500). 
 + 
 + **Actuator Node Highlights:** 
 + 
 +  * Unordered List ItemSubscribes to MQTT command `plant/waterCommand`. 
 +  * 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/soilMoisture` – Publishes sensor readings. 
 +  * `plant/waterCommand` – Accepts values `"ON"` or `"OFF"`. 
 +  * `plant/pumpStatus` – (Optional) Publishes `"WATERING"` or `"IDLE"`. 
 + 
 + **Optional Python Logic:** 
 +  * Subscribes to `plant/soilMoisture` 
 +  * If value > 2800 → publishes `"ON"` to `plant/waterCommand` 
 +  * Sends email or Telegram alert 
 + 
 +===  3.2 Testing and Observations === 
 + 
 +  * In dry air, soil moisture value > 3300 
 +  * Wet soil: 1800–2000 
 +  * Saturated soil (in water): < 1700 
 + 
 +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. 
 + 
 +Key advantages: 
 + 
 +  * **Low power**: Latching relay prevents continuous power usage 
 +  * **Remote access**: MQTT allows external control or monitoring 
 +  * **Extendibility**: Easily extendable with humidity sensors, temperature sensors, water tank monitoring, etc. 
 + 
 + === 4.1 Improvements and Future Work === 
 + 
 + 
 + 
 +=====  5. Media and Demonstration ===== 
 + 
 +--- 
 + 
 + ====== References ====== 
 + 
 + 
 + 
 + 
 +-
amc/ss2025/group-f/start.1753186470.txt.gz · Last modified: 2025/07/22 14:14 by paul-christian.thoma