Автоматический полив для дачи своими руками
Некоторое время назад я прикинул, что было бы неплохо автоматизировать полив на даче. Обзоры некоторых пользователей муськи также сыграли не последнюю роль в принятии этого решения. Но поскольку электроника — это не мой профиль, решено было делать аппаратную часть проекта максимально упрощенной, и по возможности обойтись без ЛУТ, травления плат и прочих сложностей. Короче, хотелось реализовать свою систему как некий конструктор, собранный из стандартных компонентов, а получилось это или нет — решать вам.
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 баксов за штуку, оптом дешевле.
И вместо послесловия. Имело ли смысл мне заморачиваться изобретением велосипеда, если он уже есть на рынке? Думаю, что да. Что лично я от этого получил? Во-первых, существенную экономию, во-вторых, возможность реализовать систему так, как это нужно именно мне, в-третьих — мне это просто было интересно. Реализуйте свои проекты и не бойтесь делать ошибки. Не ошибается только тот, кто ничего не делает!
Теперь обещанный код для ардуины. Скачать его можно отсюда, комментарии в тексте я по возможности добавил, но конкретно в этом коде возможно не работает (или неправильно работает) расходомер.
Заметки для мастера — автоматы для полива
Избавится от необходимости поливать цветы можно поручить автомату, схема которого показана на рис.1.

Рис.1
Вместо звукового генератора включено электронное реле. При подсыхании почвы срабатывает электромагнитное реле Р (РЭС-10, паспорт РСТ,524.308) и его контакты включают питание микродвигателя М (МЭД-40), который через понижающий редуктор вращает диск-черпалку из оргстекла или гетинакса толщиной 10 мм. В диске высверлены наклонные углубления, как показано на рисунке. Диск погружен в плоский сосуд с запасом воды. При вращении диска нижние углубления зачерпывают воду, как ковшики, и, поднимаясь, выливают в лоток, соединенный с цветочным горшком. Мотор будет работать до тех пор, пока вода не увлажнит достаточно почву и транзисторы Т1 и Т2 закроются. Электроды датчика влажности должны быть за изолированы лаком или поливинилхлоридной трубкой по всей длине, исключая нижние концы длиной 10-15 мм. Такие датчики будут реагировать на влажность почвы у самого дна цветочного горшка.
«Сотовая поливалка» для цветов
Для сборки данного устройства, представленного на рис.2, нужен старый сотовый телефон с гарнитурой, несколько деталей, и автомобильное реле с насосом стеклоомывателя.

Рис.2
С телефонного капсюля гарнитуры сигнал подается на диодный детектор. Далее – транзисторный ключ с реле на выходе. А реле управляет питанием насоса.
Чтобы полить цветы нужно позвонить на сотовый телефон. Сигнал вызова выпрямится детектором VD1-VD2 в постоянное напряжение, которое откроет ключ VT1-VT2. Реле включит насос, и тот станет накачивать поливочную жидкость в горшки. Продолжительность накачки равна времени, пока будет держаться вызов. Затем вызов сбрасывается и полив отключается.
Для надежной работы, конструкция питается напряжением 12В на ток не ниже 1А.
Смирнов А.
Автоматический полив на садовом участке
Далеко не каждый садовод постоянно находится на своем садовом участке. Но летом, особенно в жаркие и сухие времена растениям требуется регулярный полив. Обеспечить регулярный полив без участия садовода поможет несложная автоматика.
Большинство растений обычно поливают утром. Для этого можна приспособить фотодатчик, который будет включать полив с восходом солнца. Но ведь бывает и так, что ночью прошел хороший дождь, и в поливе не только нет необходимости, но он даже может оказаться вредным. На этот случай автомат нужно дополнить датчиком влажности почвы.

Рис.3
На рис.3 показана схема автомата, который включает поливальный насос (или клапана водовода) если имеются два обстоятельства – солнце взошло и почва сухая.
За освещенностью следит фотодатчик на фотодиоде VD1 или фоторезисторе.
За влажностью почвы следит датчик влаги. В простейшем случае он представляет собой два штыря из нержавейки, воткнутых в почву. Чтобы определить влагу на значительной площади можно сделать несколько таких датчиков и включить их последовательно, соединив их между собой длинными монтажными проводами. Настраивается датчик влаги переменным резистором R2.
При наступлении утра фотодатчик включит схему и на обмотку реле подастся напряжение питания. Его контакты замкнутся и включат насос, накачивающий воду для полива. Это будет продолжаться до тех пор, пока влажность почвы не достигнет установленной резистором R2 величины. Насос выключится. Если в течении дня почва высохнет полив повторится. Если утром и днем почва будет влажная, то полива не будет.
Куваев Д.И.
Логика и силовая часть. разделение
Уже на первых порах, при работе с шаровыми клапанами, иногда случались проблемы в виде зависаний контроллера. С внедрением мембранного насоса стало наглядным влияние наводок от мощных нагрузок на работу логики. Тогда у меня ещё не было осциллографа, чтобы увидеть это воочию. Но частота зависаний и сбоев стала невыносимой. То о чём я только читал, подозревал и предполагал, стало закономерным.
Итак, было решено сделать отдельно контроллер, где будет работать логика устройства вкупе с частью измерительных приборов и, отдельно, систему управления силовой частью – насосами, дозаторами удобрений, клапанами. Силовую систему предполагалось сделать модульной, расширяемой.
Чтобы если понадобится изменить количество исполнительных компонентов в аппарате, можно было бы их добавлять/убавлять без переделки схемотехники. Дабы исключить проникновение электрических помех из силовой части в логику, была задумана гальваническая изоляция.
Покумекав над требованиями, набросал первую версию силового модуля и новый контроллер.В первой версии силового модуля для управления нагрузками была неудачно выбрана микросхема L293. Неудачной она оказалась потому, что в её составе использованы биполярные ключи.
Это даёт немалое собственное потребление (и, соответственно, тепловыделение) микросхемы в моменты работы нагрузок. Радиаторы, установленные на микросхемах работали на пределе. В следующем варианте схемы были выбраны драйверы L6205PD. Они выполнены на полевых транзисторах и грелись уже существенно меньше.
При этом, позволяли нагружать на каждый канал значительно больше тока. Кроме того, корпус микросхем с окончанием PD в названии микросхемы имеет хорошее теплоотводящее основание, которое позволяет отводить тепло прямо в плату. В результате, в дизайн платы были заложены приличные площади меди как раз для этой функции.
Испытания показали удовлетворительные результаты, без использования дополнительных радиаторов, в условиях пассивного охлаждения. Следует заметить, что крепилась плата управления нагрузками внутри пластикового короба, вместе с основным контроллером и Raspberry Pi.
Поскольку разделение силовой и логической частей делалось ради снижения влияния помех от мощных нагрузок на логику, то здесь была применена гальваническая развязка. Выполнена она была на ADUM1250. Соответственно, на плате силового драйвера был поставлен I2C-декодер (экспандер) – MCP23017.
Рядом с ADUM разместилась сдвоенная оптопара, которая одним каналом делала декодеру сброс и вторым каналом включала/выключала питание на микросхемы драйверов через мощный полевой транзистор. Для питания MCP23017 изначально использовался MINI360, который впоследствии был заменен на LM317.
Схема драйвера может работать начиная с около 10 вольт и выше. Потолок не проверял, но оценочно можно смело утверждать 24В, может 36В (теоретически, это разумный предел для LM317). Для L6205 заявлены вообще 50В. На практике вся система проверялась в работе на 12В.
На 4 микросхемы L6205, установленных на одной плате, получается 16 каналов управления для исполнительны устройств. Модульность позволяет подключать несколько плат. Для этого необходимо задать разные I2C адреса для MCP23017 при помощи трёх резисторов, предусмотренных на плате.
Одиночные L6205 каналы можно сдваивать (согласно аппноту), чтобы получить больше пропускной способности. Именно так и были запитаны чёрные клапаны (наиболее прожорливые), на минимальной конфигурации системы полива, где одной платы управления нагрузками хватает в самый раз.
Что касается основного контроллера, то его крепежные отверстия были расположены так, чтобы можно было механически и электрически соединить его сразу с силовым драйвером, расположив один над другим, с расстоянием между плат в пару сантиметров. Были сомнения, относительно электромагнитных наводок с одной платы на другую, по воздуху.
На основной, системный насос, поскольку он имеет приличную инерцию и мощность, в паре-другой сантиметров от мотора был поставлен ультрабыстрый диод в обратной полярности, чтобы гасить обратное напряжение (fly back diode). Насос, ввиду хорошего потребляемого тока, был запитан не напрямую в силовой драйвер, а через полевой транзистор, затвор которого уже подключен к силовому драйверу.
На клапанах и дозаторах, подключенных напрямую к L6205PD силового драйвера проводились эксперименты с быстрым (десятки раз в секунду) включением и выключением, без обратных диодов. Ничего не погорело, несмотря на опасения (особенно по части соленоидов клапанов).
Сигнализатор полива для растений
Устройство сигнализации для своевременного полива комнатных растений. Небольшой зонд, помещается в почву рядом с растением, при высыхании грунта, он излучает негромкий звук сверчка, с большими периодами повторения, напоминая вам поливать растение по его потребности избегая переувлажнения. Применяется новая технология емкостного измерение влажности в отличие от измерения сопротивления почвы, прибор не вступает в электрический контакт с почвой, не подвержен коррозии электродов, нет электролиза почвы, что позволяет повысить точность и увеличить срок службы батареи.
При разработке было обращено внимание на то, чтобы не сделать его источником раздражения, сигнализатор будет молчать, когда будет темно он определяет это день или ночь. Уровень тревоги может быть установлен для каждого растения индивидуально.
Технические характеристики:
Сигнализатор выполнен на плате и не имеет корпуса,, надо не мочить элементы.
1. Размеры: 140*15 мм
2. Рабочее напряжение: 3 батарейка CR2032 3v, или аналог потоньше, чем больше батарея, тем дольше работает.
Применение: Садовые, комнатные растения, интеллектуальный сельское хозяйство
Настройка сигнализатора полива:
Вставить батарейку CR2032 3v. Прибор направив кнопкой и лампой в сторону света (окна), воткнуть по метке в сухую почву которая нуждается в поливе, немного утрамбовать землю вокруг и больше не двигать. Аккуратно нажать кнопку и подождать пока прибор настроится и запомнит уровень влажности, включите освещение, если темно. Звук будет работать только если будет достаточно света попадать на сторону где кнопка прибора. Услышим звуки, значит при высыхания почвы до такого же состоянии будут исходить такие же звуки или моргание светодиода если нет освещения. Полейте почву, звуки или моргания должны прекратиться. Если растение уже слишком сухое, а сверчок молчит, осторожно нажмите кнопку, не шевеля прибором, подождите 5 секунд. и поливать растение. Таким образом, Сверчок устанавливается на новый «слишком сухой» уровень. Если сверчок начинает звучать, когда растение все еще слишком влажное, немного вытащите устройство из почвы — 1 см , нажмите кнопку и воткните сигнализатор обратно. Периодически делайте калибровку.
Сигнализатор полива растений
Если вы забываете поливать свой любимый цветок, то сделайте сигнализатор полива растений, как это сделал мастер-самодельщик.
Инструменты и материалы:
-Ардуино нано;
-Соединительные кабели;
-Макетная плата;
-Светодиод;
-Батарея 9 В;
-Аккумуляторный разъем;
-ЖК-экран Nokia 5110;
-Сервопривод;
-Датчик влажности;
-Мини USB кабель;
-Фанера 3мм;
-Петля мебельная 25×22 мм;
-Липучка;
-Резистор 1000 Ом — 4 шт;
-Крепеж;
-Столярный клей;
-Термоусадочные трубки;
-Лазерный резак;
-3D-принтер;
-Паяльное оборудование;
-Компьютер;
Шаг первый: схема
Собирается все по схеме ниже. Места соединения изолирует термотрубкой.
Для датчика влажности собирает разъем. Здесь нужны только три провода красный , черный -, желтый к AnalogPin A1.
Подключается к Ардуино следующим образом:
Серводвигатель — Pin 5
Кнопка Pin — 2
Светодиод RGB — красный — Pin 10, зеленый — Pin 11, синий — Pin 12
Датчик влажности — Pin 1
ЖК-экран Nokia (справа налево) — Pin 9, 8, 7, 6, 4, питание, 3, земля
Шаг второй: код
Дальше нужно загрузить код.
#include
#include
#include"rgb_lcd.h"
rgb_lcd lcd;
constint numberOfPlants = 4;
constint noPlant = -1; // index meaning no plant is being monitored
constint plant1R = 0;
constint plant1G = 0;
constint plant1B = 255;
constint zeroR = 0;
constint zeroG = 0;
constint zeroB = 0;
constint plant2R = 0;
constint plant2G = 255;
constint plant2B = 0;
constint plant3R = 255;
constint plant3G = 0;
constint plant3B = 0;
constint plant4R = 255;
constint plant4G = 0;
constint plant4B = 255;
// Pinout.
constint waterSensorPin = A1;
constint buttonPin = 2;
constint servoPin = 5;
constint ledPins[numberOfPlants] = {12, 11, 10, 9};
// Moisture ranges for the different plants.
constint moistureMinima[numberOfPlants] = { 0, 0, 0, 0};
constint moistureMaxima[numberOfPlants] = {195, 682, 750, 950};
// Servo holding the indicator needle.
Servo indicator;
int sensorValue = 0; // value read from the Soil Moisture
voidsetup() { lcd.begin(16, 2); Serial.begin(9600);
pinMode(waterSensorPin, INPUT);
pinMode(buttonPin, INPUT);
for (int ledNo = 0; ledNo < numberOfPlants; ledNo ) {
pinMode(ledPins[ledNo], OUTPUT); } indicator.attach(servoPin);
}
voidloop() {
// Which plant are we currently monitoring?
staticint whichPlant = noPlant; sensorValue = analogRead(waterSensorPin);// read the analog in value:
// Switch to next plant on button press.
if (digitalRead(buttonPin) == HIGH) {
if (whichPlant != noPlant) {
digitalWrite(ledPins[whichPlant], LOW); // turn off previous LED } whichPlant;
if (whichPlant == numberOfPlants) { whichPlant = noPlant; } else {
digitalWrite(ledPins[whichPlant], HIGH); // turn on current LED } }
if (whichPlant == noPlant) {
digitalWrite(10, LOW); // turn off previous LED
digitalWrite(12, LOW); // turn off previous LED lcd.clear(); lcd.noDisplay(); lcd.setRGB(zeroR, zeroG, zeroB); }
if (whichPlant == 3) {
digitalWrite(10, HIGH); // turn off previous LED
digitalWrite(12, HIGH); // turn off previous LED lcd.setRGB(plant4R, plant4G, plant4B); lcd.clear(); lcd.display(); lcd.print("Swamp Plant");// print the results to the LCD Display: sensorValue = map(sensorValue, 0, 950, 0, 100); lcd.setCursor(0, 1); lcd.print(sensorValue); lcd.print("% Enough water"); Serial.println(sensorValue);
delay(500); // crude debouncing }
if (whichPlant == 2) { lcd.setRGB(plant3R, plant3G, plant3B); lcd.clear(); lcd.display(); lcd.print("Orchid");// print the results to the LCD Display: sensorValue = map(sensorValue, 0, 750, 0, 100); lcd.setCursor(0, 1); lcd.print(sensorValue); lcd.print("% Enough water"); Serial.println(sensorValue); }
if (whichPlant == 1) { lcd.setRGB(plant2R, plant2G, plant2B); lcd.clear(); lcd.display(); lcd.print("Sunflower");// print the results to the LCD Display: sensorValue = map(sensorValue, 0, 682, 0, 100); lcd.setCursor(0, 1); lcd.print(sensorValue); lcd.print("% Enough water"); Serial.println(sensorValue); }
if (whichPlant == 0) { lcd.setRGB(plant1R, plant1G, plant1B); lcd.clear(); lcd.display(); lcd.print("Cactus");// print the results to the LCD Display: sensorValue = map(sensorValue, 0, 195, 0, 100); lcd.setCursor(0, 1); lcd.print(sensorValue); lcd.print("% Enough water"); Serial.println(sensorValue); }
// Report the moisture level of this plant.
if (whichPlant != noPlant) {
int sensorValue = analogRead(waterSensorPin);
int position = map(sensorValue, moistureMinima[whichPlant], moistureMaxima[whichPlant], 180, 0); indicator.write(constrain(position, 0, 180)); Serial.println(sensorValue);
delay(500); }
// added 14-02 to make sure servo pointer goes back to start after reading last reading from waterSensor
if (whichPlant == noPlant) {
int sensorValue = analogRead(waterSensorPin);
int position = map(sensorValue, moistureMinima[whichPlant], moistureMaxima[whichPlant], 180, 0); indicator.write(constrain(position, 180, 180));
delay(500); }
//gemaakt door Sinan van Noppen
}Шаг третий: печать деталей, резка
На принтере печатает детали.
button extender.SLDPRT
Battery holder.SLDPRT
Arduino-Nano-Mount.SLDPRT
Servo_Mount3.SLDPRT
partclip.SLDPRT
cop_fin.stl
Вырезает часть деталей на резаке.
Arduino nano box.dxf
Шаг четвертый: сборка
Дальше мастер приступает к сборке устройства.
Склеивает корпус.
На держатели приклеивает липучку. Приклеивает липучку на стенку корпуса.
Устанавливает серводвигатель, стрелку и батарею.
Устанавливает светодиод, ЖК-экран, устанавливает на петлях переднюю крышку. Датчик влажности заливает внутри эпоксидной смолой, для защиты от влаги.
Теперь нужно установить щупы датчика в грунт, и подключить его к Ардуино. Само устройство нужно разместить рядом с цветочным горшком.
