Автоматический полив для дачи своими руками

Автоматический полив для дачи своими руками Огород

Практическая реализация

Логика работы: раз в секунду(можно сделать более долгие промежутки) arduino получает значение влажности с датчика. При получении значения больше 550 и если помпа не работала ближайшие 15 минут arduino включает реле(к которому подключен насос) на время time_work.

Задержка 15 минут между поливами сделана для того что бы влага успела впитаться в почву и помпа перекачала больше воды чем надо. Переменная time_work устанавливает время работы помпы, это время за которое ваш насос успеет выкачать нужное количество воды вашему растению.

После полива устанавливается задержка 15 минут для работы помпы, при этом arduino продолжает следить за влажностью. А дальше все циклично. Со временем сделаю датчик уровня воды, что бы помпа не включалась если в резервуаре мало воды и выдавалась индикация.

Схема подключения:

Собственно сам код:

int minv = 600;//малая влажность
int maxv = 220;//полный полив
int normv = 500;//чуть влажная
int value = 0;//полученное значение
int last_value = 0;//последнее значимое изменение
int value_sdvig =50;//значимое изменение 
int ralay = 6; //пин реле
int time_work = 10;//время работы помпы в сек
int analogPin = A0;//пин датчика

//Переменные таймаута
int second = 0; // секунды
int time_off = 0; // счетчик оставшегося времени
int pause_time = 15; // время отдыха после полива в минутах

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
  pinMode(ralay,HIGH);//настройка реле
  digitalWrite(ralay, HIGH);
}

void poliv()
{
  int time_tmp;
  time_tmp=time_work;
  digitalWrite(ralay, LOW);
 while(time_tmp>0 && value>normv){// ждем истечения времени time_work или нормальной влажности почвы
  delay(1000);
   value=analogRead(analogPin);//обновляем значение влажности
 time_tmp--;
 }
  digitalWrite(ralay, HIGH);
  second=0; // сбрасываем секунды на ноль
  time_off=pause_time;// устанавливаем задержку между поливами
}

void loop() {
  // put your main code here, to run repeatedly:
value=analogRead(analogPin);
if (value>(last_value value_sdvig)||value<(last_value-value_sdvig)){// если last_value отклонился на value_sdvig выводим value в uart
  Serial.println(value);
  last_value=value;
}
if ((value>(minv-value_sdvig)) && time_off<1) poliv();//если значение влажности > критическая влажность - 50 и не было недавних поливов
// временные функции что бы не играться с таймерами
if (second>59)
{
  second=0;
  if (time_off>0) time_off--;
}
delay(1000);//пауза 1 сек 
second  ;
}

На сегодня всё, спасибо всем за внимание! Ждем ваших комментариев.

Автоматический полив для дачи своими руками

Некоторое время назад я прикинул, что было бы неплохо автоматизировать полив на даче. Обзоры некоторых пользователей муськи также сыграли не последнюю роль в принятии этого решения. Но поскольку электроника — это не мой профиль, решено было делать аппаратную часть проекта максимально упрощенной, и по возможности обойтись без ЛУТ, травления плат и прочих сложностей. Короче, хотелось реализовать свою систему как некий конструктор, собранный из стандартных компонентов, а получилось это или нет — решать вам.

UPD: добавлен скетч для Ардуино.

1. Осмысление хотелок и упорядочивание мыслей проекта
Проект изначально задумывался примерно в таком виде: 4 мощных разбрызгивателя (в перспективе 8), столько же электромагнитных клапанов, релейный модуль для них, вот такая клавиатура, экран 16×2 символов, часы реального времени и Arduino в качестве мозгов.
Я рассчитывал, что для управления клапанами будет достаточно какого-нибудь простого меню, через которое можно задавать текущее время, время начала полива и длительность работы.
Потом прикинул, что 8 входов ардуины отдавать на клавиатуру — это чересчур. И вообще, не все клавиатуры одинаково полезны везде оправдано использование только цифрового блока; нужно ведь не только вводить циферки, но и реализовать навигацию по меню.
А если так, то лучше использовать джойстик — это более универсальное решение чем цифровая клавиатура, да и управление становится «интуитивным»… разумеется, если его удастся таким сделать… Зимой были куплены релюшки, один 12-вольтовый клапан, один разбрызгиватель, джойстик, ардуина и экран, и в феврале-марте я начал отлаживать скетч для поливалки.
В процессе разработки программной части было внесено еще несколько изменений в первоначальный проект. В частности, я добавил несколько датчиков температуры-влажности и блок ручного управления клапанами. Кроме того, для защиты от работы мотора вхолостую я решил поставить на вход датчик расхода воды, чтобы аварийно отключать мотор в случае длительного отсутствия потока.
Зачем столько датчиков? Да просто стоят они не очень дорого, пустые входы на плате оставались, а знать температуру и влажность на разных частях участка — полезно. Датчики я планировал поставить в теплице, на улице и в приямке для насосной станции, а также где-то в огороде разместить датчик влажности почвы и датчик температуры почвы.
А вообще — покажу я лучше таблицу датчиков и пинов ардуины
Автоматический полив для дачи своими руками

2. Закупка необходимых компонентов
Привожу список компонентов системы, купленных в Китае (большинство приобрел на aliexpress, но пару лотов взял на Ebay — там было дешевле). Два лота уже сняты с продаж, поэтому вместо ссылок на них будут снапшоты — чтобы заинтересованные люди знали что искать.
1 датчик расхода воды, цена 6,36$ (лот у другого продавца, т.к. мой продавец снял этот датчик с продаж)
1 понижающий преобразователь на LM2596, цена 0,74$
1 часы реального времени I2C ds1307, цена 0,63$
1 набор прототипов печатных плат, цена 1,16$
1 джойстик, цена 0,56$
1 плата Arduino nano, цена 1,79$
1 водонепроницаемый датчик температуры DS18b20, цена 1,1$
1 I2C модуль для дисплея (снапшот), цена 0,66$
1 выключатель, цена 0,5$
1 экран 1602, цена 1,35$
1 реле 4-канальное, цена 3,56$
1 реле 1-канальное, цена 0,84$
3 датчика температуры DHT11, цена 0,99$ за штуку, всего 2,97$
4 поворотных садовых разбрызгивателя, цена 5,59$ за штуку, всего 22,36$
4 электромагнитных клапана (снапшот), цена 3,62$ за штуку, всего 14,48$. Аналоги легко ищутся здесь
4 кнопки со встроенным светодиодом (снапшот), цена 0,95$ за пару, всего 1,9$
Итоговые затраты в интернетах — 60,96$

В местном строительном магазине были куплены следующие вещи:
2 бухты поливочного шланга 5/8 (по 30м) — 540000 бел.рублей, или примерно 28$
8 муфт 1/2 — 112000 бел.рублей, или примерно 5,8$
3 тройника 1/2 — 60000 бел.рублей, или примерно 3$
8 штуцеров 15*16 — 92000 бел.рублей, или примерно 4,8$
Итоговые затраты в оффлайне — 804000 бел.рублей, или 41,2$

Также стоит упомянуть то, что не вошло в этот список — некоторые вещи из этого списка достались мне условно-бесплатно (старая рухлядь), на какие-то вещи я просто запамятовал цены. Это:
40 метров 4-жильного сигнального кабеля для подключения температурных датчиков;
40 метров самого дешевого 2-жильного медного кабеля для передачи 12 вольт на электромагнитные клапаны;
2 разветвителя RJ-11, которые были использованы в качестве выходов для подключения датчиков температуры и влажности, и 4 коннектора для кабелей с датчиками;
2 разветвителя RJ-45, для связи блока управления, находящегося в доме, с блоком реле и датчиков почвы, находящимся на улице рядом с насосом, и 4 коннектора для кабелей;
старый кабель (витая пара) — метров 30-40, для соединения ардуины с релюшками;
коннектор для подключения дисковода, выпаянный со старой материнской платы, и шлейф от дисковода;
старый блок питания на 24 вольта;
обрезки мебельного щита толщиной 12-16 мм для изготовления коробок для системы.

Фотки разветвителей до применения не сделал, выглядят примерно так:
Автоматический полив для дачи своими руками

3. Изготовление того, что не было куплено
Некоторые вещи по тем или иным причинам пришлось делать самостоятельно из подручных материалов. Постараюсь здесь описать, что и как было сделано, и почему именно так а не иначе.

3.1 Датчик влажности почвы (надеюсь, долгоживущий)
Как вы можете заметить, в списке покупок отсутствует датчик влажности почвы, хотя в проекте он заявлен. Дело в том, что сама идея закапывать в землю кусок текстолита с тоненькими полосками металла мне показалась достаточно бредовой, поэтому я решил найти способ получше. Пошарившись по интернету, я нашел вот эту тему на тематическом форуме, там есть хорошие советы и примеры. В общем, решил сделать так же, как там и написано: 2 проводника, резисторы и 3-жильный провод. В качестве катода и анода была использована одна велосипедная спица, безжалостно покусанная на части. Вот для сравнения куски донора и целая спица
Автоматический полив для дачи своими руками
Паяем провода, резисторы и куски спицы — в общем, делаем все так, как написано на форуме
Автоматический полив для дачи своими руками
Потом временно фиксируем анод и катод на пластилин, чтобы заделать наше рукоделие термоклеем
Автоматический полив для дачи своими руками
Далее в качестве формочки был взят маленький стаканчик от детского йогурта, в нем я сделал отверстие для провода, аккуратно установил конструкцию внутрь и залил анкерным составом Ceresit СХ-5
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Форумчане рекомендуют гипс, но под рукой его не оказалось, думаю что быстросхватывающийся цемент будет не хуже.
Высохло — вскрываем
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
По готовому датчику на всякий случай прошелся масляной краской в пару слоев, чтобы датчик измерял именно влажность почвы, а не влажность куска бетона.
Автоматический полив для дачи своими руками

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


#define PIN_SOIL_LEFT 6
#define PIN_SOIL_RIGHT 7
#define PIN_SOIL_HUMIDITY 0

void setup(){
  Serial.begin(9600);
  pinMode(PIN_SOIL_LEFT, OUTPUT);
  pinMode(PIN_SOIL_RIGHT, OUTPUT);
  pinMode(PIN_SOIL_HUMIDITY, INPUT);
}

void setSensorPolarity(boolean flip){
  if(flip){
    digitalWrite(PIN_SOIL_LEFT, HIGH);
    digitalWrite(PIN_SOIL_RIGHT, LOW);
  }else{
    digitalWrite(PIN_SOIL_LEFT, LOW);
    digitalWrite(PIN_SOIL_RIGHT, HIGH);
  }
}

void loop(){
  setSensorPolarity(true);
  delay(1000);
  int val1 = analogRead(PIN_SOIL_HUMIDITY);
  delay(1000);  
  setSensorPolarity(false);
  delay(1000);
  // invert the reading
  int val2 = 1023 - analogRead(PIN_SOIL_HUMIDITY);
  reportLevels(val1,val2);
}

void reportLevels(int val1,int val2){
  int avg = (val1   val2) / 2;
  String msg = "avg: ";
  msg  = avg;
  Serial.println(msg);
}

В моем случае, значение на датчике было чуть больше 200 в сухой почве, и чуть меньше 840 во влажной.

Теперь у нас есть минимальный и максимальный уровни влажности конкретно взятой почвы, их нужно будет внести в соответствующие константы в основном скетче. Вот и все!

3.2 Блок питания для клапанов
Можно было, конечно, купить в Китае обычный блок питания на 12 вольт, выдающий хотя бы 1 ампер, но в закромах Родины куче старого барахла нашелся зарядник от дохлого шуруповерта, выдающий полампера при напряжении 24 вольта. Поэтому был куплен понижающий преобразователь на LM2596, и затем успешно встроен в старый блок. Отдельных фоток процесса я не делал, бо не об этом обзор… Вот модифицированный блок вместе с клапаном, сойдет за пример
Автоматический полив для дачи своими руками
В корпусе блока было сделано отверстие, удобной регулировки напряжения. Теперь с помощью отвертки и мультиметра можно выставить любое напряжение от 5 до 24 вольт. Получилось довольно неплохо, как мне кажется. К сожалению, я прощёлкал этот обзор Aloha_ про понижающие преобразователи… Но в моем случае все вроде бы нормально, перегрева не замечено.

3.3 Держатели для разбрызгивателей
Вот эту штуку в магазине купить точно не получится! Потому что сделана она в количестве 4 единиц по спецзаказу:) Хотя здесь все просто: полудюймовая труба высотой один метр, снизу сделан изгиб под 90 градусов и приварен уголок длиной 30-40 см, чтобы держатель можно было воткнуть в землю в нужной части участка. Вверху резьба должна быть внутренняя на полдюйма (в моем случае там просто наварена муфта), внизу — кому как удобнее. В моем случае там наружная полдюймовая резьба, но как показала практика — лучше бы была внутренняя, тогда не пришлось бы навинчивать сначала муфту, потом в нее штуцер или клапан… В общем, не продумал заранее, поэтому получил дополнительные расходы на муфты:(
Наглядные фото держателя — вот:
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
И еще чуть дальше будет фотка держателя в процессе эксплуатации.

3.4 Коробки для блока управления и реле
Сначала я планировал разместить все части поливатора в одной коробке, и оснастить ее выходами на клапаны (12 вольт), насос (220 вольт) и собственно на датчики. Однако потом решил разнести силовую и слаботочную части поливатора, да и щелканье реле ранним утром будет очень сомнительным удовольствием. Соответственно, плата с ардуиной, джойстик, кнопки, экран и часы реального времени остаются в «домашней» коробочке, а реле будут вынесены в коробку на улицу, поближе к мотору и клапанам.
Для сборки управляющего блока мне понадобился кусок мебельного щита, перьевые сверла для отверстий под кнопки и под джойстик, и лобзик, для отверстия под экран

Далее разветвители (телефонные и под витую пару) вскрываем, паяем к ним провода и садим на термоклей. Здесь видно более подробно

Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками

Экранчик и часы реального времени были объединены в одно целое вот таким способом

Автоматический полив для дачи своими руками

И далее эта конструкция была торжественно закреплена саморезами в коробке. Так же был прикручен джойстик. Теперь внешне блок управления выглядит так:

Автоматический полив для дачи своими руками

Осталось закинуть в коробку мозги — и блок управления готов.

Теперь внимание. Эстетам, детям и беременным женщинам настоятельно не рекомендуется открывать следующий спойлер… Потому что красивых плат, которые умеют делать Yurok, ksiman и прочие известные здесь личности, вы не увидите. Зато вы увидите монтаж платы в лучших традициях КитайПодвалПрома: проводки вместо дорожек, и термоклей, чтобы это все не развалилось. Поэтому еще раз предупреждаю: не надо открывать спойлер! Поверьте на слово, эта плата работает, но лучше ее не видеть:)

Блок управления соединен с блоком реле двумя витыми парами. Для взаимодействия «мозгов» с клапанами и мотором достаточно 5 управляющих линий и еще 2 линии для питания реле (5 вольт и земля), но ведь есть еще расходомер (питание уже есть, значит нужна всего 1 линия), датчик влажности почвы (3 линии) и 4 светодиода, отображающие текущее состояние клапанов. Итого — используется 15 линий из 16 доступных.

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

Автоматический полив для дачи своими руками

На клеммнике выведены провода к электромагнитным клапанам

Автоматический полив для дачи своими руками

Снаружи я прикрутил розетку для мотора, управляемую ардуиной, и выключатель для ручного включения мотора

Автоматический полив для дачи своими руками

Все провода разведены и выведены куда нужно… вроде бы

Автоматический полив для дачи своими руками

На внутренней стенке появилась розетка для 12-вольтового блока питания, он тоже здесь виден

Автоматический полив для дачи своими руками

В готовом виде все это смотрится примерно так:

Автоматический полив для дачи своими руками

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

4. Описание функционала

Собственно, вот неполный набор электронных компонентов для сборки

Автоматический полив для дачи своими руками

Сначала был собран примерно вот такой «осьминог» из ардуины и небольшого набора периферии, именно это чудо я использовал для отладки скетча

Автоматический полив для дачи своими руками

Минимальный как я уже говорил, было решено сделать управление джойстиком, и вырисовывался следующий минимально необходимый набор пунктов меню:

1. Настройки даты и времени

2. Настройки расписания полива

3. Информация с датчиков

4. Возможность принудительной перезагрузки

Реализовать его мне удалось, причем получилось даже обойтись англоязычным дисплеем 1602 — помогла библиотека LCD_1602_RUS, которая позволила «сделать» 8 кириллических символов. После этого вперемешку с английскими буквами можно было составить вполне понятные для пожилых людей (моих родителей) русские названия пунктов меню. Конечный размер скетча — чуть меньше 1400 строк, втиснутых в 45 килобайт.
Результат компиляции:
Скетч использует 19 626 байт (63%) памяти устройства. Всего доступно 30 720 байт.
Глобальные переменные используют 1 316 байт (64%) динамической памяти, оставляя 732 байт для локальных переменных. Максимум: 2 048 байт.

Никаких предупреждений о нехватке памяти, к счастью, уже нет.
Самого скетча пока здесь нет, со временем выложу. Хочу немного «причесать» код:)
Что получилось и что не получилось? Ну, на осьминоге получилось все:) К сожалению, жизнь вносит свои коррективы, и после разнесения мозгов, релюшек и сенсоров кое-что работать перестало… Во-первых, аналоговые датчики. Увы, но сейчас из-за длины кабелей они у меня не работают — соответственно, пункт меню «ПОЧВА» показывает нулевую температуру и влажность. Есть определенные мысли, как это исправить, но пока — некогда. У родителей на даче бываю не слишком часто и занимаюсь не только поливатором, а тут еще очередная командировка… В любом случае — я буду рад дельным советам от читателей.
Во-вторых, сходу не удалось подключить расходомер — на этот раз вовсе не из-за длины кабелей. Я сгоряча поставил его на вход в мотор, сразу после обратного клапана, как оказалось — ему там не место. Датчик, видимо, не совсем герметичен, и при подъеме воды идет подсос воздуха через микрощели в корпусе, как результат — насос не тянет воду. Пока снял его, потом попробую поставить на выход насоса — должно работать, но возможно — будет немного подтекать.
Теперь по работающему функционалу. Ну, с расписанием понятно — это именно то, ради чего затевался проект. Но иногда нужно просто включить ненадолго поливалку, и для этого я сделал два режима принудительного полива: ограниченный и бесконечный. Ограниченный режим включается коротким нажатием на кнопку, длительность такого полива можно указать в настройках. Если нажать на кнопку еще раз — полив будет прекращен досрочно. По длинному нажатию включается бесконечный полив — выключить его можно опять таки нажатием на кнопку.
Ну и приятное дополнение — просмотр температуры в приямке с насосной станцией, в теплице и на улице.
Раз в сутки запланирована принудительная перезагрузка ардуины.

5. Собираем поливатор
Здесь я сделаю небольшое отступление и приведу технические характеристики водонапорных компонентов.
Насос JY1000 польской фирмы Omnigena, согласно утверждениям производителя, имеет такие характеристики:
Производительность: 60 л/мин;
Максимальная высота подъема: 50 м;
Потребляемая мощность: 1100 Вт;
Максимальная глубина самовсасывания: 8 м.

Ну и конечно, не стоит забывать, что производительность очень сильно зависит от глубины скважины и забитости фильтров.

Электромагнитный клапан безымянный, но я находил на множестве страниц (например здесь) примерно такие характеристики:
Напряжение: DC 12 В;
Ток: 0.5A;
Давление: 0.02-0.8 МПа;
Производительность 3-25 л/мин.
Кроме того, встречается оптимистичное утверждение: Water pressure: hydrostatic pressure of 1.2 MPa, which lasted 5min, no rupture, deformation, leakage.. Т.е. в течение 5 минут клапан выдерживает даже существенно более высокое давление, чем стандартное «не более 0.8 МПа».
Вот здесь можно рассмотреть клапан в разных ракурсах
Автоматический полив для дачи своими руками
Также могу отметить, что тестировал клапан на более слабом блоке питания, и он без проблем открылся при 9 вольтах.
А для того, чтобы клапаны без проблем работали в условиях огородной сырости, мне пришлось включить смекалку и найти применение старым пластиковым бутылкам.
Привет, бонаква!
Автоматический полив для дачи своими руками
Вот — один клапан в такой одежке, может здесь видно получше
Автоматический полив для дачи своими руками

