Андрей Смирнов
Время чтения: ~16 мин.
Просмотров: 40

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

18.08.18 Версия 1.5: исправлены ошибки• 17.04.19 Версия 2.0: новая логика меню, более гибкие таймеры! ЗАМЕНИТЕ СТАРЫЕ ВЕРСИИ БИБЛИОТЕК НОВЫМИ ИЗ ПАПКИ!20.04.19 Версия 2.1: добавлено автоотключение подсветки дисплея (включается по любому действию с энкодера)

05.06.2019 Исправлена схема версии 2+!

</span>

КОНТРОЛЛЕР УМНОЙ ТЕПЛИЦЫ

Вышел новый очень крупный и крутой проект — контроллер теплицы, который и поливает, и освещает, и проветривает… Подробности на странице проекта, жми зелёную кнопку!

Наши ответы на ваши вопросы

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

  • Вопрос: зачем тогда нужен таймер и все эти настройки? Мой проект не об этом, мой проект о таймере
  • С датчиками влажности МИКРОКОНТРОЛЛЕР ВООБЩЕ НЕ НУЖЕН. Почему? Как? Смотрите ЗДЕСЬ
  • Все жалуются на дождь. В видео звучало слово “теплица” и “рассада”, там не идёт дождь
  • Китайские датчики влажности почвы разъедаются почвой, так как сделаны не из золота!

Да, согласен, нужна одна помпа и клапана на каналы! Добавил прошивку auto-pumps_valve, читайте описание в начале скетча, там всё написано!

Многоканальная система автополива растений для установки в умную теплицу, на огород или в квартиру. Особенности:

  • Поддержка от 1 до 15 помп (Arduino NANO / UNO)
  • Индивидуальная настройка периода и времени работы
  • Дисплей 1602 с отображением настроек
  • Индивидуальное название каждого канала (можно по-русски!)
  • Удобное управление и настройка энкодером
  • Хранение настроек в энергонезависимой памяти
  • Настройка уровня управляющего сигнала
  • Настройка часы/минуты/секунды работы
  • Параллельный режим работы / очередь

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

  • В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций.

  • Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

Версия 1.* Система управляет количеством помп PUPM_AMOUNT, подключенных подряд в пины платы, начиная с пина START_PIN. На каждую помпу заводится таймер, который включает помпу на заданное время через заданные промежутки времени. Промежутки времени (период работы) может быть в часах или минутах (настройка PERIOD). Время работы помпы может быть в минутах или секундах (настройка PUMPING). Включение производится сигналом уровня SWITCH_LEVEL. 0 – для реле низкого уровня (0 Вольт, все семейные модули реле), 1 – высокого уровня (5 Вольт, редкие модули реле, все мосфеты). Примечание: катушка реле кушает около 60 мА, несколько включенных вместе катушек создадут лишнюю нагрузку на линию питания. Также несколько включенных одновременно помп сделают то же самое. Для устранения этого эффекта есть настройка PARALLEL. При её отключении помпы будут “вставать в очередь”, совместное включение будет исключено.Управление:

  • Нажатие на ручку энкодера – переключение выбора помпы/периода/времени работы
  • Поворот ручки энкодера – изменение значения
  • Кнопка энкодера удерживается при включении системы – сброс настроек

Версия 2.*ПЕРЕД ПРОШИВКОЙ ВТОРОЙ ВЕРСИИ ЗАМЕНИТЕ ВСЕ БИБЛИОТЕКИ НОВЫМИ (ИДУТ В АРХИВЕ ПРОЕКТА, В ПАПКЕ НОВАЯ ВЕРСИЯ)!!!! Поворачивая рукоятку энкодера мы перемещаем стрелочку выбора по экрану. Обратите внимание на то, что настройка времени работы помпы находится правее «за экраном», нужно пролистать стрелочку направо чтобы её активировать. Чтобы изменить выбранный стрелочкой параметр, нужно повернуть рукоятку энкодера, удерживая её нажатой. Таким образом можно настроить время периода и работы помпы в формате ЧЧ:ММ:СС. Логика работы настроек PUPM_AMOUNT, START_PIN, SWITCH_LEVEL и PARALLEL такая же как для версии 1.*

  • Поворот ручки энкодера – изменение позиции стрелки
  • Поворот ручки энкодера удерживая её нажатой – изменение значения
  • Кнопка энкодера удерживается при включении системы – сброс настроек

</ul>

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

