An Arduino-based Smart Greenhouse System designed to measure soil moisture, temperature, and humidity using multiple sensors. All sensor readings are displayed in real time on a 16×2 LCD display .
The system automatically controls a water pump, foggers, and an exhaust fan based on sensor values to maintain a healthy environment for plant growth.
Note: This project was completed as our First-Year, First-Semester Final Group Project, focusing on embedded systems, sensor integration, and automation control using Arduino.
- ✅ Measures soil moisture, temperature, and humidity
- ✅ Real-time display through a 16×2 LCD
- ✅ Automatic control of:
- 🌧️ Water Pump
- 💨 Exhaust Fan
- 💦 Foggers
- ✅ Fully offline system
- ✅ Simple, low-cost, and expandable
| Component | Quantity | Purpose |
|---|---|---|
| Arduino Uno | 1 | Main controller |
| Soil Moisture Sensor | 1 | Reads soil wetness level |
| DHT11/DHT22 Sensor | 1 | Measures temperature & humidity |
| 16×2 LCD Display (I2C) | 1 | Shows real-time readings |
| Relay Module | 3 | Controls pump, fan, and foggers |
| Water Pump | 2 | Automated irrigation |
| Foggers | 1 or more | Humidity control |
| Exhaust Fan | 1 | Ventilation |
| Jumper Wires & Breadboard | — | Circuit connections |
This project uses the following Arduino libraries:
| Library | Version | Purpose | Installation |
|---|---|---|---|
| DHT sensor library | Latest | Read temperature and humidity from DHT22 sensor | Search "DHT sensor library" by Adafruit in Library Manager |
| LiquidCrystal_I2C | Latest | Control multiple I2C LCD displays | Search "LiquidCrystal I2C" by Frank de Brabander in Library Manager |
| Wire | Built-in | I2C communication protocol | Pre-installed with Arduino IDE |
- DHT Sensor Library: GitHub - Adafruit DHT
- LiquidCrystal I2C: GitHub - LiquidCrystal_I2C
- Sensors measure soil moisture, temperature, and humidity.
- Values are processed by the Arduino.
- LCD displays real-time environmental readings.
- If values exceed set thresholds:
- Water pump activates for dry soil
- Foggers activate for low humidity
- Exhaust fan activates for high temperature
- System loops continuously, updating every second.
For detailed project documentation, circuit diagrams, component datasheets, and additional resources, visit our comprehensive documentation:
📄 View Full Documentation on Google Drive
| System Architecture | System Architecture Diagram |
|---|---|
![]() |
![]() |
You can customize the automation thresholds by modifying these values in the code:
// Soil Moisture Threshold (adjust based on your sensor)
int soilThreshold = 500; // Lower value = wetter soil
// Temperature Threshold (°C)
int tempThreshold = 30;
// Humidity Threshold (%)
int humidityThreshold = 60;Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- A.D Rajasinghe
- P. Pratheep
- D.N.S Samarawickrama
- A.M.P.L Bandara
- L.S.N Perera
- M.J.M Jahaas
This project is open-source under the MIT License. You are free to use, modify, and distribute with proper credit.
For questions or suggestions, feel free to reach out:
- GitHub: @pathumzcode
- Email: [email protected]
- Thanks to our instructors for guidance throughout this project
- Arduino community for documentation and support
- All open-source library contributors
⭐ If you found this project helpful, please give it a star! ⭐





