2024-02-11 12:05:11

Домашняя поливалка растений

Железо 3D Arduino

Устройство полива цветов

С третьего подхода к этому устройству, решился таки написать про него. При кажущейся простоте, теперь я понимаю, почему готовые такие устройства стоят своих денег.


Все началось достаточно давно и, как обычно, ничто не предвещало... у меня как-то образовался еще один цветок на подоконнике, а параллельно с этим приехала китайская ардуинно нанао LGT8F328P, которую очень хотелось попробовать в деле. Так вот же оно! Нужно перестать заморачиваться с лейкой и сделать автоматику для полива двух растений.

В первом устройстве я взял два насоса на 5В, напечатал для них держатели, засунул в вырезанный их ПВХ корпус, добавил модуль с 2 реле для управления, давно валявшийся без дела 0.91" OLED дисплей, чтоб было информативно, и энкодер, чтоб всем этим управлять. Для определения влажности почвы использовал самые доступные емкостные датчики.

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

  • Первое - шум. Поскольку насосы сидели в жестких пластиковых оснастках, то вся вибрация при работе передавалась на корпус, а некоторая степень свободы крепления ее многократно усиливала, в результате вышло громче среднего будильника.
  • Второе - нехватка мощности. Маленькие насосы не могли поднять воду из 5 л. бутылки, стоящей на полу, к устройству на подоконник; а тонкие трубочки делали процесс полива достаточно длительным.

Поскольку размещать емкость с запасом воды для полива на подоконнике (а не на полу) не входило в мои планы, а слушать затяжной будильник - тем более, от такой конструкции пришлось отказаться.

Для второго устройства я решил взять более мощные насосы на 12В, у которых сразу было предусмотрено крепление, гасящее вибрацию. А больший диаметр водопроводных трубок позволил не только сократить время полива, но и использовать фильтр грубой очистки при закачке воды.

Устройство получилось в компактном форм-факторе, близким к кубику, но это было, похоже, его единственное достоинство. И снова было 2 недостатка.

  • Во-первых, емкостные датчики влажности оказались не так хороши, как мне бы хотелось: фактически, рабочий диапазон от "земля полностью сухая" до "все залито и перелито" составлял примерно 5%, даже при условии нормирования минимальных и максимальных значений измерений, плюс была большая погрешность измерений.
  • Во-вторых, достаточно часто (без закономерности) после завершения цикла полива, устройство отключалось (ну как минимум дисплей, висящий на 3.3В ноже МК).

Если с первым недостатком можно было как-то жить, хотя функции устройства сводились, фактически, к поливу по времени, то проблема самопроизвольного отключения сводила пользу от устройства практически на нет.

Третья версия устройства

И вот мы подходим к третьей версии устройства, в которой я использовал более дорогие датчики влажности, благодаря которым, качество измерений стало несравнимо выше. Еще один несомненный плюс новых датчиков - это конструкция, тонкие стержни куда проще вставляются в землю, чем большие платы емкостных датчиков.

Но опять пришлось переделывать корпус, поскольку у датчиков теперь есть дополнительные платы, которые никак не помещались в предыдущую версию корпуса. Но благодаря этому, от устройства к датчикам стали идти более аккуртаные провода. Так же пришлось использовать другой энкодер, чтоб уменьшить глубину теперь уже немаленького корпуса.

Ну и самое главное, удалось решить проблему с отключением, ее причина и способы решения очень хорошо описаны вот в этой статье, ниже я приведу выжимку для моего случая:

Мотор – это индуктивная нагрузка, которая в момент отключения создаёт индуктивные выбросы. У мотора есть щетки, которые являются источником искр и помех за счёт той же самой индуктивности катушки.

Отсечь индуктивный выброс с мотора можно при помощи самого обычного диода. Диод ставится встречно параллельно мотору, и чем ближе к корпусу, тем лучше. Логично, что диод нужно ставить только в том случае, если мотор или катушка управляется в одну сторону.

Искрящиеся щетки мотора, особенно старого и разбитого, являются сильным источником электромагнитных помех. Проблема решается установкой керамических конденсаторов ёмкостью 0.1-1 мкФ на выводы мотора.

Прямо на насосах я собрал обвязку из диода 1N4001 (который просто был под рукой) и конденсатора 0.1uF на 50В. Эффект не заставил себя ждать, теперь дисплей всегда выключался непосредственно при включении насоса, но устройство продолжало работать.

Насосы с обвязкой из диода и конденсатора

Мне следовало бы добавить конденсатор на линию питания, но я поленился, и просто переключил питание дисплея на линию 5В со всеми остальными модулями. Изначальный смысл подключения дисплея к 3.3В был в том, чтоб сократить его выгорание, но поскольку тут у меня картинка постоянно двигаеся вверх-вниз, надеюсь, все с ним будет хорошо.

Экран устройства

Еще об особенностях конструкции, китайская ардуинка заметно греется, особенно при питании от 12В, нагрев не критичный, но для большего спокойствия снабдил ее радиатором. В результате у меня получилось устройство, схожее по габаритам с самой первой версией, но развернутое на 90°.

Конструкция в разобранном виде

Не смотря на то, что корпус устройства сделан из ПВХ т.к. 3D-печать в таких размерах требует уж очень много времени, совсем без напечатанных деталей не обошлось, мне пришлось напечатать:

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

Корпус был поставлен на очень давно пропадающие мебельные то-ли ножки, то-ли стопоры для дверей, а для сборки всего вместе, помимо супер-клея, понадобилось несколько винтов и гаек М3 и М4.

Собранное устройство

На закуску самое интересное - играбельный проект на эмуляторе и все 3D-модели на thingiverse. А так же исхожный код на github.

P.S.

В бесконечности перфекционизма. Резистивные датчики влажности, хоть и оказались во всем лучше емкостных, имеют один недостаток - они, в силу своей конструкции, склонны к коррозии. В емкостных корродировать просто нечему.

Чтоб уменьшить коррозию и продлить жизнь датчиков, я попробовал отключать их питание, когда показания не нужны. Получилось что-то вроде: 100-150 мс. датчик включен, считываем показания, отключаем на 1 секунду. В теории это должно было продлить жизнь датчика аж в 10 раз и сэкономить немного электричества. На практике оказалось, что для "прогрева" датчика требуется много секунд, и только после прошествия длительного времени он выходит на нормальные показания. В режиме включил-померил-выключил показания сильно завышены. Емкостные датчики, кстати, если верить всяким обзорам, прогреваются и измеряют за 50 мс., но проверять на практике в рамках текущей конструкции уже нет желания.