Хочу поделиться своей самоделкой, которая служит мне уже больше года.
Начав осваивать 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 пробуждается
Настройки полива указываются вот в этой части кода:

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