Автополив комнатных растений на Ардуино

Содержание

Оглавление статьи: Автополив комнатных растений на Ардуино

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

Подготовка к сборке

Очевидно, что платы Адруино для сборки будет недостаточно. Для работы потребуется подготовить следующие компоненты:

  • Плата 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, которая в спящем режиме умеет снижать свое потребление энергии до нескольких сотен мкА.
  • При поливе комнатной растительности следует учитывать множество правил и рекомендаций. Например, их нельзя поливать зимними вечерами. Можно оснастить поливщик датчиками света или обычными часами, а затем отредактировать программу, чтобы устройство работало в требуемое время.

Заключение

На самом деле, существует множество модификаций автополивщика на Адруино. Отличаются они между собой дополнительными возможностями и особенностями конструкции. Тем не менее, принцип их работы практически одинаков — программа считывает данные с датчика влажности и запускает водяную помпу, если обнаруживает их минимальное значение. Затем насос работает до того момента, пока датчик не покажет данные, соответствующие максимальным показателям.

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


Источник: vashumnyidom.ru