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:23] – paul-christian.thoma | 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 ===== | ===== 1. Introduction ===== | ||
Line 9: | Line 8: | ||
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 | ||
- | | Component | + | |
- | | ------------------------------------------ | --------------------------------------------------------------------------- | + | |
- | | **ESP32-S3 | + | |
+ | ===== 2.1 Materials ===== | ||
+ | |||
+ | |||
+ | | **Component** | ||
+ | | **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 107: | 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.1753187014.txt.gz · Last modified: 2025/07/22 14:23 by paul-christian.thoma