Введение
Приветствую, меня зовут Алексей Морозов. В этой статье я покажу как сделать простой и практичный автополив на arduino.
Подбор комплектующих
Для этого проекта я подобрал следующие компоненты:
Arduino Nano в качестве контроллера
модуль mosfet транзистора для управления помпой
помпа для аквариумов
датчик влажности почвы v2
Фото деталей




Сборка
Вот схема подключения:

Теперь по сборке:

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


Отрезаем крышечку

И крепим на термоусадку прямо к отводу на помпе.
Готово!

Код
Вот полный код полива:
// --- НАСТРОЙКИ ОБОРУДОВАНИЯ --- #define SNSR_PIN A0 // Аналоговый пин, к которому подключен датчик влажности почвы #define PUMP_PIN 3 // Цифровой пин, управляющий реле или драйвером насоса // --- НАСТРОЙКИ ЛОГИКИ АВТОМАТИКИ --- #define THRESHOLD_HUMD 50 // Пороговое значение влажности (в процентах). // Если влажность ниже этого значения, насос включается. #define HYSTERESIS 10 // Гистерезис (разница в процентах). // Нужен, чтобы избежать частого включения/выключения насоса // при колебаниях влажности около порога. // Насос выключится, только когда влажность превысит (THRESHOLD_HUMD + HYSTERESIS). /** * @brief Считывает показания с датчика и преобразует их в проценты влажности. * @return Влажность почвы в процентах (0 - сухо, 100 - мокро). */ uint8_t get_humd() { // analogRead(SNSR_PIN) возвращает значение от 0 до 1023. // Функция map() преобразует этот диапазон в проценты от 100 до 0. // Логика инвертирована: чем выше напряжение на датчике (больше воды), тем ниже значение АЦП, // но для удобства восприятия мы переводим это в "процент влажности", где 100 — это максимум. return map(analogRead(SNSR_PIN), 0, 1023, 100, 0); } /** * @brief Управляет состоянием насоса на основе текущей влажности. * @param humd Текущее значение влажности почвы в процентах. */ void turn_pump(uint8_t humd) { // Если влажность почвы упала ниже порога, включаем насос. if (humd < THRESHOLD_HUMD) { digitalWrite(PUMP_PIN, HIGH); } // Если влажность поднялась выше порога с учетом гистерезиса, выключаем насос. // Это условие сработает только когда почва станет достаточно влажной, // чтобы предотвратить "дребезг" (циклическое включение-выключение). else if (humd > THRESHOLD_HUMD + HYSTERESIS) { digitalWrite(PUMP_PIN, LOW); } } /** * @brief Блок начальной настройки микроконтроллера. Выполняется один раз при включении. */ void setup() { // Инициализация последовательного порта для вывода данных в монитор (Serial Monitor) Serial.begin(115200); // Настройка пинов: pinMode(SNSR_PIN, INPUT); // Пин датчика как вход pinMode(PUMP_PIN, OUTPUT); // Пин насоса как выход } /** * @brief Основной рабочий цикл. Выполняется бесконечно после завершения setup(). */ void loop() { // Статическая переменная для хранения времени последнего измерения. // Статическая переменная сохраняет свое значение между вызовами loop(). static uint32_t tmr; // Проверяем, прошло ли достаточно времени с прошлого измерения (каждые 10 миллисекунд). // Использование millis() вместо delay() позволяет не блокировать выполнение программы. if (millis() - tmr >= 10) { tmr = millis(); // Обновляем таймер // Получаем текущее значение влажности uint8_t humd = get_humd(); // Передаем значение в функцию управления насосом turn_pump(humd); // Выводим текущее значение влажности в Serial Monitor для отладки Serial.println(humd); } }
Итоги
Мы собрали автополив. И эту тему можно долго развивать, но вот ключевые моменты которые нужно обязательно добавить в следующей версии:
Энергосбережение
Несколько помп
Контроль уровня воды в бачке
Спасибо за внимание, удачи в ваших проектах!
Комментарии (11)

MirJoui
03.07.2026 14:35Зачем и для кого эта статья написана?
Автополив на ардуино сделали уже буквально все, таких статей сотни тысяч и все они как под копирку, набор модулей банален до неприличия.
Если делать что-то подобно возьмите за основу хотя бы метод измерения влажности почвы не стандартный
Две статьи назад речь шла про робототехнику, качество материала просто летит в низ с невероятной скоростью
ArduDragon Автор
03.07.2026 14:35Работы над манипулятором ведутся, как я и говорил, система будет переведена на ros2

BerZerKku
03.07.2026 14:35Сын такое собирал. Дорожки на датчике влажности похожем, если не ошибаюсь, в горшке где-то за месяц сожрало.

xSVPx
03.07.2026 14:35Вы собрали автозалив.
Если помпа уже работает час, а влажность всё еще равна нулю, то конечно надо качать и дальше. Да ведь?
ЗЫ. И, полагаю автопожар, вряд ли эта помпа не сгорит со временем, если ее не выключать сутки скажем...

ArduDragon Автор
03.07.2026 14:35Можно поставить датчик тока и температуры и сделать экстренное отключение

dimao79
03.07.2026 14:35А можно не ставить датчики, а посчитать, сколько эта помпа выдает миллилитров в, допустим, секунду, замерить, сколько миллилитров требуется горшку, в который она качает, и включать помпу на время не более необходимого.
А затем, через какое-то время (да, воде надо время на то, что бы пропитать грунт) контролировать влажность почвы.
И если вдруг, по какой-то причине, после подачи воды влажность не изменилась - уходить в ошибку.
Но для этого надо думать над задачей, а не лепить датчики к Ардуинам, не понимая физической сути происходящих процессов.

xSVPx
03.07.2026 14:35Где всё это ?
Именно обработка эдж кейсов превращает набор всякой фигни в систему автополива...

Iscander_Che
03.07.2026 14:35Как бывший препод, участвовавший как в защитах дипломов, так и в руководстве при их разработке, не могу не спросить: в чём оригинальность проекта? :) /irony
iShrimp
Ох уж этот автополив с датчиками влажности.
Мне тут как-то недавно захотелось вместо электронной системы с кучей датчиков и клапанов "изобрести" чисто механический контроллер полива. Получилось такое изделие: деревянный диск диаметром 30-60 мм и толщиной 10-20 мм, выточенный перпендикулярно волокнам древесины, с пазом вдоль обода, расколот надвое и стянут нержавеющим хомутом, а в щель между половинками вставлена трубка или капельная лента. Натяжение хомута подбирается так, чтобы мокрый диск перекрывал поток воды, а сухой - пропускал. Деревяшка, пропитанная антисептиком, вполне служит целый летний сезон. Такой вот дауншифтинг XXI века.