СХЕМЫ ОБНОВЛЕНЫ ДЛЯ ВЕРСИИ 2+ !!!Внимание! Для коммутации индуктивных нагрузок рекомендуется использовать искрогасящие цепи, иначе микроконтроллер может зависнуть. Читайте в этом проекте в разделе СХЕМЫ

5V помпы

5V-3.jpg

12V помпы

12V-3.jpg

220V AC помпы

220V-3.jpg

14 реле

МАТЕРИАЛЫ И КОМПОНЕНТЫ

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

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

Почти все компоненты можно взять в магазине WAVGAT по первым ссылкам

  • Arduino NANO с ногами http://ali.pub/2iaezd http://ali.pub/2iaezy
  • Arduino NANO без ног http://ali.pub/2iaewn http://ali.pub/2iaey0
  • Помпа 5V http://ali.pub/2iaf0x http://ali.pub/2iaf1w
  • Помпа 12V http://ali.pub/2iaf41 http://ali.pub/2iaf5l
  • Дисплей http://ali.pub/2iaf75 http://ali.pub/2iaf84
  • Энкодер http://ali.pub/2iafdk http://ali.pub/2iafe5
  • Колпачки D shaft http://ali.pub/2id0ut
  • Реле электромагнитное
    • 1 канал http://ali.pub/2iafsc
    • 2 канала http://ali.pub/2iaft4
    • 4 канала http://ali.pub/2iaftb
    • 8 каналов http://ali.pub/2iafua
    • 16 каналов http://ali.pub/2iafuo
  • Реле твердотельное
    • 1 канал http://ali.pub/2iafwm
    • 2 канала http://ali.pub/2iafx0
    • 4 канала http://ali.pub/2iafxe
    • 8 каналов http://ali.pub/2iafxl
  • Макетная плата http://ali.pub/2iafj7
  • Джамперы папа-мама http://ali.pub/2iafkk
  • Джамперы макетные http://ali.pub/2iafi1
  • Блок питания 5V – любой зарядник для смартфона
  • Блок питания 12V https://alexgyver.ru/converters/
  • Разветвитель потока с краниками http://ali.pub/2iafzq
  • Разветвитель потока без краников http://ali.pub/2iag1a
  • Шланг силиконовый http://ali.pub/2iag2u
  • Тройничок http://ali.pub/2iag5k

ПРОШИВКА И НАСТРОЙКА

Содержимое папок в архиве

  • libraries – библиотеки проекта. Заменить имеющиеся версии
  • auto-pumps – прошивка для Arduino, файл в папке открыть в Arduino IDE (инструкция)
  • schemes – схемы подключения

Как прошить?

  • ЕСЛИ ЭТО ПЕРВЫЙ ОПЫТ РАБОТЫ С ARDUINO – посмотреть ВИДЕО о платформе с целью ознакомления, далее скачать, установить и настроить необходимые для работы программы согласно СУПЕР ПОДРОБНОЙ ИНСТРУКЦИИ (там даже видео версия есть!).
  • Скачать архив с проектом напрямую, или с GitHub (кнопки чуть выше)
  • Установить библиотеки (папка Libraries) в Подробнее в 4-ом пункте статьи для новичков

  • Подключить Ардуино к компьютеру при помощи Data-кабеля
  • Открыть файл прошивки желаемой версии (файлы прошивок .ino лежат в одноимённых папках)
  • Настроить Arduino IDE (COM порт, куда подключена плата; подключенная модель Arduino, как в статье из первого пункта)
  • Настроить что нужно в прошивке, нажать загрузить
  • Если происходит ошибка компиляции или ошибка загрузки, читать 5-ый пункт в статье для новичков.

Настройки в прошивке

#define DRIVER_VERSION 0    // 0 - маркировка драйвера дисплея кончается на 4АТ, 1 - на 4Т  #define PUPM_AMOUNT 8       // количество помп, подключенных через реле/мосфет  #define START_PIN 3         // подключены начиная с пина  #define SWITCH_LEVEL 0      // реле: 1 - высокого уровня (или мосфет), 0 - низкого  #define PARALLEL 0          // 1 - параллельный полив, 0 - полив в порядке очереди  #define TIMER_START 0       // 1 - отсчёт периода с момента ВЫКЛЮЧЕНИЯ помпы, 0 - с момента ВКЛЮЧЕНИЯ помпы    #define PERIOD 0            // 1 - период в часах, 0 - в минутах  #define PUMPING 1           // 1 - время работы помпы в секундах, 0 - в минутах    #define DROP_ICON 1         // 1 - отображать капельку, 0 - будет буква "t" (time)  

Дополнительно

  • Указанные модули реле управляются НИЗКИМ сигналом, в отличие от МОСФЕТов. Твердотельные реле также управляются ВЫСОКИМ уровнем, в настройках поставьте единичку.

  • Да, русский шрифт может немного глючить и показывать неправильные буквы, это особенность библиотеки LCD1602_RUS. Можно уменьшить количество глюков, если писать названия БОЛЬШИМИ БУКВАМИ.

EandVЭлектроника / ArduinoДобавлено 9 комментариев Всем привет!Хочу поделиться своей самоделкой, которая служит мне уже больше года.Начав осваивать Arduino, думал над тем, какой бы проект реализовать. Вспомнил, что у меня много комнатных растений, которые периодически забывают поливать, да и вопрос полива во время отпусков и командировок имеет место быть. Система состоит из следующих компонентов:Блок управления – сердце системы. Здесь находится Аккумуляторы, Arduino, модуль времени DS3231, дисплей, преобразователи напряжения и органы управления.Рядом с растениями расположена канистра с водой. В канистре находятся погружные помпы, которые перекачивают воду по трубкам в растения. Распределение воды между растениями можно дополнительно отрегулировать с помощью гребенки с кранамиВсе технические элементы системы можно спрятать за шторы и горшки, чтобы сильно не бросались в глазаОбзор системы:Основные параметры системы:1.Автономная работа от аккумуляторов около 5 месяцев2.Система поддерживает управление 3-мя помпами. К каждой помпе можно подключить гребенку с 2-4 кранами и дополнительно регулировать потоки воды. Итого получаем возможность подключить до 12 растений 3.Время снимается с отдельного независимого модуля часов DS3231. Помпа срабатывает при наступлении часа, указанного в настройке (например 8:00) . 4.На дисплей выводится информация5. Настройки полива указываются в коде программы, их можно поменять, перепрошив ArduinoПояснения по отображаемой на дисплее информации:Первая строка – шапка таблицы. Каждая строка показывает информацию по соответствующей помпе. Первый столбец – показывает период работы (ПР) . Например при значении «5» — помпа будет срабатывать каждые 5 дней. Второй столбец – час работы (ЧР) – час в начале которого включится помпа. Третий столбец – время работы (ВР) – продолжительность работы помпы в секундах. Четвертый столбец – дней осталось (ДО) – показывает сколько осталось дней до ближайшего срабатывания. Дата и время также выводятся на дисплей.Система не имеет обратной связи, поэтому настройки нужно подбирать опытным путем. Лучше всего группировать растения близкие по требованиям к поливу (какие-то хорошо переносят засуху, другие наоборот любят обильный полив) и размерам горшков.Настройки задаются примерно следующим образом: каждые 5 дней включать помпу в 8:00 на 30 секунд.Ниже будет указано, в какой части кода эти настройки находятся.В коде программы можно отключить 2-ю и 3-ю помпы. В этом случае на экран будет выводиться информация только по включенным помпам. Автономность обеспечивается благодаря:• Питанию от аккумуляторов формата 18650• Ардуино и уходит в глубокий сон (Powerdown) и просыпается по Watсhdog• У стабилизатора напряжения Arduino откушена левая нога • Дисплей во время работы находится в выключенном состоянии. Для активации дисплея нужно удерживать кнопку выхода из сна около 10 секунд.• С модулей выпаяны все индикаторные светодиодыСистема потребляет около 3мА, 1 помпа потребляет около 350 мА в режиме работы.Основные Детали:• Пищевой контейнер для корпуса• Китайский клон Arduino nano•  DS3231 Модуль реального времени• Аккумуляторы формата 18650 • Повышающий модуль до 5В (ток около 1 А)• Понижающий модуль до 3,3В для питания дисплея• Дисплей Nokia 5110• TP4056 модуль для зарядки (+защита) аккумулятора • Индикатор зарядки аккумулятора• Различная «рассыпуха»: полевые транзисторы, резисторы, конденсаторы (электролитические и керамические) •  Выключатели и кнопки Монтажная «схема» устройства:Пояснения по схеме:1. 4 аккумулятора формата 18650 соединены параллельно. Общая емкость – около 13000 мА/ч.2. Аккумулятор подключен к зарядно — защитному модулю TP4056. Зарядка осуществляется через разъем micro USB от телефонной зарядки. Зарядка нужна с током не менее 1А. Примерное время полной зарядки – 13 -14 часов. Индикаторные светодиоды можно выпаять и вывести на корпус.3. Далее через выключатель подключен повышающий преобразователь до 5В. Он будет питать большую часть компонентов схемы, включая помпы. С падением уровня заряда аккумуляторов напряжение снизится с 4,2В до 2,7В, что для работы схемы не достаточно. Модуль обеспечит стабильное напряжение. На выход модуля ставится фильтр из электролитического и керамического конденсаторов. Электролитический конденсатор выполняет сглаживающую, стабилизирующую роль. Керамический конденсатор служит для борьбы с высокочастотными помехами. Если у модуля «пищит» дроссель во время работы, для устранения этого явления можно поставить ещё дополнительный электролитический конденсатор на вход модуля. Электролитические конденсаторы емкостью 1000 мкФ на 6,3В. Керамические конденсаторы подойдут от 1-2 мкФ. В схеме использованы на 10 мкФ, потому, что у меня было много лишних.4. Для питания дисплея нужно напряжение 3,3В, поэтому добавляется понижающий преобразователь с аналогичными фильтрами из конденсаторов.5. Модуль часов DS3231, нужен для более точного отсчета времени. Светодиод Power (1) отпаян у модуля DS3231. Сделано это для целей энергосбережения. Если вы используете обычные батарейки (не аккумуляторные), то нужно отпаять резистор (2). Модуль рассчитан на аккумуляторные батарейке в том числе заряжает их. Если батарея обычная, зарядный ток быстро приведет ее в негодность.6. Основной мозг системы – платформа Arduino nano. Для целей энергосбережения нужно отпаять все светодиоды (или хотя бы только Power), а также откусить левую ногу стабилизатора напряжения.7. Управление помпы осуществляется через полевые транзисторы. Подойдут любые, которые открываются 5В напряжением и способны коммутировать ток от 1А. Сначала я использовал готовые. Я спаял батарею из полевых транзисторов + резисторы (100 Ом для защиты Arduino, 10к Ом для подтягивания затвора транзистора к земле, чтобы мосфет закрывался)+ также припаял разъемы KF 301-2P для фиксации проводовПозже сделал более компактную батарею на SMD мосфетах AO3400

Где- то через пол года вышло из строя 2 полевых транзистора . Причина была в том, что, в режиме торможения коллекторный двигатель работает как генератор. Для защиты полевого транзистора нужно использовать защитный диод. Я использовал 1N4007.8. На дисплей выводится вся информация. Для пробуждения дисплея, нужно удерживать кнопку до 10 секунд. При смене минуты в часах система уйдет в сон, а дисплей отключится.Процесс сборки:Сначала тесты на макетной плате и написание прошивкиДалее соединил всё при помощи навесного монтажаПодобрал корпус и протестировал с реальными помпамиВ корпусе просверлил отверстия, покрасил всё черным матовым грунтом и закрепил компоненты на термоклей
Дополнительные моменты по сборке:•Емкость с водой, должна обязательно располагаться ниже горшков, иначе есть риск, что после отключения помп вода продолжит литься.•Расстояние от дна емкости до конца трубки не должно превышать 70см. На большую высоту помпе будет сложнее поднять воду.•На мини помпу с Али отлично подходят прозрачные шланги 6х1,5 мм•Важно чтобы отверстие помпы для забора воды не упиралась в стенку емкости с водой, иначе нормального напора не будет.•Для крепления шланга на помпу нельзя использовать железные детали (хомуты, проволоку и т.д.) Всё ржавеет очень быстро.•У помпы короткие провода. Их скорее всего придется наращивать. Для герметизации проводов лучше всего использовать термоклей, а сверху термоусадку. Логика работы программы:•Arduino выходит из сна•Показания модуля DS3231 (дата и время) присваиваются переменным•При изменении даты меняется значение счетчика прошедших дней•Если период работы (настройка) совпадает с числом прошедших дней, проверяется час•При совпадении часа (настройка) и часа из модуля времени включаем помпу на время указанное в настройках•Arduino уходит в сон•Если удерживать кнопку выхода из сна подается питание на дисплей и Arduino пробуждаетсяНастройки полива указываются вот в этой части кода:Прикладываю скетч и библиотекиВ целом системой я доволен. Она исправно поливает мои растения на подоконнике около года. Сейчас я перенес систему в другую комнату, а в своей собрал новую, более удобную и интересную, но это уже другая история… Доставка новых самоделок на почту

Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!

*Заполняя форму вы соглашаетесь на обработку персональных данных

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

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

