Умная теплица – система автополива на Arduino

МеханикВодЭлектронные изделия Умная теплица – система автополива на Arduino
0 комментариев


Приближается время отпуска и мне нужно определиться: либо договориться с соседями и доверить им ключи от квартиры, либо быстро придумать и сделать что-то похожее на «умный дом». Точнее, «умную теплицу», раз уж речь зашла о растениях. Сразу скажу, что вариант с соседями меня не очень устраивает по ряду причин, а значит — будем снова заниматься проектированием и моделированием. Как и предыдущая самоделка, этот проект будет основан на дешевой плате Arduino, которую я буду программировать и подключать к ней всевозможную периферию.


Поискав в интернете, я быстро нашел несколько различных схем автоматического полива. Но, честно говоря, ни одна из них мне не понравилась. Как-то все не оптимально, на мой взгляд — это если вкратце и не вдаваться в подробную критику. Поэтому я решил не копировать известные решения, а поэкспериментировать, и набросал свою концепцию. В целом она предельно проста: есть насос, который включается по таймеру и подает воду на делитель потока, а на каждой ветке свой кран, которым можно регулировать поток отдельным растениям или их группам. Вот, собственно, и все. Готовые таймеры полива для установки на трубы стоят довольно больших денег. Мой вариант настраиваемого таймера на один канал обойдется примерно как обед в Макдоналдсе, а прошивка для микроконтроллера будет совсем элементарной. Правда, тут есть одна проблема. Схема, конечно, простая, но… мне она неинтересна. Ни с творческой точки зрения, ни с точки зрения функционала. Гораздо интереснее и практичнее было бы организовать многоканальный полив. Представьте, например, что у вас на даче есть несколько теплиц для разных видов культур. Или одна большая теплица с несколькими грядками. На первой растут огурцы, на второй помидоры, а на третьей арбузы, клубника, киви или что-то еще вкусненькое. И всем этим растениям требуются разные режимы полива. Поэтому нам нужна система полива, которая масштабируется (от 1 до 15 насосов, я думаю, будет достаточно) и имеет удобные централизованные настройки для каждого из этих каналов. Возможно, в таком виде она многим пригодится на своем дачном участке.

Умная теплица - автоматическая система поливаУмная теплица – автоматическая система полива

Принципиальная схема многоканальной автоматической системы полива с использованием 5-вольтовых насосов
Умная теплица - автоматическая система полива на Arduino

Схема подключения 14 реле управления насосами к плате Arduino

Сформулировав задачу, я приступил к ее реализации. Для начала я купил несколько самых дешевых насосов, работающих от 5 В. Для управления питанием разумно было бы использовать полевые транзисторы, но их пришлось бы спаять целую батарею — кто работал с такими приборами, тот знает. Для простоты я решил использовать реле. Реле хорошо тем, что с его помощью можно запитать как самый маленький насос (или средний, кстати, подойдет насос стеклоочистителя из магазина автозапчастей), так и большой насос, работающий от 220 В. Можно установить его, например, в колодце или скважине и качать воду в теплицу.

Умная теплица - автоматическая система полива

А для настройки системы я взял символьный дисплей и энкодер — электромеханический элемент, преобразующий вращательное движение вала в пакеты электрических импульсов, которые позволяют определить направление и угол поворота вала. Самый распространенный пример использования энкодера в быту — ручка регулировки громкости современной автомагнитолы с цифровым управлением. Ну и, конечно же, «мозгом» устройства будет плата Arduino. Все эти компоненты можно недорого купить на Aliexpress. Совет: заказывайте у одного продавца — товар придет одной посылкой, плюс возможна скидка, что тоже хорошо.

КАК ЗАГРУЗИТЬ ПРОШИВКУ НА ПЛАТУ ARDUINO
1. Скачайте архив с необходимыми материалами.
2. Установите библиотеки (папка Libraries) в C:\ProgramFiles\Arduino\LibrariesV.
3. Подключите Arduino к компьютеру с помощью кабеля передачи данных.
4. Откройте файл прошивки нужной версии (файлы прошивки .іпо находятся в соответствующих папках архива).
5. Настройте Arduino IDE (укажите COM-порт, к которому подключена плата, и модель Arduino).
6. При желании выполните дополнительные настройки прошивки и нажмите «Загрузить».

НАСТРОЙКИ ПРОЕКТА “АВТОПОЛИВ” В ПРОШИВКЕ ARDUINO
#define DRIVERJVERSION 0 // 0 — маркировка драйвера дисплея заканчивается на 4AT, 1 — на 4T #definePUPM_AMOUNT8 // количество насосов, подключенных через реле или MOSFET
#define START_PIN 3 // подключение начинается с номера контакта…
#define SWITCH_LEVEL 0 // реле:
1 – высокий уровень (или мосфет), 0 – низкий
#define PARALLEL 0 // 1 – параллельный полив, 0 – полив по очереди
#defineTIMER_START 0 // 1 – отсчет времени с момента выключения насоса, 0 – с момента включения насоса
#define PERIOD 0 // 1 – период в часах, O – в минутах
#define PUMPING 1 H1 – время работы насоса в секундах, O – в минутах #define DROPJCON 1 //1 – отобразить каплю, 0 – будет буква “t” (время)

Перейдем к прошивке — в данном проекте она меня интересовала больше всего. Технически было интересно «связать» работу нескольких независимых таймеров и насосов вместе, а также иметь возможность добавлять необходимое количество каналов при необходимости. В итоге код получился очень красивым: все системные параметры хранятся в массивах и запускаются циклами, а настройки, которые мы меняем, записываются в энергонезависимую память и не сбрасываются при перезагрузке.

Умная теплица - автоматическая система полива

Теперь соберем макет нашего устройства. Подключаем энкодер, как показано на предоставленных схемах, “вешаем” на шину i2c плату индикации, а затем по порядку сигнальные провода к реле (как в моем случае) или транзисторам. Этот момент очень важен, так как первый пин подключения насоса прописан в прошивке Arduino, а остальные указываются автоматически исходя из их номера.

Загрузите прошивку на плату и проверьте, как будут щелкать контактные группы реле. После установки библиотек откройте файл прошивки и посмотрите настройки. Китайские производители иногда присылают дисплеи с разными драйверами, поэтому проверьте, какой у вас и отметьте его в настройках. Далее нужно указать, сколько реле вы используете и внести другие изменения в настройки «под себя». Важно: перед загрузкой прошивки отключите пины 0 и 1 от энкодера, либо поверните его ручку в положение, при котором два светодиода на плате не будут гореть. В противном случае прошивка не загрузится, так как эти пины задействованы в процессе, и энкодер будет мешать.

После успешной загрузки прошивки система сразу готова к работе. Расскажу, как ей пользоваться. Вращая ручку энкодера, мы перемещаем стрелку выбора по экрану. Обратите внимание, что настройка времени работы насоса находится справа «за экраном», и для ее активации нужно «прокрутить» стрелку вправо. Для изменения выбранного параметра нужно повернуть ручку энкодера, удерживая ее нажатой. При этом задается время работы насоса в формате часы:минуты:секунды.

Названия насосов можно прописать вручную в коде прошивки и даже на русском языке, что очень удобно. То есть, мы имеем полностью настраиваемый контроллер полива под любую ситуацию и любую теплицу. По умолчанию стоит 1 минута 1 секунда, насосы включаются по очереди на заданное время. Последовательность их работы регулируется настройкой, которая позволяет избегать включения нескольких насосов одновременно, чтобы не перегружать линию электропередач. Если не использовать этот режим, насосы будут включаться одновременно. Но учтите, что одно реле во включенном состоянии потребляет 60 мА, а небольшой насос может потребовать до 500 мА.

Умная теплица - автоматическая система полива на Arduino

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

В архиве также находится вариант скетча auto-pumps_valve, который рассчитан на схему “один насос и несколько клапанов”. В этом случае первое подключенное реле (контакт D5 на схеме) управляет насосом, а все остальные – клапанами. Как только какой-либо клапан открывается по таймеру, начинает работать общий насос.

Не знаю, есть ли что-то подобное в продаже, но даже если и есть, то, скорее всего, оно будет стоить заоблачных денег. А моя система автоматического полива укладывается в 1000 рублей или чуть больше, в зависимости от количества подключенных насосов. В таком исполнении возможно одновременное использование до 15 каналов. Устройство устанавливается на подоконнике, на балконе или в теплице и само поливает ваши растения. Будь то цветы, овощи или фрукты. Причем в любой момент, оценив состояние почвы, можно быстро изменить режим полива для любого из каналов. А собрать и настроить такого «робота» может даже 13-летний школьник — я знаю таких!

Умная теплица - автоматическая система полива

И еще. Предвосхищая многочисленные вопросы читателей — почему я не использовал в этой системе датчики влажности? Я об этом знаю, потому что каждый третий, кто видел ее в работе, спрашивает. Отвечу. Этот проект вообще не про датчики, а про таймер. К тому же, устройству с датчиками влажности вообще не нужен микроконтроллер — с ними все было бы иначе. Тем не менее, если вы вдруг когда-нибудь захотите их использовать — не обольщайтесь: они в основном китайские и не из золота, а потому очень быстро разъедаются почвой.

Александр МАЙОРОВ



еще в рубрике Электрические изделия


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *