Система «умный полив» на основе Arduino: от идеи до работающего полива

Если вы читаете это, скорее всего, у вас есть участок, теплица или даже просто балкон с цветами, которые вы устали поливать вручную. Может, уезжаете на неделю и не хотите просить соседей с лейкой. Или заметили, что то заливаете, то недоливаете — и растения страдают. Умный полив на Arduino — это не сложно, не дорого и собирается за один вечер. Расскажу, как это работает, что нужно и на что обратить внимание.

Что вообще делает эта система

Суть проста: микроконтроллер Arduino по расписанию или по показаниям датчиков включает насос или клапан, подаёт воду к растениям, и выключает, когда влажность почвы достигает нужного уровня. Вы не просто автоматизируете полив — вы делаете его адекватным: столько воды, сколько нужно, а не «пока не устану поливать».

Базовая схема выглядит так:

  • Arduino (Uno, Nano или Mega — зависит от количества зон полива)
  • Датчик влажности почвы
  • Реле для управления насосом или соленоидным клапаном
  • Насос или ёмкость с водой и гравитационная подача
  • Блок питания или аккумулятор

Опционально добавляют датчик температуры и влажности воздуха (DHT22), дисплей для отображения статуса, модуль реального времени (DS3231) для полива по часам и даже Wi-Fi модуль (ESP8266), чтобы управлять с телефона.

Какой Arduino выбрать и почему

Для простой системы с одной-двумя зонами хватит Arduino Nano — она компактная, дешёвая и у неё достаточно пинов. Если планируете подключить 4–6 зон полива, датчики, дисплей и Wi-Fi — берите Mega. Uno — золотая середина, с ним большинство и работает.

Параметр Arduino Nano Arduino Uno Arduino Mega
Аналоговые входы 8 6 16
Цифровые пины 14 14 54
Память Flash 32 КБ 32 КБ 256 КБ
Подходит для 1–2 зоны полива 2–4 зоны 4+ зон, дисплей, Wi-Fi
Примерная цена клона 150–250 ₽ 200–350 ₽ 400–700 ₽

Клоны вроде «CH340» работают нормально, не переплачивайте за оригинал, если не собираете промышленный контроллер.

Датчик влажности почвы — тут не всё просто

Это самый важный элемент, и именно с ним чаще всего возникают проблемы. Два основных типа:

Резистивный датчик — два щупа, которые втыкаются в землю. Измеряют сопротивление между ними: мокрая земля — сопротивление низкое, сухая — высокое. Дёшево, просто, но щупы окисляются за 2–3 месяца постоянного контакта с почвой. Если используете — планируйте замену или хотя бы зачистку раз в сезон.

Ёмкостной датчик — измеряет диэлектрическую проницаемость почвы. Контакт с землёй не металлический, а по изолированной дорожке. Не окисляется, живёт годами. Дороже, но для постоянной работы — однозначно лучше. Распространённые модули: DFRobot SEN0193, Capacitive Soil Moisture Sensor v1.2.

Я рекомендую сразу брать ёмкостной. Сэкономите нервы и перестанете играть в «почему датчик врёт» через месяц после установки.

Схема подключения — по шагам

Допустим, у вас Arduino Nano, ёмкостной датчик влажности и реле на 5В. Подключение:

  1. Датчик влажности: VCC → 5V на Arduino, GND → GND, AOUT → аналоговый пин A0.
  2. Реле: VCC → 5V, GND → GND, IN → цифровой пин D2.
  3. Насос/клапан: подключается в разрыв через нормально-разомкнутый контакт реле. Если насос мощнее 1А — реле через транзистор или модуль реле с отдельным питанием.
  4. Питание Arduino: через USB от повербанка или от блока питания 5В 2А. Насос питать от Arduino нельзя — только отдельно.

Если используете соленоидный клапан (для систем с давлением воды из водопровода), логика та же: реле управляет клапаном, клапан пускает воду по трубам.

Код — рабочая версия без лишнего

Вот минимальный скетч, который читает датчик и включает полив при низкой влажности:

#define SOIL_PIN A0
#define RELAY_PIN 2

// Пороговые значения подбираете под свой датчик и почву
// Ёмкостной датчик: сухая земля ~ 520, мокрая ~ 250
int dryThreshold = 450;
int wetThreshold = 300;

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // HIGH = реле выключено (нормально-замкнутое)
  Serial.begin(9600);
}

void loop() {
  int soilValue = analogRead(SOIL_PIN);
  Serial.println(soilValue);

  if (soilValue > dryThreshold) {
    digitalWrite(RELAY_PIN, LOW); // Включить полив
  } else if (soilValue < wetThreshold) {
    digitalWrite(RELAY_PIN, HIGH); // Выключить полив
  }

  delay(60000); // Проверяем раз в минуту
}

Важно: реле на большинстве модулей активируется LOW, а не HIGH — проверьте вашу модель. Если у вас наоборот, поменяйте логику.

Пороговые значения подбираются экспериментательно: воткните датчик в сухую землю, посмотрите значение в Serial Monitor — это ваш «dry». Полейте, подождите 10 минут — это «wet». Ставьте пороги между ними с запасом.

Добавляем полив по расписанию

Датчик влажности — это хорошо, но иногда хочется поливать строго по времени: например, утром в 6:00 и вечером в 19:00. Для этого нужен модуль реального времени DS3231 — он стоит копейки и точно считает время даже когда Arduino обесточен (батарейка CR2032).

Подключение DS3231: SDA → A4, SCL → A5, VCC → 5V, GND → GND (для Uno/Nano).

С библиотекой RTClib проверка времени выглядит так:

#include 
RTC_DS3231 rtc;

