Abstract
Never Dry is an open-source Internet of Things (IoT) project. Smart irrigation for Home Assistant — scientific water balance model with per-zone crop coefficients. If NeverDry is useful to you, leave a star ⭐ — it helps others find the project. It is built using Python. Key capabilities include: Knows when your garden is thirsty — tracks heat, evaporation, and rainfall in real time; irrigates only when needed; Each plant gets its own schedule — 10 plant profiles (lawn, citrus, succulents, roses, ...) with seasonal variation; NeverDry knows your lawn drinks more in July than your lavender ever will; Same plants, different spot — a bed shaded by the house from 14:00 doesn't drink like the one baking against a south-facing wall; set each zone's exposure and NeverDry scales its water accordingly, all season long. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.
1. Introduction
If NeverDry is useful to you, leave a star ⭐ — it helps others find the project.
NeverDry tracks how much water your soil has lost to heat and wind, and how much it got back from rain. When the deficit crosses your threshold, it opens the valve for exactly the right amount of time. No fixed timers. No guessing. 1 mm of deficit = 1 liter per m² of water needed.
If a valve stops responding, NeverDry keeps trying — six attempts, with a growing pause between them, because a radio hiccup is not a broken valve — and only then blocks that zone and shows a warning on your dashboard. Three independent mechanisms make sure water can't run indefinitely — hardware timeout, software watchdog, and a per-valve state machine that remembers what happened.
2. Objective
Smart irrigation for Home Assistant — scientific water balance model with per-zone crop coefficients
This project demonstrates how Python can be applied to a real-world Internet of Things (IoT) problem.
3. Key Features / Modules
- Knows when your garden is thirsty — tracks heat, evaporation, and rainfall in real time; irrigates only when needed
- Each plant gets its own schedule — 10 plant profiles (lawn, citrus, succulents, roses, ...) with seasonal variation; NeverDry knows your lawn drinks more in July than your lavender ever will
- Same plants, different spot — a bed shaded by the house from 14:00 doesn't drink like the one baking against a south-facing wall; set each zone's exposure and NeverDry scales its water accordingly, all season long
- Knows how much water to deliver — calculates exactly how many liters each zone needs; if you have a flow meter, it measures delivery directly; otherwise it computes run time from flow rate
- Zones are independent — the rose bed and the lawn dry out at different rates; each zone tracks its own deficit
- Skips irrigation after rain — tracks how much rain actually fell and subtracts it from the deficit
- Valve always closes — if a valve is still not responding after six tries, NeverDry blocks it, shows the state on the dashboard, and waits for you to check
- Two scheduling modes — water when the deficit crosses a threshold (Mode A) or every night based on current deficit (Mode B)
- Works without valves too — no hardware? NeverDry sends a notification when watering is needed and by how much
- Emergency stop — one button closes all valves immediately
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Python 3.8 or later
- pip / virtualenv for dependencies
- VS Code, PyCharm or Jupyter Notebook
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/never-dry/NeverDry.git
cd NeverDryFull setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add a mobile dashboard using Blynk or Firebase
- Store readings in a cloud database for history charts
- Add alerts via SMS / Telegram when thresholds are crossed
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Which microcontroller / board and sensors are used and why?
- How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
- Where is the sensor data stored and visualised?
- How is power consumption managed?
- How would you secure the device and its communication?
9. Source Code & License
This project is developed by never-dry and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Internet of Things (IoT) Internship