Как сделать автоматический полив растений на Ардуино: инструкция

Как сделать автоматический полив растений на Ардуино: инструкция Огород

Что такое автополив на «ардуино»

Автополив — автоматизированный процесс увлажнения растений, в котором требуется минимальное участие человека. Если организовывать его на плате «Ардуино», то от пользователя потребуется только периодически:

  • менять воду для полива;
  • осматривать конструкцию на наличие неисправностей.

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

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

Что понадобится для работы

Для сборки конструкции потребуются следующие элементы:

  1. Плата Arduino (например, модель UNO или Мега).
  2. Датчик уровня влажности почвы.
  3. Насос для воды.
  4. Шланг для прокачки жидкости (подводится напрямую в горшок или на грядку).
  5. Емкость для забора воды.
  6. Контактные кабели.
  7. Блок питания электронных компонентов.

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

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

Основные параметры и схема подключения

Датчик влажности состоит из щупа и компаратора. Сигнал может измеряться как в аналоговой форме (0 — максимум влажности, 1023 — минимум), так и в цифровой (0 — влажно, 1 — сухо). Для повышения точности лучше использовать аналоговую форму. Оптимально выбрать следующие параметры: 200 — нормальная влажность, 600 — предельная сухость. Эти показатели можно изменить в загружаемой в плату прошивке.

1 вывод датчика подключается к аналоговому пину «Ардуино», 2 — к питанию (Vcc, GND), а оставшиеся 4 не соединяются ни с чем, т.к. цифровой сигнал не используется.

Вода из резервуара в систему будет подаваться при помощи насоса. Достаточно устройства на 12 В. Помпа должна работать в соответствии с выбранным типом полива растений. Оптимальный вариант — капельный.

Схема насосной станции состоит из:

  • мотора;
  • драйвера «двигатель-плата»;

Мотор 1 выводом подключается к драйверу, а другим — к собственному источнику питания в виде аккумулятора или батареи. Работающим двигателем подкачивается вода в трубки.

Драйвер подключается 1 выводом к информационному контакту «Ардуино», а 2 другими — к питанию (Vcc, GND).

Полив комнатных растений автоматически с помощью arduino

// установим все датчики влажности PIN ID

intmoisture1=A0;

intmoisture2=A1;

intmoisture3=A2;

intmoisture4=A3;

// объявим значения влажности

intmoisture1_value=0;

intmoisture2_value=0;

intmoisture3_value=0;

intmoisture4_value=0;

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

intrelay1=3;

intrelay2=4;

intrelay3=5;

intrelay4=6;

// установим выход реле на насос

intpump=2;

voidsetup(){

  // Объявим реле, как выход

  pinMode(relay1,OUTPUT);

  pinMode(relay2,OUTPUT);

  pinMode(relay3,OUTPUT);

  pinMode(relay4,OUTPUT);

  // Объявим насос, как выход

  pinMode(pump,OUTPUT);

  // Откроем порт для мониторинга

  Serial.begin(9600);  

}

voidloop(){

// читаем значения с датчиков влажности

moisture1_value=analogRead(moisture1);

moisture2_value=analogRead(moisture2);

moisture3_value=analogRead(moisture3);

moisture4_value=analogRead(moisture4);

// проверяем, какое растение нуждается в воде

// и расскоментируйте нужную строчку для конкретного клапана

// установите значение требуемой влажности

//if(moisture1_value<=450){

// digitalWrite(relay1, HIGH);

//}

//if(moisture2_value<=450){

// digitalWrite(relay2, HIGH);

//}

//if(moisture3_value<=450){

// digitalWrite(relay3, HIGH);

//}

//if(moisture4_value<=450){

// digitalWrite(relay4, HIGH);

//}

digitalWrite(pump,HIGH);

digitalWrite(relay1,HIGH);

delay(500);

digitalWrite(relay2,HIGH);

delay(500);

digitalWrite(relay3,HIGH);

delay(500);

digitalWrite(relay4,HIGH);

delay(500);

digitalWrite(relay1,LOW);

delay(500);

digitalWrite(relay2,LOW);

delay(500);

digitalWrite(relay3,LOW);

delay(500);

digitalWrite(relay4,LOW);

digitalWrite(pump,LOW);

delay(500);

// убедитесь, что есть хотя бы одно растение, которое нуждается в воде

// если есть, включите насос

//if(moisture1_value<=450 || moisture2_value<=450 || moisture3_value<=450 || moisture4_value<=450){

//  digitalWrite(pump, HIGH);

//}

// Оросите растение в течении 5 с

//delay(5000);

// Выключите насос

//digitalWrite(pump, LOW);

// Пройдитесь по каждому клапану и выключите их

//digitalWrite(relay1, LOW);

//digitalWrite(relay2, LOW);

//digitalWrite(relay3, LOW);

//digitalWrite(relay4, LOW);

// Подождите 5 минут и повторите процесс

//Serial.println(moisture1_value);

//delay(10000);

//delay(300000);

}

Пошаговая инструкция сборки

Элементы собираются в следующем порядке:

  1. В плату загружается скетч.
  2. «Ардуино» отключается от питания.
  3. К плате без питания подключаются насос и датчик.
  4. К выводам резервуара с жидкостью подсоединяются трубки для полива.
  5. Двигатель помпы подключается к автономному питанию.
  6. Емкость для орошения наполняется водой.
  7. К «Арудино» подводится питание.
  8. Активируется автополив.

Подключение и настройка системы производится при полностью отключенном питании и отсутствии воды в конструкции.

Элементы питания нужно расположить максимально далеко от резервуара и трубок с жидкостью.

Пример кода

int min_value = 600; //предельная сухость

int max_value = 220; //нормальная влажность

int normal_value = 500; //высокая сухость

int value = 0; //полученное значение с датчика

int last_value = 0; //последнее влияющее изменение параметра датчика

int delta =50; //изменение, влияющее на работу помпы

int ralay = 6; //вывод реле

int pomp_work = 10; //время работы насоса в секундах

int analogPin = A0; //вывод датчика влажности почвы

int second = 0; //секунды

int off = 0; //счетчик времени, оставшегося до конца полива

int pause = 15; //время паузы после полива в минутах

void setup()

Serial.begin(9600);

pinMode(ralay,HIGH);

digitalWrite(ralay, HIGH);

void water()

int pomp_temp;

pomp_temp = pomp_work;

digitalWrite(ralay, LOW);

while(pomp_temp > 0 && value > norm_value)

delay(1000);

value=analogRead(analogPin);//обновляем значение влажности

pomp_temp—;

digitalWrite(ralay, HIGH);

second=0; //сброс счетчика секунд

off=pause;//установка таймаута между поливами

void loop()

value=analogRead(analogPin);

if (value>(last_value delta)||value<(last_value-delta))

Serial.println(value);

last_value=value;

if ((value>(min_value-value_sdvig)) && off<1)

water();

if (second>59)

second=0;

if (off>0) off—;

delay(1000);//пауза 1 сек

second ;

Принцип работы автополива на базе мк «ардуино»

Система автополива функционирует по принципу опроса платой датчика влажности земли. Каждую секунду (этот промежуток настраивается программой) датчик отправляет информацию о состоянии почвы микроконтроллеру.

Если принятое значение превышает 550, а помпа не работала более 15 минут, то активируется автополив. Время увлажнения прописывается в программе (в скетче за это отвечает переменная pomp_work).

15-минутный перерыв в процессе орошения требуется, чтобы влага успела впитаться в почву, и растения получили ровно столько жидкости, сколько нужно.

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

Датчик можно подключить через драйвер к «Ардуино» и прописать в скетче условие: если уровень воды ниже *значение переменной*, то не подавать управляющий сигнал на помпу.

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

Оцените статью
Дачный мир
Добавить комментарий