void checkSchedule() {
  DateTime now = rtc.now();
  if ((now.hour() == 6 && now.minute() == 0) ||
      (now.hour() == 19 && now.minute() == 0)) {
    digitalWrite(RELAY_PIN, LOW);
    delay(300000); // Поливаем 5 минут
    digitalWrite(RELAY_PIN, HIGH);
  }
}

Комбинируйте оба подхода: датчик как аварийная защита от перелива, расписание как основная логика. Так надёжнее.

Питание — это решают редко, а жаль

Arduino может работать от повербанка 10000 мАч примерно сутки. Насос от повербанка не запустится — нужно отдельное питание. Решения:

  • Сетевая розетка + блок питания 12В 2А — если есть электричество рядом. Arduino от 5В через стабилизатор, насос от 12В через реле.
  • Солнечная панель + аккумулятор 12В — для удалённых участков. Панель 20Вт, контроллер заряда, гелевый аккумулятор 7Ач. Хватает на сезон при разумном поливе.
  • Батарейки 6В (4×AA) — только для маломощных систем с клапаном, насос не потянет.

Если используете солнечную панель — закладывайте запас по мощности минимум в 2 раза. Пасмурные дни никто не отменял.

Механика полива: капельница или насос

Два принципиально разных подхода:

Насос в бочку с водой + капельная лента. Насос включается по сигналу Arduino, вода идёт по трубкам через капельницы к каждому растению. Нужен насос с давлением 1–2 бара (подойдёт автомобильный омыватель 12В или аквариумный насос). Капельная лента дешёвая, но требует давления — без насоса не работает.

Соленоидный клапан + водопровод. Если есть водопровод или ёмкость, поднятая выше грядок (гравитация), клапан открывает поток воды. Не нужен насос, но нужно давление. Клапан 12В нормально-закрытый — при отключении питания вода не хлещет.

Для теплицы на 6–12 кустов томатов я бы выбрал капельную ленту с насосом — это проще в реализации и надёжнее, чем возиться с давлением в водопроводе.

Частые ошибки, которые превращают систему в боль

  • Втыкать резистивный датчик и забыть про него. Через месяц показания уходят в бесконечность, система решает, что земля сухая, и заливает растения до гниения корней. Используйте ёмкостной или планируйте обслуживание.
  • Не делать гистерезис. Если полив включается при влажности 450 и выключается при 449 — реле будет щёлкать каждую секунду. Делайте разницу между включением и выключением минимум в 50–80 единиц.
  • Питать насос от пинов Arduino. Это убьёт контроллер. Насос — только через отдельное питание и реле/транзистор.
  • Не предусмотреть ручной полив. Поставьте переключатель, который переводит систему в ручной режим. Бывают ситуации, когда нужно полить вручную, а Arduino решает, что не время.
  • Забыть про фильтр на насос. В бочке с водой быстро появляется мусор, капельницы забиваются. Простой сетчатый фильтр на входе насоса сэкономит часы чистки ленты.

Что выбрать под вашу ситуацию

Балкон с цветами, уезжаете на неделю: Arduino Nano, ёмкостной датчик, аквариумный насос в банку с водой, трубки к горшкам. Питание — повербанк. Просто, дёшево, работает.

Дача, 4 грядки, водопровод есть: Arduino Uno, соленоидный клапан 12В, капельная лента, модуль реального времени для полива по часам. Датчик влажности — как страховка. Питание — от розетки через блок питания.

Теплица 10×30 метров: Arduino Mega, 6 зон с отдельными датчиками и клапанами, Wi-Fi модуль для мониторинга, отдельный щиток с питанием. Это уже серьёзная система, но принцип тот же — просто больше каналов.

Удалённый участок, нет электричества: Солнечная панель 50Вт, аккумулятор 12В 18Ах, контроллер заряда, Arduino Nano с глубоким сном (потребление в сне — микроамперы), ёмкостной датчик, клапан с минимальным потреблением. Полив 2 раза в день по 10 минут — такого комплекта хватит.

Как лучше сделать — практические советы

  1. Начните с одной зоны. Не пытайтесь сразу поливать весь участок. Соберите систему на одном растении, отладьте пороги, убедитесь, что работает стабильно неделю. Потом масштабируйте.
  2. Калибруйте датчик на своей почве. Глина, чернозём, торф — у всех разная электропроводность. Пороги, которые работают у одного человека, могут не работать у вас.
  3. Делайте запас по времени полива. Лучше поставить полив на 5 минут и проверить, что вода дошла до корней, чем сразу на 30 минут и получить болото.
  4. Поставьте индикацию. Хотя бы один светодиод: зелёный — влажность в норме, красный — идёт полив. Без этого вы не поймёте, что происходит, пока не увидите мокрую землю или сохнущие листья.
  5. Закладывайте возможность расширения. Оставьте свободные пины, заложите в корпус место для дополнительного реле. Через месяц вам точно захватит добавить ещё одну зону.

Итог: что делать дальше

Если у вас есть базовые навыки работы с Arduino — соберите систему за один вечер. Список деталей умещается в один заказ на AliExpress или в радиомагазине. Стоимость базовой версии на 1–2 зоны — 1000–2000 рублей с учётом всех компонентов.

Начните с простого: датчик + реле + насос + капельная лента. Проверьте на одном растении. Убедитесь, что пороги подобраны правильно и система не заливает и не пересушивает. Потом добавляйте расписание, Wi-Fi, дисплей — всё, что кажется полезным.

Умный полив — это не про сложную электронику. Это про то, чтобы ваши растения получали воду тогда, когда им нужно, а вы перестали думать о лейке каждый вечер.

Silikat18.ru