Производительность разбрызгивателя, согласно данным отсюда, составляет 700 — 1140 л/ч, или примерно 11.7-19 л/мин при давлении жидкости 0,21-0,35 МПа соответственно.
Как видно, в идеальных условиях насос выдает слишком большой поток, который просто физически не «осилит» ни клапан, ни тем более разбрызгиватель. Забегая вперед, скажу, что скважина в моем случае далеко не идеальная и до 60 л/мин она не дотягивала. Потом я прикинул, что напор упадет также и из-за длины шланга от мотора до самого дальнего разбрызгивателя (почти 30 метров), решил сильно не заморачиваться по этому поводу. Потом, в ходе «производственных испытаний», подключил к мотору одновременно три разбрызгивателя. Оказалось, что они льют очень слабо, да еще и давления не хватает на то, чтобы изменилось направление вращения. Выглядело так: разбрызгиватель крутится до тех пор, пока не упрется в ограничитель сектора, и вращение прекращается. Если убрать ограничитель сектора, то по кругу вращение более-менее без проблем, но радиус полива — метра 2-3. Отбросил один разбрызгиватель — стало немного лучше и они даже пытались вертеться, но радиус все равно был максимум метра 4. А вот один разбрызгиватель работает замечательно — бьет очень далеко (замерял рулеткой, на 9 метров брызгает только в путь), и никаких проблем с вращением.
Сами разбрызгиватели можно регулировать под свои нужды:
— разбить струю, выкрутив винт напротив сопла;
— изменить угол и соответственно дальность струи, поднимая или опуская пластину напротив сопла;
— изменить сектор полива с помощью ограничителей, или вообще убрать фиксатор ограничителя.
Вот фотографии «элементов управления» с близкого расстояния
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Брызгалка на держателе и с подведенным шлангом/проводом выглядит вот так:
Автоматический полив для дачи своими руками

6. Работа
Блок управления, кроме текущего времени, умеет показывать всякую полезную информацию вроде температуры и влажности. Там же задается начало и длительность полива по расписанию, и длительность полива при активации кнопкой.
Коротким нажатием одной из 4 кнопок можно включить полив на определенное время (задается в настройках), длинное нажатие включает «бесконечный» режим, т.е. отключить полив на заданной линии можно будет только этой же кнопкой, или он отключится, если по расписанию линию необходимо отключить. Хотя зачем я повторяюсь? Даешь слайды!
Вот здесь видны настройки:
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками

Вот здесь — смотрим температуру и влажность
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками

Эти датчики пока ничего не говорят, почему — объяснял выше
Автоматический полив для дачи своими руками
Автоматический полив для дачи своими руками

И, наконец… Семь бед — один ресет:
Автоматический полив для дачи своими руками

А теперь — видео, куда ж без него.
1. Мини-экскурсия — что есть в меню поливатора. Датчики были не подключены, поэтому все показывают по нулям.

2. Настройка поливатора на включение 2 и 3 линии длительностью по одной минуте

3. Как выглядит полив по расписанию, которое было задано для теста

4. Как выглядит полив по расписанию на экране поливатора

5. Тестовый полив с кнопки — включение и выключение. Работу разбрызгивателя не показываю, но чесслово — все работает

6. Разбрызгиватель и его настройка: что где крутится, поворачивается и фиксируется

7. Работа разбрызгивателя на небольшом секторе с близкого расстояния

7. Сравнение с рыночными предложениями
Доступный вариант на российском рынке — системы Gardena, продается в OBI. Можно взять блок управления Gardena modular за 13590 рублей и еще 4 клапана по 3990 рублей, итоговая цена будет всего-то 29550. Здорово, конечно, и выглядит красиво. Но отдавать почти 500 американских денег… И насколько я понимаю — здесь в комплекте нет разбрызгивателей, соединителей и шлангов! Ладно, смотрим дальше.
Опять Gardena в том же магазине, но здесь уже система на 6 линий. Состоит из таймера подачи воды Gardena MasterControl за 11190 рублей и распределителя воды за 6990 рублей — итого 18180, или почти 300 бакинских… Шланги и разбрызгиватели, как и в предыдущем случае, нужно покупать отдельно.
Ebay сходу предложил блок управления вместе с клапанами Melnor Aquatimer примерно за 60 долларов, плюс ~35$ стоит доставка — в итоге почти сотня. Как вариант, доступны контроллеры (без клапанов) Rain Bird ESP-RZX Series 4 и Hunter XC 400i по ценам не ниже 75 баксов, не считая доставки. Клапаны отдельно; для хантера, например, они идут от 22 баксов за штуку, оптом дешевле.

И вместо послесловия. Имело ли смысл мне заморачиваться изобретением велосипеда, если он уже есть на рынке? Думаю, что да. Что лично я от этого получил? Во-первых, существенную экономию, во-вторых, возможность реализовать систему так, как это нужно именно мне, в-третьих — мне это просто было интересно. Реализуйте свои проекты и не бойтесь делать ошибки. Не ошибается только тот, кто ничего не делает!

Теперь обещанный код для ардуины. Скачать его можно отсюда, комментарии в тексте я по возможности добавил, но конкретно в этом коде возможно не работает (или неправильно работает) расходомер.

Автополивщик растений на arduino

Автоматический полив для дачи своими руками

Материалы и инструменты:

– Arduino Uno- Растение в горшке с сухой землёй- Водяной насос- Датчик влажности почвы со шлейфом- Силовой ключ (тройка) со шлейфом- Клеммник нажимной- Провод «папа-папа» ×1 шт- Провод «мама-папа» ×1 шт- Блок питания с разъёмом USB- USB кабель

Сборка:

Дисплей подключается к контакту 3 тройка-шилда. При соединении всех проводов данного типа важно удостовериться, что с контактом GND соединялся чёрный провод.Далее, силовой ключ подключается к контакту 5.

У помпы на концах проводов отсутствуют контакты, поэтому используется клеммник. Если есть навык в пайке контактов, тогда правильнее припаивать к проводам «Штырьковые соединители».Вот так выглядит подключённое питание:Далее, подключают сенсор влажности земли.

С помощью Arduino IDE программируется Arduino Uno прикреплённым ниже файлом. Сам сенсор влажности, конечно же, втыкается в почву. Подсоединяется конец трубки с водой в землю.

Если горшок весит немного, тогда автор рекомендует закрепить отдельно трубку так, чтобы растение не было перевернуто. Далее, помпа опускается в удобную ёмкость с водой, и подключается питание.

Калибровка:

Чтобы показания датчика были верными требуется провести несложную процедуру его калибровки. Потому что точность показаний напрямую зависит от кислотности почвы.1. При воткнутом в сухой горшок датчике записываются показания с дисплея. Это значение ничто иное как минимум влажности.2.

Цветок поливают водой и дожидаются пока вода не впитается полностью в землю, и показания сенсора остановятся на одном значении. Данные записываются и помечаются как максимальная влажность.3. В файле прошивки изменяются значения констант HUMIDY_MIN устанавливается минимальная влажность, и HUMIDY_MAX соответственно максимальная влажность.

Arduino Uno прошивается заново.

Масштабирование проекта

В данной статье описан способ полива всего для одного цветка. Но зачастую требуются поливать сразу несколько растений. Конечно, можно подключить к Arduino большее количество помп и датчиков влажности, но насколько это будет затратно. Автор в этом случае предлагает решение дешёвое и простое.

В трубке, которая подсоединена к помпе проделываются дырочки шилом, расстояние между ними около 30 сантиметров, в эти отверстия втыкаются стержни из использованной шариковой ручки.Горшки в доме,как правило, стоят в ряд, например, на подоконнике. Трубка ложится на горшки так чтобы каждое отверстие соответствовало горшку.

Только вот решение о поливе будет приниматься устройством лишь по одному горшку. Лучше всего это будет работать если горшки одинакового размера зачастую на подоконниках так и случается. Сохнуть почва в них будет примерно одинаково.

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

irrigator.rar [675 b] (скачиваний: 387)

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

Идея

Описание

Исполнение

Итоговая оценка: 6.5

Делаем автополив комнатного цветка на arduino за 15 минут

После того как у меня сдох очередной цветок, я понял, что неплохо было бы как-то автоматизировать процесс полива.Не мудрствуя лукаво, я решил собрать конструкцию, которая бы поливала цветок вместо меня. В итоге у меня получился вот такой аппарат, который вполне справляется со своими обязанностями:

При помощи двух регуляторов можно настроить объём поливаемой за раз воды, а также период между поливами. Кому интересно — далее подробная инструкция, как сделать такое устройство.

Для сборки поливалки вам понадобится некоторое количество компонентов и не более чем 30 минут свободного времени.

Используемые компоненты:

  • Arduino Mega (она просто была под рукой, но любая другая подойдёт)
  • Насос и силиконовая трубка (подойдёт насос омывателя автомобильных стёкол — можно купить в любых автозапчастях или можно купить маленький погружной насос на ebay)
  • Блок питания
  • Два переменных резистора для регулировки (любые)
  • Транзистор IRL3705N
  • Два резистора (100 Ом и 100 кОм)
  • Диод (любой)
  • Резервуар для воды (в моем случае пластиковая коробочка из Ikea)
  • Макетка

Собираем всё по такой схеме:

Или нагляднее:

Вот что получилось у меня:

Сначала протестим насос. Подадим на него 5В. Если он зажужжал, всё в порядке, двигаемся дальше.

Теперь подключим насос к Arduino. Сделаем для управления насоса с ардуино небольшую обвязку на макетке.

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

int pumpPin = 5; void setup() { pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW); } void loop() { digitalWrite(pumpPin, HIGH); delay(1000); digitalWrite(pumpPin, LOW); delay(1000);}

Если он периодически жужжит, значит, снова всё в порядке.

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

Зальём такой код на Ардуино

int volumePin = A0; void setup() { pinMode(volumePin, INPUT); Serial.begin(9600);} void loop() { Serial.println(analogRead(volumePin)); delay(100); }

Зайдём в Serial Monitor и убедимся, что есть реакция на поворот регулятора. Он должен меняться примерно от 0 до 1024

Теперь осталось заставить заработать всё это вместе.

Вот непосредственно код поливалки:

// Первый регулятор управляет временем, которое будет литься вода (от 4 до 15 секунд)#define MAX_FLOWTIME 15 // seconds#define MIN_FLOWTIME 4 // seconds // Второй регулятор управляет частотой полива от раза в день до раза в неделю#define MAX_PERIOD 7 // days#define MIN_PERIOD 1 // days #define MAX 1015#define MIN 0 int volumePin = A0;

