Устройство предназначено для своевременного полива растений, благодаря которому вам не придется бегать с лейкой каждый день и следить за тем, чтобы растение не завяло. Устройство само определит количество влажности в горшке с растением и при необходимости зальет водой.
Описание работы:
Для начала работы подключите питание к Arduino. Подключите мембранный насос. Затем воткните датчик влажности в горшок. Выставите на потенциометре уровень влажности, который постоянно необходимо поддерживать.
Нам понадобится:
- Arduino Uno х 1шт.
- Trema Set Shield х 1шт.
- Trema-модуль реле х 1шт.
- Силиконовый шланг 6*8 мм х 1шт.
- Trema-модуль потенциометр х 1шт.
- Мембранный насос для Arduino х 1шт.
- 3-проводной шлейф «папа-мама» х 1шт.
- Аналоговый датчик влажности почвы х 1шт.
- Источник питания на 12В. 1А. для Arduino х 1шт.
- Коннектор power jack Мама с клемником для Arduino х 1шт.
- Проводков для пайки. (в ассортименте: 5 см, 10 см, 20 см)
Для реализации проекта нам не нужно устанавливать никаких библиотеки.
Схема сборки:
- Устанавливаем Trema Set Shield в Arduino Uno.
- Устанавливаем Trema-модуль потенциометр в 2 посадочную площадку.

- Устанавливаем Trema-модуль реле в 4 посадочную площадку.

- Устанавливаем Аналоговый датчик влажности почвы в 6 посадочную площадку, используя 3-проводной шлейф «папа-мама» .

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

- Подключить Мембранный насос для Arduino к Источник питания на 12В, через Коннектор с помощью Проводков как показано на рисунке ниже. А так же подключить Шланги к выходам насоса.

Код программы:
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) выполняются следующие действия:
- Объявляем пины для работы с Trema-модуль реле, Trema-модуль потенциометр и Аналоговым датчиком влажности почвы.
- Объявляем переменные, которые задействованы в программе.
В коде setup выполняются следующие действия:
- Переводим вывод реле в режим выхода.
В коде loop выполняются следующие действия:
- Считываем показания потенциометра и датчика влажности.
- Сравниваем показания потенциометра и датчика влажности. Если уровень влажности меньше заданного уровня на потенциометре, то задействуем реле и переведем в положение включения подачи воды. Иначе не включаем подачу воды.
- Можно раскомментировать строку, связанную с задержкой. Тогда полученные данные с датчика влажности и потенциометра будут дольше приходить и сравниваться.

Обсуждение