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