// Пин, к которому подцеплен регулятор, отвечающий за объём поливаемой водыint periodPin = A1; // Пин, к которому подцепелн регулятор, отвечающий за период между поливамиint pumpPin = 5; // Пин, к которому подсоединено управление насосом int volume;int period;

// Процедура, включающая насос на время, заданное в volumevoid water() { digitalWrite(pumpPin, HIGH); // включаем насос delay(volume); digitalWrite(pumpPin, LOW); // выключаем насос delay(period); } void setup() { pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW); } void loop()

{ // Считываем значения регуляторов (переменных резисторов) и приводим их к заданным пределам volume = map(analogRead(volumePin), MIN, MAX, MIN_FLOWTIME, MAX_FLOWTIME) * 1000; period = map(analogRead(periodPin), MIN, MAX, MIN_PERIOD, MAX_PERIOD) * 1000 * 60 * 60 * 24; water();}

Вот так выглядит конечный результат в работе:

  • youtu.be/qHmjWkZ_seM — цветок
  • youtu.be/3VdgH9uwMCY — устройство

В ближайшем будущем думаю сюда добавить сенсор уровня воды в резервуаре и датчик влажности почвы.

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

// константы const int dw = 12; // датчик уровня воды на 12 пин const int dg = 11; // датчик влажности почвы на 11 пин const int nasos = 2; // управление насосом на 2 пин const int ledG = 3; // зеленый светодиод на 3 пин const int ledR = 4; // красный светодиод на 4 пин // переменные int dwS = 0; // состояние датчика уровня воды int dgS = 0; // состояние датчика уровня влажности почвы //установки void setup() { // объявляем пины светодиодов и насоса как выходы:

pinMode(nasos, OUTPUT); pinMode(ledG, OUTPUT); pinMode(ledR, OUTPUT); // объявляем пины датчиков и насоса как входы: pinMode(dw, INPUT); pinMode(dg, INPUT); } // рабочий цикл void 1оор(){ // считываем состояния датчика уровня жидкости dwS = digitalRead(dw); // если воды много — включаем зеленый, иначе красный if (dwS == LOW)

{ digitalWrite(ledG, HIGH); digitalWrite(ledR, LOW); } else { digitalWrite(ledG, LOW); digitalWrite(ledR, HIGH); } // считываем состояния датчика влажности почвы dgS = digitalRead(dg); // если почва сухая, включаем полив if (dgS == LOW) { digitalWrite(nasos, HIGH); delay(2000); digitalWrite(nasos, LOW); delay(30000); } else { digitalWrite(nasos, LOW); }

Относительно кода хочу сказать следующее. Для его упрощения я поставил команды delay, на которые сам же ругался. Из-за delay в один момент наше устройство застывает на 30 секунд (а может, придется поставить и больше).

Но в данном устройстве это не критично.

Если в итоге устройство будет поливать 10 растений и произойдет совпадение, что все надо полить одновременно, думаю, 300 секунд, которые придется ждать последнему растению, не так уж важны.

А вот для источника питания такое решение сыграет положительную роль: оно не позволит устройству включить 10 насосов одновременно.

Первый delay(2000) включает на 2 секунды насос, если у вас большое растение в большом горшке, то время надо увеличить, если насос очень производительный, то, наоборот, уменьшить.

Второй delay(30000) дает почве 30 секунд пропитаться водой, об этом я писал ранее. Возможно, это время тоже нужно регулировать.

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

В этот же корпус помещаем микросхему uln2003, резисторы, выводим на лицевую панель светодиоды и устанавливаем разъем для подключения датчиков и насоса. Если насос мощный и uln греется, то в корпусе сверлим отверстия для вентиляции.

Дополнительный индикатор включения устройства устанавливать не нужно, один из светодиодов уровня воды включен всегда, он и выполнит эту функцию.

Корпус для электронной части можно изготовить из любого материала или подобрать готовый. Для емкости можно применить пластиковую бутылку или стеклянную банку подходящего размера, а можно склеить из пластика. Крепим датчик уровня жидкости и устанавливаем насос.

Если насос придется погружать на дно (а бывают и такие), то очень аккуратно изолируем все его токоведущие провода. От насоса до горшка с растением проводим трубку подходящего диаметра. Купить такую можно в магазине автозапчастей вместе с насосом или подобрать подходящую резиновую или силиконовую.

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

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

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

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

По ходу эксперимента следите за температурой электронных компонентов.

Не допускайте перегрева!

Когда все отлажено, переходите к испытаниям практическим, взяв самое неприхотливое растение. Внимательно следите за состоянием растения, если что-то не так, останавливайте эксперимент до выяснения причин.

Если все нормально, подключайте к Arduino еще один датчик и насос, дописывайте код и автоматизируйте полив еще одного растения. Без дополнительного расширения портов Arduino справится с десятком растений.

Приложение.

Код без комментариев: const int dw = 12; const int dg = 11; const int nasos = 2; const int ledG = 3; const int ledR = 4; int dwS = 0; int dgS = 0; void setup() { pinMode(nasos, OUTPUT); pinMode(ledG, OUTPUT); pinMode(ledR, OUTPUT); pinMode(dw, INPUT); pinMode(dg, INPUT); } void loop(){ dwS = digitalRead(dw); if (dwS == LOW) { digitalWrite(ledG, HIGH); digitalWrite(ledR, LOW); } else { digitalWrite(ledG, LOW); digitalWrite(ledR, HIGH); } dgS = digitalRead(dg); if (dgS == LOW) { digitalWrite(nasos, HIGH); delay(2000); digitalWrite(nasos, LOW); delay(30000); }

else { digitalWrite(nasos, LOW); }}

Решение задачи

Надо было определиться с:

  1. чем качать воду
  2. как считать объём воды, который ушёл на полив каждого горшка
  3. как определить, что надо поливать.
  4. как сделать индивидуальный полив. То есть каждый горшок сам по себе.
  5. ночью хочется спать, а эта штука шумновата.

Мозгами этого всего будет ардуино, точнее, atmega328 в исполнении PDIP-28, ибо паяю я так себе.

Пятый пункт с “тихими часом” решается с помощью микросхемы часов. В моём случае DS1302.

Решение было найдено весной, когда мне попалась ссылка на российский инет-магазинчик, в котором оказались небольшие насосы-помпы на 6В и, самое главное, счётчики расхода жидкости:

Датчик(слева) — импульсного типа, повесим его выход на пин, который поддерживает прерывание. и будем по этим импульсам считать протёкший по шлангу объём жидкости.

Два пункта решены. То,что счётчик на шланг 6мм, а насос — на 3мм, было решено аквариумным шлангом на 4мм, который просто размачивался в кипятке и натягивался. Стоимость шланга — 11-20руб за метр.

Спасибо зоомагазину “Бетховен” на водном стадионе, где мне удалось купить 20метров за 11руб и потом ещё добрать 28метров за 17руб. Аквариумный шланг ещё удобен тем, что его отрезки можно соединять нарезанными по 1.

5-2см кусками стержня от гелевой ручки, что весьма бюджетно относительно покупки соединителей(10-30руб в зависимости от продавца).

Да, дальше нам потребуется много-много аквариумного шланга и много-много проводов(у меня на 4 окна ушло почти 100м шланга и метров 150 провода. Но делаем скидку на то, что из-за особенностей окон приходилось ставить на дальнюю от основной электроники половину окна).

Итак. Нам есть, чем качать, и есть, чем измерять сколько накачали. Теперь надо раздать воду на кучу горшков. Независимо раздать. Идея с кучей сервомашинок и краников отпала из-за стоимости. Зато поиск по интернету дал идею с сервомашинкой и кучей стаканчиков. Первая версия работала на пластиковых стаканах на 0.

25(которые из чуток хрупкого пластика, а не самые дешёвые). Хорошо, но мало. Достать пластиковые пробирки подходящего диаметра (пара сантиметров)  и ёмкости( 50 мл) оказалось жуткой проблемой в этом странном городе.  Для второй версии была растёрзана старая формочка для льда, попавшийся под руку флакон от чего-то и два стакана.

И это заработало!

“Кран” сделан из завалявшейся трубки для аквариумана 4мм(купил на “птичке” много лет назад), двух Г-образных переходников(источник тот же).

Так как сервомашинка слабовата и я забыл сделать отступ от стены побольше, когда вырезал основание(материал-пластик для откосов окон), то используется второй Г-образник для того, чтобы не было перегиба шланга. Сервомашинка — TowerPro SG-90.

Управление доверим arduino

Для нее это тривиальная задача. Датчики одним контактом подключаем к пину Arduino и через высокоомный резистор подтягиваем к «земле», другим контактом — к 5 В питания Arduino.

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

Если ток меньше 3,5 А, то можно для подключения насоса применить транзисторную сборку uln2003.

Каждый выход uln2003 может управлять нагрузкой 0,5 А. Я подключил параллельно все семь входов и выходов для увеличения тока нагрузки: 7×0,5=3,5 А.

Если ток насоса больше 3,5 А, то можно поставить полевой транзистор, например irf630 (но к нему нужны дополнительные элементы). Этот транзистор выдерживает ток до 9 А.

Если вашему насосу требуется больший ток, то меняйте насос, а то у нас получится не поливалка, а брандспойт 🙂

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

Я бы остановился на аккумуляторном питании, насосы включаются не часто и на короткое время, поэтому в блоке питания, включенном в сеть постоянно, нет необходимости.

Кроме того, со временем можно добавить в программу контроль заряда аккумулятора и сигнализацию необходимости зарядки.

Блок-схема управляющего алгоритма представлена на рисунке ниже. После запуска устройства в непрерывном рабочем цикле опрашиваются датчики и, исходя из состояния каждого датчика, выполняются действия. Датчик уровня воды управляет светодиодами. Датчик влажности почвы управляет насосом.

Программа простая, но требует корректировки в каждом конкретном случае. Особенно нужно уделить внимание паузе между включением и выключением насоса: чем меньше цветочный горшок и чем больше производительность насоса, тем меньше должна быть пауза. Также от размеров горшка зависит и пауза после выключения насоса.

После полива земля должна пропитаться, иначе, если влага до датчика не дойдет, то система включит полив еще раз. Оптимальный вариант — трубку подачи воды разместить рядом с датчиком, чтобы земля в районе датчика пропитывалась сразу.

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

Оцените статью
Дачный мир
Добавить комментарий