Закрыть ... [X]

Автополив на ардуино своими руками

Содержание

irrigator_main.jpg

  • Платформы: Arduino Uno

  • Языки программирования: Wiring (C++)

  • Тэги: автополив, ирригация, гидропоника

Что это такое?

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

Что для этого необходимо?

Как это собрать?

  1. Установите Troyka Shield на Arduino Uno irrigator_1.jpg
  2. Подключите датчик влажности почвы через Troyka Shield к аналоговому пину A0 irrigator_2.jpg
  3. Подключите дисплей к управляющей плате через Troyka Shiled:

    1. Пин cs к 9 пину Toyka Shield.
    2. Пины SPI дисплея к разъёму SPI на Troyka Shiled irrigator_3.jpg
  4. Подключите силовой ключ к контакту 4 irrigator_4.jpg
  5. Подведите коммутирующее напряжение к силовому ключу в разъём P+ и P− irrigator_5.jpg
  6. Подключите помпу к силовому ключу через клеммник с разъёмами L+ и L−. irrigator_6.jpg В итоге должна получится схема.
  7. Воткните сенсор влажности почвы в землю.

  8. Другой конец шланга вставьте с водой в землю. Если горшок с землёй весит менее 2 кг, рекомендуется отдельно закрепить трубку, чтобы она не перевернула растение.

  9. Опустите помпу в ёмкость с водой. irrigator_7.jpg
  10. Подключите питание.

Калибровка

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

  1. Запишите показания на дисплее при воткнутом в сухой горшок сенсоре. Это — минимум влажности.

  2. Полейте цветок и дождитесь пока вода полностью впитается в землю и показания сенсора установятся на одном уровне. Запишите их. Это — максимум влажности.

  3. В скетче исправьте значения константы HUMIDY_MIN на значение минимальной влажности и HUMIDY_MAX на значение максимальной влажности. Заново прошейте Arduino Uno.

Масштабирование решения

Мы описали решение для одного растения. Но обычно требуется поливать несколько растений. Помимо очевидного решения — подключения к Arduino нескольких помп и датчиков влажности — существует более простое и дешёвое. Достаточно в трубке, которая идёт в комплекте с помпой проделать шилом дырочки на расстоянии около 30 см и воткнуть в эти дырочки куски стержней от обычных шариковых ручек. Выглядеть это будет так:

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

Исходный код

Для работы скетча вам понадобиться скачать и установить библиотеку для работы с дисплеем QuadDisplay2

irrigator.ino // Подключаем библиотеку для работы с дисплеем #include "QuadDisplay2.h" // даём разумное для пина, к которому подключена помпа #define POMP_PIN 4 // даём разумное для пина, к которому подключён датчик влажности почвы #define HUMIDITY_PIN A0 // минимальный порог влажности почвы #define HUMIDITY_MIN 200 // максимальный порог влажности почвы #define HUMIDITY_MAX 700 // интервал между проверкой на полив растения #define INTERVAL 60000 3 // переменная для хранения показания влажности почвы unsigned int humidity = 0; // статическая переменная для хранения времени unsigned long waitTime автополив на ардуино своими руками = 0; // создаём объект класса QuadDisplay и передаём номер пина CS QuadDisplay qd(9); void setup(void) { // начало работы с дисплеем qd.begin(); // пин помпы в режим выхода pinMode(POMP_PIN, OUTPUT); // выводим 0 на дисплей qd.displayInt(0); } void loop(void) { // считываем текущее показания датчика влажности почвы int humidityNow = analogRead(HUMIDITY_PIN); // если показания текущей влажности почвы // не равняется предыдущему запросу if(humidityNow!= humidity) { // сохраняем текущие показания влажности humidity= humidityNow; // и выводим показания влажности на дисплей qd.displayInt(humidityNow); } // если прошёл заданный интервал времени // и значения датчика влажности меньше допустимой границы if ((waitTime == 0 || millis() - waitTime > INTERVAL) && humidity < HUMIDITY_MIN ) { // включаем помпу digitalWrite(POMP_PIN, HIGH); // ждём 2 секунды delay(2000); // выключаем помпу digitalWrite(POMP_PIN, LOW); // приравниваем переменной waitTime // значение текущего времени плюс 3 минуты waitTime = millis(); } }

Демонстрация работы устройства

Что ещё можно сделать?

  1. Несмотря на золочение, контакты сенсора влажности со временем корродируют. Быстрее всего корродирование происходит при подключённом питании. Срок жизни сенсора можно значительно увеличить, если подключить питание к нему через силовой ключ. Когда надо получить данные — включаем питание сенсора, снимаем показания и тут же выключаем питание.

  2. Если оставить наш ирригатор работающим на длительный срок без присмотра, вода в резервуаре может закончиться. При работе без воды помпа быстро выходит из строя. Решением проблемы может быть автоматическое определение опустошения резервуара. Сенсор подбирается исходя из типа резервуара. Если он не глубок, то подойдёт ещё один датчик влажности. Когда же высоты его не хватает, можно воспользоваться УЗ-дальномером, сделать поплавок с датчиком наклона и


Поделись с друзьями



Рекомендуем посмотреть ещё:



Схема системы автополива на микроконтроллере в качестве интересного проекта Как из ракушек сделать кулон

Автополив на ардуино своими руками Устройство для автоматического полива растений на платформе Arduino
Автополив на ардуино своими руками Автоматический полив (система автополива устройство, монтаж)
Автополив на ардуино своими руками Датчик уровня влажности почвы и автоматический полив на Arduino
Автополив на ардуино своими руками Делаем автополив комнатного цветка на Arduino за 15 минут / Geektimes
Автополив на ардуино своими руками Автополив на Arduino: схемы подключения, программный код
Автополив на ардуино своими руками Урок 30. Автоматический полив растений - Урок для Arduino
Автополив на ардуино своими руками Автоматический полив для дачи своими руками
Автополив на ардуино своими руками Автополивщик растений на Arduino Амперка / Вики


ШОКИРУЮЩИЕ НОВОСТИ