Hydroponic
Pot
Arduino
WiFi
Garden
Domotic
Travel Gear Design Contest

40
1
Welcome to the future of home gardening with the Smart Wi‑Fi Hydroponic Pot! This project combines the precision of Arduino electronics, the connectivity of the ESP8266, and the elegance of a Python interface, allowing you to grow your plants smartly and carefully, wherever you are.
🌱 System Overview
The system’s brain is an Arduino UNO, constantly reading water level in the reservoir via an ultrasonic sensor (HC‑SR04) and substrate (or soil, in hybrid mode) moisture with a capacitive moisture sensor. These readings are displayed in real time on a compact OLED screen, giving instant feedback on system status.
The UNO also controls a water pump via a relay module, turning it on/off based on customizable watering cycles or manual commands. The true magic happens with the ESP8266, which connects to your home Wi‑Fi, receives sensor data from the UNO, and exposes everything through a simple web server.
A desktop application built in Python with Tkinter completes the setup, offering an intuitive graphical interface. From this app, you can:
- Monitor water level and soil moisture in real time.
- Control the pump and view active watering cycles.
- Set custom schedules (pump-on duration and interval between runs).
- Manually turn the pump on or off.
- Maintain a small local database of your plants, including name, planting date, fertilizer type, and preferred watering cycle.
- Export/import the database in CSV format.
This hydroponic pot isn’t just an automated watering system—it’s a complete platform for learning and experimentation, making hydroponic gardening accessible, efficient, and fun.
🔧 Assembly & Configuration Guide
Here’s how to set up and configure your Smart Wi‑Fi Hydroponic Pot.
Required Components
- Arduino UNO (or ATmega328P-compatible board)
- ESP8266 module (e.g. NodeMCU, Wemos D1 Mini)
- Ultrasonic water-level sensor (HC‑SR04)
- Capacitive soil-moisture sensor (analog)
- 1‑channel 5 V relay module
- SSD1306 128×64 I²C OLED display
- Low-voltage water pump (5 V or 12 V, depending on relay & power supply)
- Separate power supply for the pump (if required)
- Jumper wires (male–male, male–female), ideally 24 AWG
- Breadboard (optional, for prototyping)
- Pot or container for hydroponic system
- Water tubing
- Soldering iron & solder (optional, for permanent connections)
- Small screwdriver
Phase 1: Prepare Software & Scripts
Arduino UNO:
- Open Arduino IDE.
- In File > Preferences, ensure the ESP8266 board URL is added, if planning to program ESP8266 via the IDE.
- Install these libraries via Sketch > Include Library > Manage Libraries:
- Adafruit GFX
- Adafruit SSD1306
- NewPing (by Tim Eckel)
- Open Codice per Arduino uno.txt, copy it into a new sketch.
- Adjust calibration constants: DISTANCE_EMPTY_CM, DISTANCE_FULL_CM, MOISTURE_DRY_ADC, MOISTURE_WET_ADC once sensors are placed.
- Plug UNO via USB, select correct board/port, and upload the sketch.
ESP8266:
- In IDE (if using it), install: ESP8266WiFi, ESP8266WebServer, ArduinoJson.
- Open codice per ESP.txt, paste into a new sketch.
- Update Wi‑Fi credentials (replace sample SSID/password with yours).
Connect ESP8266 (you may need CH340 or CP210x USB driver), select board (e.g. NodeMCU 1.0), then upload.
Tip: Disconnect RX/TX between UNO/ESP during upload, or use a separate USB-to-serial adapter.
Python (GUI App):
- Ensure Python is installed.
- From terminal: pip install requests (Tkinter is usually included).
- Save Python.txt as hydroponics_gui.py (don’t run yet).
Phase 2: Hardware Assembly
Use 24 AWG wire for solid final wiring or jumper wires for prototyping. Always disconnect power before making changes.
Serial Link (UNO ↔ ESP8266):
- ESP TX → UNO RX (D0)
- ESP RX → UNO TX (D1)
- ESP GND → UNO GND
⚠️ Using D0/D1 disables Serial Monitor on UNO after ESP is connected.
OLED (SSD1306 I²C) → Arduino:
- VCC → 3.3 V or 5 V (check module specs)
- GND → GND
- SDA → A4
- SCL → A5
HC‑SR04 Sensor → Arduino:
- VCC → 5 V
- TRIG → D9
- ECHO → D10
- GND → GND
Soil‑Moisture Sensor → Arduino:
- VCC → 5 V (or 3.3 V)
- SIG/AOUT → A0
- GND → GND
Relay Module + Pump → Arduino:
- Relay VCC → 5 V Arduino
- Relay IN → D8
- Relay GND → GND Arduino
- Pump’s positive lead → Relay COM → Relay OFF → Power supply +
- Pump’s negative → Power supply –
- Common GND between dedicated line and pump supply is crucial.
Note: If relay is triggered by LOW instead of HIGH, adjust logic in your sketch accordingly.
Phase 3: Power-Up & Testing
Sensor Placement:
- Position HC‑SR04 at maximum water level, facing down.
- Insert moisture sensor into substrate.
- Install pump in reservoir, connect tubing.
Power On:
- UNO → PC USB or 5 V supply.
- ESP8266 (if separate) via USB.
- Water Pump 5 V supply dedicate line.
- Pump power switched on.
Initial Check:
- OLED should display “Hydroponics UNO,” sensor readings, and “IP: N/A.”
- Pump should be OFF by default.
ESP8266 & Wi‑Fi:
- Open serial monitor on ESP (115200 baud) to check Wi‑Fi connection and IP address (e.g. 192.168.1.xx).
- UNO receives this IP via serial, which then appears on OLED.
Python GUI Test:
- Run hydroponics_gui.py.
- Set ESP IP (either at startup or via Configuration menu).
- Interface should display live sensor data.
Control Tests:
- Use “TURN ON Pump” / “TURN OFF Pump” buttons; verify pump and interface/OLED respond.
- Set a watering cycle (e.g. 1 min ON, every 5 min), push to ESP/UNO. Confirm acknowledgement messages and correct operation.
Calibration:
- Measure empty/full reservoir distances and update constants in UNO sketch.
- Log raw moisture values via temporary Serial.println and adjust wet/dry ADC constants accordingly. Re-upload UNO code.
Phase 4: Managing Plant Data (Python GUI)
- Fill in “Plant Name,” “Planting Date,” “Fertilizer,” and cycle fields.
- Click Add to Local DB to save.
- Use Load & Apply to send a stored cycle to UNO.
- Use Remove Selected to delete a DB entry.
- Export/Import your plant database via CSV.
Wiring Assembly Tips - To optimize the connection between the board and the other components, I recommend creating two wire bundles:
- One for power (you only need positive and neutral, but for safety and possible future expansions, I included an extra pair of wires)
- One for sensors and relay connections
- For the power supply, connect the pump using a dedicated line, and add the two wires that go to the relay.
- To keep everything more stable and secure, use electrical tape and heat shrink tubing.
🛠 Troubleshooting
Issue | Check These |
---|---|
No OLED data or IP: N/A | I²C wiring (SDA, SCL, VCC, GND); UNO–ESP serial wiring |
ESP won’t connect to Wi‑Fi | SSID/password in ESP sketch; ESP serial monitor errors |
Incorrect sensor readings | Sensor wiring; calibration process |
Pump not activating | Relay wiring (IN/VCC/GND), pump wiring (COM/NO); listen for relay click; adjust control logic (HIGH/LOW) |
GUI can’t connect or update | ESP Wi‑Fi connection & valid IP; correct IP in Python app; firewall settings |
Congratulations! Your smart hydroponic pot is now assembled and configured. You can monitor and control your system effortlessly—happy growing!
GitHub link: https://github.com/VjAlbert/Hydroponics-smart-vase
Bill of materials
- NameQuantityNotes
- 1water pumping kit for arduino Automatic irrigation1https://www.aliexpress.us/item/1005008534176033.html?spm=a2g0o.order_list.order_list_main.15.2aa63696ot62gP&gatewayAdapt=4itemAdapt
- 20.96" Inch OLED Display Screen Module I2C IIC 128x64 SS - D - 1306 3.3V1https://www.aliexpress.com/item/1005006700828250.html?spm=a2g0o.order_list.order_list_main.10.2aa63696ot62gP&gatewayAdapt=glo2ita
- 3Ultrasonic sensor HC-SR04 HCSR041https://www.aliexpress.com/item/1005005467178145.html?spm=a2g0o.order_list.order_list_main.20.2aa63696ot62gP
- 41DHT22 Digital Temperature and Humidity Sensor AM23021https://www.aliexpress.com/item/1005006964237062.html?spm=a2g0o.cart.0.0.3f5438daS6sXQC&mp=1&pdp_npi=5%40dis%21GBP%21GBP%203.91%21GBP%203.91%21%21GBP%203.91%21%21%21%402103894417496498688464091e9304%2112000038876639455%21ct%21UK%21137039880%21%211%210
Originality of the Model
The author declares that this work is their personally original model
This model is licensed under the following terms:
This work is licensed under a Standard Digital File License with strict non-commercial, personal-use restrictions
Digital files have a strict non-commercial, personal use only license.
You may not share, sublicense, sell, rent, host, transfer, or distribute the digital file or 3D printed versions of this model, nor any derivative works (including remixes) in either digital or physical format.
You may not host these files on other digital platforms, online stores, or cloud repositories
The objects may not be used in any way whatsoever in which you charge money, collect fees.
Models(19)
- Arduino Head 1.stlDesigner
142.46 KB
2025-06-25
- Arduino Head 2.stlDesigner
229.09 KB
2025-06-25
- Arduino Matherboard lock.stlDesigner
1.45 KB
2025-06-25
- cover pot.stlDesigner
249.01 KB
2025-06-25
- Display cover.stlDesigner
2.43 KB
2025-06-25
- Hydro 1.stlDesigner
1.13 MB
2025-06-25
- Hydro 2.stlDesigner
1.05 MB
2025-06-25
- Hydro 3.stlDesigner
1.03 MB
2025-06-25
- Pot.stlDesigner
68.25 KB
2025-06-25
- Sensor.stlDesigner
2.23 KB
2025-06-25
- stopper.stlDesigner
43.05 KB
2025-06-25
- Water Distributor.stlDesigner
1.02 MB
2025-06-25
- Elettric Pipe.stlDesigner
121.08 KB
2025-06-25
- Hydroponic Pot water Tube (7).stlDesigner
8.68 KB
2025-06-25
- Hydroponic Pot water Tube (6).stlDesigner
43.05 KB
2025-06-25
- Hydroponic Pot water Tube (5).stlDesigner
10.24 KB
2025-06-25
- Hydroponic Pot water Tube (4).stlDesigner
8.68 KB
2025-06-25
- TPU Components.3mfDesigner
8.13 MB
2025-06-24
- Hydroponic Arduino Pot.3mfDesigner
9.31 MB
2025-06-24
View all(19)