

Automatic Watering System
The Automatic Watering System is a smart IoT solution for plant care, built using ESP8266 microcontrollers. The system provides automated plant monitoring and watering capabilities with a web-based interface for…
- Size
- 94.9 × 65.8 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 16
- Nets
- 37
- Pads
- 78
- Tracks, vias
- 10, 0
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 22 Sep 2024
- Updated
- 15 Feb 2026
Overview
Automatic Watering System is an open-source printed circuit board by EmmanuelAhonle1, from the EmmanuelAhonle1/Automatic-Watering-System repository on GitHub. It is a 2-layer board of 94.9 × 65.8 mm with 16 parts on 37 nets, routed with 10 tracks and 0 vias.
It is built around the DHT11. Its parts include 4 resistors, 3 connectors, 2 ICs and 2 diodes.
Main components
1README
README.mdAutomatic Watering System
Overview
The Automatic Watering System is a smart IoT solution for plant care, built using ESP8266 microcontrollers. The system provides automated plant monitoring and watering capabilities with a web-based interface for configuration and monitoring.
Hardware Components
- ESP8266 Microcontroller
- DHT11 Temperature and Humidity Sensor (Pin D5)
- Capacitive Soil Moisture Sensor (Pin D3)
- VEML7700 Ambient Light Sensor (Pins D4(SCL), D9(SDA))
- LC709203F Battery Level Sensor (Pins D6(SCL), D7(SDA))
- RGB Status LED (Pins D0(R), D1(G), D2(B))
- All components are defined in
Pinouts.hpp
Setup (IMPORTANT!!!)
For detailed setup instructions, check out the setup guide.
Features
1. WiFi Configuration and Management
- Captive portal for initial WiFi setup
- Automatic reconnection handling
- OTA (Over-the-Air) update support
- Access Point mode with DNS server for initial configuration
- Support for multiple network security types
2. Device Management
- Unique device naming system
- Persistent storage of device settings
- MAC address tracking
- JSON-based configuration storage
3. Sensor Integration
- Temperature and humidity monitoring
- Soil moisture level detection
- Ambient light measurement
- Battery level monitoring
- All sensor readings available through unified interface
4. Status Indication
RGB LED status indicators for:
- WiFi Connected (Blinking Blue)
- AP Mode (Solid Red)
- MySQL Server Connected (Solid Green)
- Connection Lost (Fast Red Blinking)
- Reconnecting (Purple Blinking)
5. Web Interface
Three main interfaces:
-
WiFi Configuration (
/wifi_config/)- Network scanning
- Connection management
- Status display
-
User Authentication (
/intro_login/)- User login
- New user registration
- Session management
-
Plant Registration (
/plant_registration/)- Plant node configuration
- Species selection
- Customizable care parameters
Software Architecture
Core Components
-
WiFi Manager (
wifi_manager.hpp,wifi_manager.cpp)- Handles all network connectivity
- Manages access point and station modes
- Implements captive portal
- Handles OTA updates
-
Device Manager (
device_manager.hpp,device_manager.cpp)- Manages device identification
- Handles configuration storage
- Coordinates settings updates
-
Data Acquisition (
dataAcquisition.hpp,dataAcquisition.cpp)- Interfaces with all sensors
- Provides unified data reading interface
- Handles sensor calibration and thresholds
-
Database Communication (
DatabaseCommands.hpp,DatabaseCommands.cpp)- Manages API interactions
- Handles data synchronization
- Implements connection monitoring
-
RGB Status Handler (
rgb_status.hpp,rgb_status.cpp)- Manages visual feedback
- Implements state machine for status indication
- Handles LED control
Web Interface
The system provides three main web interfaces:
-
WiFi Configuration
- Network scanning and selection
- Password input
- Connection status display
-
User Authentication
- Login interface
- Registration form
- Session management
-
Plant Registration
- Plant species selection
- Watering frequency configuration
- Environmental threshold settings
Setup and Configuration
Initial Setup
- Flash the ESP8266 with the firmware
- Power on the device
- Connect to the device's AP (Format: "PlantNode-XXXX")
- Navigate to the captive portal
- Configure WiFi settings
Plant Registration
- Login or create an account
- Configure plant parameters:
- Node name
- Plant species
- Watering frequency
- Environmental thresholds
- Save configuration
API Integration
The system integrates with a REST API for:
- User authentication
- Plant node registration
- Settings synchronization
- Data logging
API endpoints are defined in dbQueryCreator.hpp and configured via config.h
Development
Requirements
- Arduino IDE or PlatformIO
- ESP8266 board support
- Required Libraries:
- ESP8266WiFi
- ESP8266WebServer
- ArduinoJson
- DHT sensor library
- VEML7700 library
- LC709203F library
- RGBLed library
Building
- Clone the repository
- Install required libraries
- Configure
config.hwith API credentials (Refer to the setup guide) - Build and flash to ESP8266
Security Features
- Secure WiFi configuration
- Password protection
- Session management
- API authentication
- OTA update support
Troubleshooting
LED Status Indicators
- Solid Red: AP Mode (Initial setup required)
- Blinking Blue: Connected to WiFi
- Solid Green: Fully connected (WiFi + Database)
- Fast Red Blinking: Connection lost
- Purple Blinking: Attempting to reconnect
Common Issues
-
Connection Failures
- Check WiFi credentials
- Verify API availability
- Monitor LED status
-
Sensor Readings
- Verify sensor connections
- Check pin configurations
- Validate sensor thresholds
Contributing
- Fork the repository
- Create a feature branch
- Submit a pull request
License
Authors
Emmanuel Ahonle
Parts
16| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 330 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1, R2, R3 |
| 1 | 1.2k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R4 |
| 1 | 113990105 | NodeMCU_ESP8266:SEEED_113990105 | A1 |
| 1 | 1N5817 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D2 |
| 1 | 3.7V 3000mA LiPo Battery | Connector_JST:JST_GH_SM02B-GHS-TB_1x02-1MP_P1.25mm_Horizontal | BT1 |
| 1 | Ambient Light Sensor | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Vertical | J2 |
| 1 | DHT11 | Sensor:Aosong_DHT11_5.5x12.0_P2.54mm | U1 |
| 1 | LC709203 Board | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J1 |
| 1 | STATUS_LED | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | D1 |
| 1 | Soil Moisture Sensor | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J5 |
| 1 | Solar_Cells | Connector_PinSocket_1.00mm:PinSocket_1x02_P1.00mm_Vertical_SMD_Pin1Left | SC1 |
| 1 | TP4056 Li-Po Battery Charger Module | Power Management:TP4056 1A Li-ion Battery Charging Module | U3 |
The 14 most common of 16 parts.
Similar boards
- 2 layers96.6 × 82.8 mm

