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

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

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

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

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

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

Заключение

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

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

Видео по теме

Добавить комментарий Ваш e-mail не будет опубликован. Обязательные поля помечены *