Автополивщик растений на Arduino
Что это такое?
В этой статье мы расскажем о том, как собрать устройство для автоматического полива с контролем влажности почвы — ирригатор. Необходимость полива будем определять по показаниям датчика влажности почвы. Одновременно можно будет поливать несколько растений.
Что для этого необходимо?
Мы собрали все необходимые детали в сет компонентов. В набор входят:
Так же удобно для индикации использовать:
Как это собрать?
Калибровка
Показания датчика влажности сильно зависят от кислотности почвы. Поэтому перед началом пользования ирригатором требуется провести простую процедуру калибровки.
Масштабирование решения
Мы описали решение для одного растения. Но обычно требуется поливать несколько растений. Помимо очевидного решения — подключения к Arduino нескольких помп и датчиков влажности — существует более простое и дешёвое. Достаточно в трубке, которая идёт в комплекте с помпой проделать шилом дырочки на расстоянии около 30 см и воткнуть в эти дырочки куски стержней от обычных шариковых ручек. Выглядеть это будет так:
Горшки с цветами дома часто стоят в ряд на подоконнике. Вам достаточно просто положить трубку на горшки так, чтобы отверстия в ней приходились по одному на горшок. Теперь наше устройство может поливать сразу несколько горшков. Однако в таком случае принимать решение о необходимости полива можно только по одному горшку. Однако обычно горшки примерно одинаковые по размерам и, соответственно, сохнут с примерно равной скоростью. Можно так же комбинировать два решения, разделяя все горшки на группы примерно равных по размерам.
Исходный код
Для работы скетча вам понадобиться скачать и установить библиотеку для работы с дисплеем QuadDisplay2
Демонстрация работы устройства
Что ещё можно сделать?
А ещё можно собрать автополив на Slot Shield — инструкция по сборке и прошивка.
Источник
Многоканальная система автополива на Arduino
ОБНОВЛЕНИЯ
- 18.08.18 Версия 1.5: исправлены ошибки
- 17.04.19 Версия 2.0: новая логика меню, более гибкие таймеры! ЗАМЕНИТЕ СТАРЫЕ ВЕРСИИ БИБЛИОТЕК НОВЫМИ ИЗ ПАПКИ!
- 20.04.19 Версия 2.1: добавлено автоотключение подсветки дисплея (включается по любому действию с энкодера)
- 05.06.2019 Исправлена схема версии 2+!
ОПИСАНИЕ
Многоканальная система автополива растений для установки в умную теплицу, на огород или в квартиру. Особенности:
- Поддержка от 1 до 15 помп (Arduino NANO / UNO)
- Индивидуальная настройка периода и времени работы
- Дисплей 1602 с отображением настроек
- Индивидуальное название каждого канала (можно по-русски!)
- Удобное управление и настройка энкодером
- Хранение настроек в энергонезависимой памяти
- Настройка уровня управляющего сигнала
- Настройка часы/минуты/секунды работы
- Параллельный режим работы / очередь
Все хотят датчики влажности, каждый третий об этом написал.
- Вопрос: зачем тогда нужен таймер и все эти настройки? Мой проект не об этом, мой проект о таймере
- С датчиками влажности МИКРОКОНТРОЛЛЕР ВООБЩЕ НЕ НУЖЕН. Почему? Как? Смотрите ЗДЕСЬ
- Все жалуются на дождь. В видео звучало слово “теплица” и “рассада”, там не идёт дождь
- Китайские датчики влажности почвы разъедаются почвой, так как сделаны не из золота!
Да, согласен, нужна одна помпа и клапана на каналы! Добавил прошивку auto-pumps_valve, читайте описание в начале скетча, там всё написано!
ВИДЕО
КОМПОНЕНТЫ
Каталоги ссылок на Алиэкспресс на этом сайте:
Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .
СХЕМЫ
СХЕМЫ ОБНОВЛЕНЫ ДЛЯ ВЕРСИИ 2+ .
Внимание! Для коммутации индуктивных нагрузок рекомендуется использовать искрогасящие цепи, иначе микроконтроллер может зависнуть. Читайте в этом проекте в разделе СХЕМЫ
ПРОШИВКА
УПРАВЛЕНИЕ
Версия 1.*
Система управляет количеством помп PUPM_AMOUNT, подключенных подряд в пины платы, начиная с пина START_PIN. На каждую помпу заводится таймер, который включает помпу на заданное время через заданные промежутки времени. Промежутки времени (период работы) может быть в часах или минутах (настройка PERIOD). Время работы помпы может быть в минутах или секундах (настройка PUMPING). Включение производится сигналом уровня SWITCH_LEVEL. 0 – для реле низкого уровня (0 Вольт, все семейные модули реле), 1 – высокого уровня (5 Вольт, редкие модули реле, все мосфеты).
Примечание: катушка реле кушает около 60 мА, несколько включенных вместе катушек создадут лишнюю нагрузку на линию питания. Также несколько включенных одновременно помп сделают то же самое. Для устранения этого эффекта есть настройка PARALLEL. При её отключении помпы будут “вставать в очередь”, совместное включение будет исключено.Управление:
- Нажатие на ручку энкодера – переключение выбора помпы/периода/времени работы
- Поворот ручки энкодера – изменение значения
- Кнопка энкодера удерживается при включении системы – сброс настроек
Версия 2.*
ПЕРЕД ПРОШИВКОЙ ВТОРОЙ ВЕРСИИ ЗАМЕНИТЕ ВСЕ БИБЛИОТЕКИ НОВЫМИ (ИДУТ В АРХИВЕ ПРОЕКТА, В ПАПКЕ НОВАЯ ВЕРСИЯ).
Поворачивая рукоятку энкодера мы перемещаем стрелочку выбора по экрану. Обратите внимание на то, что настройка времени работы помпы находится правее «за экраном», нужно пролистать стрелочку направо чтобы её активировать. Чтобы изменить выбранный стрелочкой параметр, нужно повернуть рукоятку энкодера, удерживая её нажатой. Таким образом можно настроить время периода и работы помпы в формате ЧЧ:ММ:СС. Логика работы настроек PUPM_AMOUNT, START_PIN, SWITCH_LEVEL и PARALLEL такая же как для версии 1.*
- Поворот ручки энкодера – изменение позиции стрелки
- Поворот ручки энкодера удерживая её нажатой – изменение значения
- Кнопка энкодера удерживается при включении системы – сброс настроек
Источник
Умный автополив растений на базе Arduino
Растения играют важную роль в жизни человека. Мы получаем множество преимуществ, живя в соседстве с растениями – это свежий воздух, приятная атмосфера и конечно же полезное питание.
Многие люди пытаются окружить себя растениями как в квартире, так и на своих участках. И неважно будь это комнатные растения или посадки на дачном участке, растения требуют к себе внимания и ухода. Всё же иногда из-за напряжённого образа жизни мы элементарно забываем вовремя полить их. Это негативно сказывается на состоянии растений. Чтобы избавиться от этой проблемы, придуманы системы автополива.
Многие из готовых систем не подходят нам по конструктиву или по цене. Да и многим радиолюбителям интересней собрать своё устройство, чем покупать готовое.
В этой статье подробно расписано как сделать автополив для комнатных и уличных растений на базе Arduino своими руками.
Наш автополив на Ардуино поливает растение только днём, когда почва пересыхает. В системе используются датчик влажности почвы и фоторезистор.
Основная цель этой системы заключается в отслеживание времени суток и влажности. Если днём земля просыхает, микроконтроллер включает водяной насос. Когда земля достаточно увлажнится, насос выключается.
Компоненты и их описания
Arduino Uno
Arduino взаимодействует через датчики с окружающей средой и обрабатывает поступившую информацию в соответствии с заложенной в неё программой. Подробнее с платой Ардуино Уно можно ознакомиться здесь.
Ардуино Уно
Датчик влажности почвы
Измерение влажности почвы на базе Arduino производится с помощью датчика влажности. Датчик имеет два контакта. Через эти контакты при погружении их в грунт протекает ток. Величина тока зависит от сопротивления грунта. Поскольку вода является хорошим проводником тока, наличие влаги в почве сильно влияет на показатель сопротивления. Это значит, чем больше влажность почвы, тем меньше она оказывает сопротивление току.
Датчик влажности почвы
Этот датчик может выполнять свою работу в цифровом и аналоговом режимах. В нашем проекте используется датчик в цифровом режиме.
На модуле датчика есть потенциометр. С помощью этого потенциометра устанавливается пороговое значение. Также на модуле установлен компаратор. Компаратор сравнивает данные выхода датчика с пороговым значением и после этого даёт нам выходной сигнал через цифровой вывод. Когда значение датчика больше чем пороговое, цифровой выход передаёт 5 вольт (HIGH), земля сухая. В противном случае, когда данные датчика будут меньше чем пороговые, на цифровой вывод передаётся 0 вольт (LOW), земля влажная.
Этим потенциометром необходимо отрегулировать степень сухости почвы, когда как вы считаете нужно начать полив.
Фоторезистор
Фоторезистор (LDR) — это светочувствительное устройство, которое используются для определения интенсивности освещения. Значение сопротивления LDR зависит от освещённости. Чем больше света, тем меньше сопротивление. Совместно с резистором, фоторезистор образует делитель напряжения. Резистор в нашем случае взяли 10кОм.
Делитель напряжения
Подключив выход делителя Uin к аналоговому входу Ардуино, мы сможем считывать напряжения на выходе делителя. Напряжение на выходе будет меняться в зависимости от сопротивления фоторезистора. Минимальное напряжение соответствует темноте, максимальное – максимальной освещённости.
В этом проекте полив начинается в соответствии с пороговым значением напряжения. В утренние часы, когда считается целесообразным начать полив, напряжение на выходе делителя равно 400. Примем это значение как пороговое. Так если напряжения на делителе меньше или равно 400, это означает, что сейчас ночь и насос должен быть выключен.
Меняя пороговое значение можно настроить период работы автополива.
Релейный модуль
Реле представляет собой переключатель с электромеханическим или электрическим приводом.
Релейный модуль
Привод реле приводится в действие небольшим напряжением, например, 5 вольт от микроконтроллера, при этом замыкается или размыкается цепь высокого напряжения.
Схема реле
В этом проекте используется 12 вольтовый водяной насос. Arduino Uno не может управлять напрямую насосом, поскольку максимальное напряжение на выводах Ардуино 5 вольт. Здесь нам приходит на помощь релейный модуль.
Релейный модуль имеет два типа контактов: нормально замкнутые и нормально разомкнутые контакты. Нормально замкнутые без управляющего напряжения замкнуты, при подаче напряжения размыкаются. Соответственно нормально разомкнутые без напряжения разомкнуты, при подаче управляющего напряжения замыкаются. В проекте используются нормально разомкнутые контакты.
Водяной насос
В проекте используем 12-и вольтовый погружной насос с 18-ваттным двигателем. Он может поднимать воду до 1,7 метра.
Водяной насос
Этот насос можно эксплуатировать только тогда, когда он полностью погружен в воду. Это налагает некие обязательства по контролю уровня воды в ёмкости. Если водяной насос будет работать без воды, он просто-напросто сгорит.
Макетная плата
Макетная плата представляет собой соединительную плату, используемую для создания прототипов проектов электроники, без пайки.
Перемычки
В данном проекте перемычки используются для соединения компонентов оборудования.
Перемычки
Программный код
Схема автополива растений на arduino
Схема автополива
Данный проект подразумевает полив одного растения или одной группы одинаковых растений. Но Uno имеет 6 аналоговых выходов, следовательно возможно подключить 6 насосов. Так же можем добавить к каждому насосу свой датчик влажности. Так мы получим 6-ти канальную систему автополива. Причем каждый канал будет работать в не зависимости друг от друга.
Источник
Делаем автополив комнатного цветка на Arduino за 15 минут
После того как у меня сдох очередной цветок, я понял, что неплохо было бы как-то автоматизировать процесс полива.
Не мудрствуя лукаво, я решил собрать конструкцию, которая бы поливала цветок вместо меня. В итоге у меня получился вот такой аппарат, который вполне справляется со своими обязанностями:
При помощи двух регуляторов можно настроить объём поливаемой за раз воды, а также период между поливами. Кому интересно — далее подробная инструкция, как сделать такое устройство.
Для сборки поливалки вам понадобится некоторое количество компонентов и не более чем 30 минут свободного времени.
Используемые компоненты:
- Arduino Mega (она просто была под рукой, но любая другая подойдёт)
- Насос и силиконовая трубка (подойдёт насос омывателя автомобильных стёкол — можно купить в любых автозапчастях или можно купить маленький погружной насос на ebay)
- Блок питания
- Два переменных резистора для регулировки (любые)
- Транзистор IRL3705N
- Два резистора (100 Ом и 100 кОм)
- Диод (любой)
- Резервуар для воды (в моем случае пластиковая коробочка из Ikea)
- Макетка
Собираем всё по такой схеме:
Или нагляднее:
Вот что получилось у меня:
Сначала протестим насос. Подадим на него 5В. Если он зажужжал, всё в порядке, двигаемся дальше.
Теперь подключим насос к Arduino. Сделаем для управления насоса с ардуино небольшую обвязку на макетке.
Попробуем поуправлять насосом с Ардуино. Зальём такой код
Если он периодически жужжит, значит, снова всё в порядке.
Теперь нам осталось добавить два регулятора. Подцепим к нашему устройству переменные резисторы, и проверим их работоспособность.
Зальём такой код на Ардуино
Зайдём в Serial Monitor и убедимся, что есть реакция на поворот регулятора. Он должен меняться примерно от 0 до 1024
Теперь осталось заставить заработать всё это вместе.
Вот непосредственно код поливалки:
Вот так выглядит конечный результат в работе:
- youtu.be/qHmjWkZ_seM — цветок
- youtu.be/3VdgH9uwMCY — устройство
В ближайшем будущем думаю сюда добавить сенсор уровня воды в резервуаре и датчик влажности почвы.
Источник