- 2 layers100 × 50 mm

Conveyor belt pcb
lansidev/conveyor-belt
Miniature 3D printed conveyor belt for simulation and fun working with sensors, all controllable with Raspberry Pi
22 parts9MIT - 2 layers93 × 20 mm

- 2 layers

OpenMQTTGatewayPCB
ebrithiljonas/OMG_PCB
All in One PCB for the OpenMQTTGateway Project
36 parts7GPL-3.0 - 2 layers62 × 19.3 mm

SniffingTrinket
GeorgK/SniffingTrinket
A room climate monitor using the Adafruit Trinket Pro
23 parts6GPL-3.0 - 2 layers

Arduino relay
bhaskar9980/Guardian
Guardian is an advanced, fully automated hydroponics system designed to optimize plant growth and maximize yield.
58 parts5MIT - 2 layers100 × 43.5 mm

Firefly
Twistx77/Firefly
Open WIFI-enabled RGB lamp with temperature, humidity, suspended air particles and eCO2 sensors.
33 parts5GPL-3.0 - 2 layers30.5 × 77.5 mm

Proyecto sensor temperatura
unla-investigacion-desarrollo/ecosistema-iot
Antes de desarrollar el sistema final, realizamos una etapa de exploración donde investigamos y experimentamos con las siguientes tecnologías:
8 parts5
Questions
How big is the Automatic Watering System PCB?
It measures 94.9 × 65.8 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Automatic Watering System use?
16 parts, built around the DHT11. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Automatic Watering System KiCad files?
From the EmmanuelAhonle1/Automatic-Watering-System repository on GitHub, at the commit this page was made from: the board is hardware/Automatic Watering System/Automatic Watering System.kicad_pcb and its schematic hardware/Automatic Watering System/Automatic Watering System.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Automatic Watering System design in my own project?
Its repository states no licence, so its author keeps all rights: ask EmmanuelAhonle1 before reusing the design.