Автоматический полив для дачи своими руками
Некоторое время назад я прикинул, что было бы неплохо автоматизировать полив на даче. Обзоры некоторых пользователей муськи также сыграли не последнюю роль в принятии этого решения. Но поскольку электроника — это не мой профиль, решено было делать аппаратную часть проекта максимально упрощенной, и по возможности обойтись без ЛУТ, травления плат и прочих сложностей. Короче, хотелось реализовать свою систему как некий конструктор, собранный из стандартных компонентов, а получилось это или нет — решать вам.
UPD: добавлен скетч для Ардуино.
1. Осмысление хотелок и упорядочивание мыслей проекта Проект изначально задумывался примерно в таком виде: 4 мощных разбрызгивателя (в перспективе 8), столько же электромагнитных клапанов, релейный модуль для них, вот такая клавиатура, экран 16x2 символов, часы реального времени и 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
Форумчане рекомендуют гипс, но под рукой его не оказалось, думаю что быстросхватывающийся цемент будет не хуже. Высохло — вскрываем
По готовому датчику на всякий случай прошелся масляной краской в пару слоев, чтобы датчик измерял именно влажность почвы, а не влажность куска бетона.
Для использования этого мегадевайса требуется предварительная калибровка. Делается это элементарно: берем сухую почву, в нее тыкаем самодельный датчик, проверяем и записываем полученное значение влажности. Затем льем туда столько воды, чтобы получилось небольшое болотце, и снова снимаем значение с датчика. По-быстрому откалибровался вот этим скетчем с форума:
В моем случае, значение на датчике было чуть больше 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 кнопок можно включить полив на определенное время (задается в настройках), длинное нажатие включает «бесконечный» режим, т.е. отключить полив на заданной линии можно будет только этой же кнопкой, или он отключится, если по расписанию линию необходимо отключить. Хотя зачем я повторяюсь? Даешь слайды! Вот здесь видны настройки:
Вот здесь — смотрим температуру и влажность
Вот так собственно выглядит колхозинг датчиков в дачных условиях. Крыльцо