Нам понадобится:

  • Arduino х 1шт.
  • Аналоговый датчик влажности почвы х 1шт.
  • Мембранный насос х 1шт.
  • Trema-модуль Силовой ключ х 1шт.
  • Trema-модуль Четырехразрядный LED индикатор х 1шт.
  • Trema-модуль Кнопка х 2шт.
  • Trema Shield х 1шт.
  • Коннектор Power Jack с клемником х 1шт.

Для реализации проекта нам необходимо установить библиотеку:

  • Библиотека iarduino_4LED (для работы с четырёхразрядным LED индикатором).

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.

Видео:

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

LED индикатор и кнопки, подключаются к любым выводам Arduino (как цифровым, так и аналоговым), номера указываются в скетче.

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

Силовой ключ (для управления насосом) подключается к цифровому выводу с ШИМ, номер указывается в скетче.

9e81b513c8777abaca8c427bad0059cf.jpg

В данном уроке, LED индикатор подключён к цифровым выводам 2 и 3, кнопки подключены к цифровым выводам 11 и 12, силовой ключ к цифровому выводу 10 (с ШИМ), датчик влажности почвы к аналоговому входу A0.

Алгоритм работы:

  • При подаче питания, устройство не активно (на индикаторе мигает текущее значение влажности почвы).
    • Если однократно нажать на обе кнопки «A» и «B», то текущее состояние влажности почвы будет сохранено как пороговое (то при котором требуется начать полив) и устройство перейдёт в рабочий режим. Пороговое значение влажности почвы можно изменить в режиме ввода значений.
    • Если нажать и удерживать обе кнопки «A» и «B» дольше 2 секунд, то устройство перейдёт в режим ввода значений.
  • В рабочем режиме устройство выводит на индикатор показания: текущей влажности почвы, пороговой влажности почвы и времени прошедшего с момента последнего полива. (Пороговая влажность почвы отображается тусклее чем остальные показания). Если устройство находится в рабочем режиме и значение текущей влажности почвы упадёт ниже значения пороговой влажности почвы, то устройство перейдёт в режим полива.
  • В режиме полива устройство выводит на индикатор количество секунд до окончания полива и мигает точками, а также подаёт сигнал ШИМ на силовой ключ, который включает насос. Значение ШИМ (скорость мотора насоса) указывается в скетче. Длительность полива устанавливается в режиме ввода значений. По окончании полива, устройство переходит в режим ожидания.
  • В режиме ожидания устройство выводит на индикатор надпись STOP и мигает точками. Данный режим предусмотрен для того, что бы влага равномерно распределилась по грунту до перехода устройства в рабочий режим. Время нахождения в режиме ожидания указывается в скетче. По истечении времени режима ожидания, устройство перейдёт в рабочий режим.
  • В режим ввода значений можно перейти из любого режима, удерживая обе кнопки «A» и «B» дольше 2 секунд. Данный режим состоит из двух пунктов: • установка пороговой влажности почвы (при котором требуется начать полив) и • установка длительности самого полива. Вначале отобразится значение пороговой влажности, которое можно изменить нажатием или удержанием кнопки «A» (уменьшение), или кнопки «B» (увеличение). Если однократно нажать на обе кнопки «A» и «B», то значение изменится на текущую влажность почвы. После того как пороговая влажность задана, нужно нажать и удерживать дольше 2 секунд обе кнопки «A» и «B», на экране отобразится длительность полива, которую можно изменить нажатием или удержанием кнопки «A» (уменьшение), или кнопки «B» (увеличение). После того как длительность полива задана, нужно нажать и удерживать дольше 2 секунд обе кнопки «A» и «B», устройство перейдёт в рабочий режим.
  • Если в режиме полива нажать любую кнопку, устройство прекратит полив и перейдёт в режим ожидания.
  • Если в режиме ожидания нажать любую кнопку, устройство перейдёт в рабочий режим.

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

скачать

Ссылки:

  • Код программы
  • Библиотека iarduino_4LED.
  • Wiki — Установка библиотек в Arduino IDE.
  • Wiki — Четырёхразрядный индикатор (Trema-модуль).
  • Wiki — Аналоговый датчик влажности почвы.
  • Wiki — Силовой ключ (Trema-модуль).
  • Wiki — Trema Shield.

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

  • https://alexgyver.ru/auto-pumps/
  • https://usamodelkina.ru/14856-sistema-avtopoliva-dlja-komnatnyh-rastenij-na-arduino.html
  • https://lesson.iarduino.ru/page/urok-30-avtomaticheskiy-poliv-rasteniy

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации