Автополив комнатных растений на Ардуино
Содержание
- Подготовка к сборке
- Особенности подключения датчика
- Процесс сборки
- Проведение калибровки
- Программное обеспечение
- Видеообзор
- Дополнительные улучшения системы
- Заключение
Платформа Адруино подходит не только для небольших проектов в радиолюбительстве как многие считают. С ее помощью в домашних условиях можно создать устройства для выполнения других задач более интересных задач. Например, создать ирригатор, обеспечивающий автоматический полив растений. В этом случае датчик влажности будет сам сообщать о необходимости запуска полива. В то же время ирригатор позволит поддерживать требуемую влажность нескольких растений, а владельцы дома избавятся от рутинной необходимости делать это самим или просить кого-то во время разъездов.
Подготовка к сборке
Очевидно, что платы Адруино для сборки будет недостаточно. Для работы потребуется подготовить следующие компоненты:
- Плата Arduino Uno (Arduino Rev3) — оригинальная платформа.
- Troyka Shield — плата для подключения датчиков. Избавит от необходимости припаивать датчики или пользоваться макетными платами.
- Водяной насос и датчик влажности (с которым идет шлейф для подключения).
- Силовой ключ (на базе полевого транзистора) также с готовым шлейфом.
- Нажимной клеммник (для надлежащего крепления проводков).
- Проводы типа «папа-папа» и «мама-папа» по одной единице.
- Импульсный адаптер (ток 1000 мА) и USB-провод.
Для тестирования прибора и последующей эксплуатации также потребуется одно или несколько растений либо в горшках, либо вам придется перед этим их посадить. Единственное, о чем стоит помнить — земля в них должна быть сухой. Также не лишним будет приготовить четырёхразрядный индикатор со шлейфом, который облегчит индикацию.
Особенности подключения датчика
В комплекте с датчиком поставляются дополнительные элементы, такие как микросхема, щуп (втыкается в почву для измерений) и соединительные провода.
Если сенсор будет работать в отличных от рекомендуемых условиях, необходимо позаботиться о дополнительной защите микросхемы и контактов — исключить попадания на них воды или грязи. Решить эту проблему можно с помощью простого лака для ногтей или жидкой изоленты.
Процесс сборки
Чтобы получить в распоряжение готовый для настройки ирригатор, потребуется выполнить следующие действия:
- Первоначально установить плату Troyka Shield на Arduino Uno.
- К пину A0 через Troyka Shield подключается сенсор определения влажности;
- Также посредством Troyka Shiled к основной платке подключается дисплей. Здесь пин CS нужно соединить с 9-ым пином Troyka Shield, а к соответствующему выходу на Troyka Shield цепляем SPI пины дисплея.
- Силовой ключ присоединяем к четвертому контакту.
- Затем к силовому ключу подводим коммутирующее напряжение через разъем с подписями P+ и P–.
- Водяной насос подключается к силовому ключе через пины L+ и L−.
В результате наша небольшая схема готова и должна выглядеть так: - Теперь щуп датчика влажности втыкаем в почву с уже посаженным в нем растением.
- Конец шланга тоже помещается в почву. Если вес горшка меньше 2 кг, желательно дополнительно трубку укрепить. Это исключит риск опрокинуть горшок с нашим растением.
- Последним шагом опускаем насос в резервуар с водой и запитываем нашу схему.
Теперь ирригатор собран и потребуется провести его дополнительную настройку.
Рекомендуем также узнать как делается умная теплица на Ардуино, чтобы автоматизировать процесс полива не только дома на и в саду.
Проведение калибровки
На датчике будут отображаться значения, которые напрямую связаны с кислотностью земли. Соответственно, перед запуском автополивщика необходимо выполнить простую калибровку. Она проводится таким образом:
- Сначала записываются цифры, полученные после того, как датчик воткнут с сухую почву. Это минимальная влажность.
- Затем нужно полить растение и подождать момента, когда вода впитается в землю. Показатели должны оставаться на стабильном уровне, зачастую это в районе 60%, но все растения разные, поэтому предварительно узнайте, насколько ваш зеленый друг требователен к этому параметру. Их также следует сохранить, поскольку это максимальная влажность.
- С готовыми результатами следует отредактировать наш скетч (код в среде Arduino IDE), изменяем значение минимальной влажности, в нашем коде это — MIN _HUM и MAX_HUM на параметр нормальной влажности.
- Остается перепрошить Arduino Uno, для этого подключает через кабель к пк, выбираем порт, плату, жмем в правом углу кнопку загрузить.
- Расширение функциональности автополивщика
Выше была предложена система для одного горшка. На практике, автополив на Адруино эффективнее применять для нескольких растений. Для этого к Адруино можно подключить дополнительные насосы и сенсоры влажности. Однако можно поступить намного проще. В поставляемом с насосом шланге можно сделать дырочки с учетом расстояния, на котором расположены растения. В полученные отверстия можно воткнуть стержни простых ручек. Результат получится примерно такого вида:
Часто в помещениях растения в горшках располагают на подоконнике одним рядом. Это облегчает задачу, поскольку трубка крепится к горшкам таким образом, чтобы распределить выводы с водой по одному на растение. Единственное — с таким решением, настройка автоматического полива выполняется с учетом одного растения. Если горшки более-менее одинаковые по габаритам, скорость высыхания в них почвы должна быть равной. Как вариант, можно совместить оба способа масштабирования, что позволит поделить всю растительность на примерно одинаковые по габаритам горшки.
Советуем прочитать: переходите по ссылке, если хотите узнать о бюджетном способе как подключить датчик влажности почвы к Ардуино.
Программное обеспечение
Чтобы заставить скетч заработать, потребуется предварительно загрузить и установить библиотеку QuadDisplay2, позволяющую работать с экраном. Она доступна на ресурсе Github по адресу: https://github.com/amperka/QuadDisplay2.
Исходный код программы ирригатора выглядит следующим образом:
// Добавление библиотеки дисплея
#include "QuadDisplay2.h"
// переопределяем пина насоса
#define PIN_NASOS 4
// пин с подключенным датчиком
#define PIN_HUM A1
// мин влажность, измеренная на этапе калибровки (указываются в аналоговом значении до 1023)
#define MIN_HUM 211
// оптимальная влажность
#define MAX _HUM 715
// периодичность полива 180 секунд
#define TIME_PERIOD 60000 * 3
// переменная для хранения показаний влажности почвы
unsigned int hum = 0;
// предыдущее время полива
unsigned long previousTime = 0;
// передаем CS пин
QuadDisplay disp(9);
void setup(void)
<
// запуск дисплея
disp.begin();
// пин насоса в режим выхода
pinMode(PIN _POMP , OUTPUT);
// отображаем на дисплее 0
disp.displayInt(0);
>
void loop(void)
<
// снимаем текущее показание датчика влажности
int humCurrent= analogRead(PIN _HUM);
// сверяем показания влажности с предыдущим значением
if(humCurrent != hum) <
// сохраняем текущие показания влажности
hum= humCurrent;
// отображаем измеренное значение на дисплее
disp.displayInt(humCurrent);
>
// если пришло вермя полива и влажность ниже оптимальной, то запускаем насос
if ((previousTime == 0 || millis() — previousTime TIME_INTERVAL) humidity MIN_HUMIDITY ) <
// включение насоса на 2 секунды
digitalWrite(PIN_NASOS, HIGH);
delay(2000);
// выключаем помпу
digitalWrite(PIN_NASOS, LOW);
// запоминаем предыдущее время проверки полива
previousTime = millis();
>
>
Видеообзор
На предложенном видеоролике можно увидеть, как работает автополивщик Адруино:
Дополнительные улучшения системы
Когда автополив для комнатных растений будет настроен и готов к работе, следует воспользоваться следующими рекомендациями:
- Хотя контакты датчика влажности позолочены, по мере эксплуатации они повергаются коррозии. Наиболее интенсивное коррозирование происходит во время подключенного напряжения. Однако срок эксплуатации сенсора возможно продлить в несколько раз, подключив в нему напряжение посредством силового ключа. Если требуется снять показатели — на датчик поступает питание, затем значения сохраняются и питание сразу же выключается.
- Бывают ситуации, когда ирригатор работает продолжительное время, никто за ним не присматривает, а в емкости заканчивается вода. Если насос работает вхолостую, возникает высокая вероятность его поломки. Проблему можно решить, если настроить автораспознавание отсутствия воды в емкости.
- Выбирать датчик следует с учетом типа емкости. Если она не слишком глубокая, его одного будет достаточно. Если высоты оказывается недостаточно, подойдет ультразвуковой дальномер, оснастив его поплавком с прикрепленным сенсором наклона. Можно просто положить на дно резервуара 2 провода.
- Безопасность автополивщика, который питается через батарейки, намного выше по сравнению с работающим от сети. В идеале будет обеспечить напряжение от батареек, однако потребление Arduino Uno даже в спящем режиме выше 0.36мА. Как вариант, стоит обратить внимание на плату Arduino Mini, которая в спящем режиме умеет снижать свое потребление энергии до нескольких сотен мкА.
- При поливе комнатной растительности следует учитывать множество правил и рекомендаций. Например, их нельзя поливать зимними вечерами. Можно оснастить поливщик датчиками света или обычными часами, а затем отредактировать программу, чтобы устройство работало в требуемое время.
Заключение
На самом деле, существует множество модификаций автополивщика на Адруино. Отличаются они между собой дополнительными возможностями и особенностями конструкции. Тем не менее, принцип их работы практически одинаков — программа считывает данные с датчика влажности и запускает водяную помпу, если обнаруживает их минимальное значение. Затем насос работает до того момента, пока датчик не покажет данные, соответствующие максимальным показателям.
В процессе сборки не должно возникнуть трудностей, однако предварительно следует постараться обезопасить датчик влажности. Предложенное программное обеспечение протестировано и после калибровки не нуждается в дополнительных настройках.
Источник: