Главная chevron_right Наши уроки chevron_right Arduino для начинающих chevron_right Проект 3. Автоматический полив растений

Проект 3. Автоматический полив растений

Собираем систему автополива на Arduino Uno: датчик влажности почвы следит за состоянием грунта, а реле управляет мембранным насосом — растения всегда получат нужное количество воды

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

Описание работы:

Для начала работы подключите питание к Arduino. Подключите мембранный насос. Затем воткните датчик влажности в горшок. Выставите на потенциометре уровень влажности, который постоянно необходимо поддерживать.

Нам понадобится:

Для реализации проекта нам не нужно устанавливать никаких библиотеки.

Схема сборки:

  • Подключение представлено на рисунке ниже.

Код программы:

int pinRele = 2;                                                      // Объявляем пин для работы с реле.
int pinPot = A0;                                                      // Объявляем пин для работы с потенциометром.
int pinDatH = A3;                                                     // Объявляем пин для работы с датчиком влажности.
                                                                      //
int potValue;                                                         // Переменная для считывания показания потенциометра.
int datHValue;                                                        // Переменная для считывания показания датчика влажности.
                                                                      //
void setup()                                                          //
{                                                                     //
  pinMode(pinRele, OUTPUT);                                           // Переводим вывод pinRele в режим выхода.
}                                                                     //
                                                                      //
void loop()                                                           //
{                                                                     //
  potValue = analogRead(pinPot);                                      // Считываем показания потенциометра.
  datHValue = analogRead(pinDatH);                                    // Считываем показания датчика влажности.
                                                                      //
if (datHValue < potValue) {digitalWrite(pinRele, HIGH);}              // Если показания датчика влажности меньше значения потенциометра, то включаем полив.
else {digitalWrite(pinRele, LOW);}                                    // Если больше, то выключаем полив.
                                                                      //
// *******************************************************************//
// delay(1000);                                                       // Время за которое данный с датчика влажности будут сравниваться с потенциометром.
// *******************************************************************//
}                                                                     //

Алгоритм работы:

В начале скетча (до кода setup) выполняются следующие действия:

В коде setup выполняются следующие действия:

  • Переводим вывод реле в режим выхода.

В коде loop выполняются следующие действия:

  • Считываем показания потенциометра и датчика влажности.
  • Сравниваем показания потенциометра и датчика влажности. Если уровень влажности меньше заданного уровня на потенциометре, то задействуем реле и переведем в положение включения подачи воды. Иначе не включаем подачу воды.
  • Можно раскомментировать строку, связанную с задержкой. Тогда полученные данные с датчика влажности и потенциометра будут дольше приходить и сравниваться.

Ссылки

Комплект для повторения проекта

Что понадобится

Это быстрый ориентир по основным модулям и деталям. Полный список для повторения проекта смотрите в самой статье.

13 позиций
Arduino Uno R3 (USB ATmega16U2) Платформа c микроконтроллером ATmega328P на ядре AVR с чипом USB ATmega16U2 для разработки электронных устройств на языке C++ Открыть в iArduino Trema Set Shield Плата расширения, которая упрощает процесс подключения модулей к Arduino. Открыть в iArduino Реле (Trema-модуль v2.0) Позволяет коммутировать цепи как переменного, так и постоянного тока до 10 А. Открыть в iArduino Шланг cиликоновый 6×8 мм (1 метр) Магистраль с внутренним диаметром 6 мм и внешним 8 мм для перекачки жидкости или газов Открыть в iArduino Потенциометр v2 (Trema-модуль) Сенсор для настройки скорости вращения двигателя, угол поворота сервопривода, яркости светодиода и т.д. Открыть в iArduino Мембранный насос 385, 6 - 12В Отлично подойдет для создания автополива и перекачки жидкости Открыть в iArduino Шлейф Dupont «Папа – Мама» (3 pin, 20 см) Шлейф из трёх проводов длиной 20 см с коннекторами Dupont Male и Female Открыть в iArduino Датчик влажности почвы, резистивный Вы можете следить за влажностью почвы например вашего любимого цветка!) Открыть в iArduino Источник питания на 12В. 3А. Источник питания 12 вольт, 2 ампера, центр положительный, DC jack 5,5*2,1 мм Открыть в iArduino Коннектор power jack Мама с клемником Коннектор power jack Мама с клемником для Arduino Открыть в iArduino Силиконовые провода 24AWG (10 шт. / 10 см) Набор из 10 мягких силиконовых проводов сечением 0,2 мм² и длиной 10 см Открыть в iArduino Силиконовые провода 24AWG (10 шт. / 5 см) Набор из 10 мягких силиконовых проводов сечением 0,2 мм² и длиной 5 см Открыть в iArduino Силиконовые провода 24AWG (10 шт. / 20 см) 20 см Открыть в iArduino
Все уроки Arduino для начинающих