Система полива растений на ардуино уно

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

  1. Несмотря на золочение, контакты сенсора влажности со временем корродируют. Быстрее всего корродирование происходит при подключённом питании. Срок жизни сенсора можно значительно увеличить, если подключить питание к нему через силовой ключ. Когда надо получить данные — включаем питание сенсора, снимаем показания и тут же выключаем питание.
  2. Если оставить наш ирригатор работающим на длительный срок без присмотра, вода в резервуаре может закончиться. При работе без воды помпа быстро выходит из строя. Решением проблемы может быть автоматическое определение опустошения резервуара. Сенсор подбирается исходя из типа резервуара. Если он не глубок, то подойдёт ещё один датчик влажности. Когда же высоты его не хватает, можно воспользоваться УЗ-дальномером, сделать поплавок с датчиком наклона или просто опустить на дно два провода.
  3. Устройство, работающее от батареек, будет значительно безопасней питающегося от сети. Идеальным вариантом было бы питание ирригатора от батареек. Но Arduino Uno, как известно, даже в режиме сна потребляет более 10 мА. Выходом может являться использование Arduino Mini, способный в режиме сна снижать потребляемый ток до сотен мкА.
  4. Существует много правил полива домашних растений, как, например: не стоит поливать зимой вечером. Можно добавить сенсоров света или часы реального времени и скорректировать программу так, чтобы она старалась поливать в нужное время.

А ещё можно собрать автополив на Slot Shield — инструкция по сборке и прошивка.

Работа схемы

В этом проекте мы использовали самодельный датчик влажности почвы на основе зонда, который будет использоваться для измерения уровня влажности почвы. Для изготовления зонда мы использовали доску, покрытую медью как показано на рисунке ниже (можно использовать ненужный кусок печатной платы). Один контакт зонда будет подсоединен к Vcc (напряжению постоянного тока), а другой – к базе транзистора BC547. К базе транзистора также подключен потенциометр для регулирования чувствительности датчика влажности почвы.

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

GSM модуль используется для передачи SMS пользователю. Мы использовали TTL SIM800 GSM модуль, который имеет выход непосредственно в TTL модуль, но можно использовать и любой другой GSM модуль. Регулятор напряжения LM317 используется для подачи питания на SIM800 GSM модуль. LM317 очень чувствителен к максимально допустимому напряжению и перед его использованием рекомендуется прочитать даташит на него. Его рабочее напряжение составляет от 3.8v до 4.2v (более предпочтительно использовать 3.8v). На следующем рисунке показана схема подачи питания на TTL sim800 GSM модуль:

Если вам нужно использовать SIM900 TTL модуль, то вы должны использовать 5V, а если вы хотите использовать SIM900 модуль, то вы должны подключить 12v в DC Jack slot платы.

Реле 12V используется для управления небольшим водяным насосом, работающим от 220VAC. Реле управляется с помощью транзистора BC547, который в дальнейшем подсоединен к цифровому контакту 11 платы Arduino.

ЖК дисплей (опционально) используется для отображения статуса устройства и сообщений. Управляющие контакты ЖК дисплея RS и EN подключены к контактам 14 и 15 платы Arduino, а контакты данных D4-D7 непосредственно подключены к контактам 16, 17, 18 и 19 платы Arduino. ЖК дисплей используется в 4-битном режиме и управляется встроенной библиотекой Arduino.

Полная схема устройства представлена на следующем рисунке.

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

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

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

Как это работает

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

  • Если почва влажна – выходное напряжение уменьшается
  • Если почва суха – выходное напряжение увеличивается

На выходе будет цифровой сигнал (D0) – LOW или HIGH, в зависимости от содержания воды в почве. То есть, если влажность почвы превысит определенное пороговое значение, модуль вернет значение LOW, а если нет – HIGH. Пороговое значение для цифрового сигнала настраивается при помощи потенциометра.

На выходе может быть и аналоговый сигнал, что позволяет измерять влажность значениями в диапазоне от «0» до «1023».

Идеи проектов

На достигнутом не останавливайся, свои проекты создавай и мудрость джедая постигай.

Телеграм-бот и IFTTT

Автоматизируй полив и общайся со своим садом с помощью Телеграм-бота. Установи программные триггеры с сервисом IFTTT. Всему этому ты научишься с эпизодом 2: Йодо. Интернет вещей.

Автополив 2.0

Добавь датчик влажности воздуха для качественного ухода за растениями. Отслеживай параметры на сайте dweet.io. Для этого потребуется модуль Wi-Fi или Ethernet Shield.

Увлажнитель воздуха

Приспособь бытовой увлажнитель воздуха. Управляй им через модули Nano Switch. Используй часы реального времени для работы по расписанию.

#Структор

Устройства на Troyka Slot Shield можно удобно оформлять в корпус из #Структора с помощью набора плашек Slot Box (#Структор).

Необходимые компоненты

Плата Arduino Uno GSM модуль Транзистор BC547 (2 шт.) Соединительные провода ЖК дисплей 16х2 (опционально) Источник питания 12v 1A Реле на 12v Водяной насос Датчик влажности почвы (Soil Moisture Sensor) Резисторы (1 кОм, 10 кОм) Переменные резисторы (10 кОм, 100 кОм) Концевой соединитель Регулятор напряжения (микросхема LM317)

GSM модуль

В этом проекте мы использовали TTL SIM800 GSM модуль. SIM800 представляет собой четырех диапазонный GSM/GPRS модуль, способен работать в диапазонах частот 850/900/1800/1900 МГц и обеспечивать передачу голоса, SMS, данных с низким энергопотреблением. Внешний вид SIM800 показан на рисунке ниже – он достаточно компактный и не займет много места в ваших устройствах. Модуль SIM800 включает:

  • четырех диапазонный GSM/GPRS модуль компактного размера;
  • возможность задействования GPRS;
  • выход TTL.

Более подробно изучить работу с GSM модулем можно в статье про автоматическую доску объявлений на Arduino. Также можно посмотреть все статьи на нашем сайте, использующие технологию GSM.

Автоматическая система полива растений: схема

Принципиальная схема автоматической системы полива растений показана на рис. 2. Цепь содержит плату Arduino UNO, датчик влажности почвы, серводвигатель, 12-вольтовый водяной насос и микросхему привода двигателя L293D (IC1) для управления водой. насос.

Вы можете запитать плату Arduino от 7 В до 12 В или от адаптера или от солнечной панели. Вам нужна отдельная батарея 12В или блок питания или солнечная панель для двигателя насоса.

Датчик влажности почвы

На рынке доступны два типа датчиков влажности почвы – контактные и бесконтактные датчики. В этом проекте используется контактный датчик почвы (как показано на рис. 3), поскольку он должен проверять влажность почвы для измерения электропроводности.

Датчик влажности обеспечивает аналоговый выход, который может быть легко связан с Arduino. В этом проекте два датчика могут быть подключены к аналоговым контактам A0 и A1 платы Arduino. Каждый датчик имеет четыре контакта (Vcc, Gnd, Ao и Do) для взаимодействия с платой Arduino. Здесь вывод цифрового выхода (Do) не используется. Водяной насос и серводвигатель управляются Arduino, подключенными к цифровым контактам 3 и 9 соответственно. То есть контакт управления сигналом серводвигателя подключен к контакту 9 платы Arduino.

Программа в Arduino считывает значение влажности с датчика каждые 20 секунд. Если значение достигает порогового значения, программа выполняет следующие три вещи:

  1. Он перемещает гудок серводвигателя вместе с водопроводной трубой, закрепленной на нем, в направлении горшечного растения, уровень влажности которого меньше предварительно определенного / порогового уровня.
  2. Он запускает моторный насос для подачи воды на установку в течение определенного периода времени, а затем останавливает водяной насос (см. Рис. 4).
  3. Он возвращает рупор серводвигателя в исходное положение.

Процесс сборки

Чтобы получить в распоряжение готовый для настройки ирригатор, потребуется выполнить следующие действия:

  • Первоначально установить плату Troyka Shield на Arduino Uno.
  • К пину A0 через Troyka Shield подключается сенсор определения влажности;
  • Также посредством Troyka Shiled к основной платке подключается дисплей. Здесь пин CS нужно соединить с 9-ым пином Troyka Shield, а к соответствующему выходу на Troyka Shield цепляем SPI пины дисплея.
  • Силовой ключ присоединяем к четвертому контакту.
  • Затем к силовому ключу подводим коммутирующее напряжение через разъем с подписями P+ и P–.
  • Водяной насос подключается к силовому ключе через пины L+ и L−.

    В результате наша небольшая схема готова и должна выглядеть так:

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

Теперь ирригатор собран и потребуется провести его дополнительную настройку.

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

Версия 1.* Система управляет количеством помп PUPM_AMOUNT, подключенных подряд в пины платы, начиная с пина START_PIN. На каждую помпу заводится таймер, который включает помпу на заданное время через заданные промежутки времени. Промежутки времени (период работы) может быть в часах или минутах (настройка PERIOD). Время работы помпы может быть в минутах или секундах (настройка PUMPING). Включение производится сигналом уровня SWITCH_LEVEL. 0 – для реле низкого уровня (0 Вольт, все семейные модули реле), 1 – высокого уровня (5 Вольт, редкие модули реле, все мосфеты). Примечание: катушка реле кушает около 60 мА, несколько включенных вместе катушек создадут лишнюю нагрузку на линию питания. Также несколько включенных одновременно помп сделают то же самое. Для устранения этого эффекта есть настройка PARALLEL. При её отключении помпы будут “вставать в очередь”, совместное включение будет исключено.Управление:

  • Нажатие на ручку энкодера – переключение выбора помпы/периода/времени работы
  • Поворот ручки энкодера – изменение значения
  • Кнопка энкодера удерживается при включении системы – сброс настроек

Версия 2.*ПЕРЕД ПРОШИВКОЙ ВТОРОЙ ВЕРСИИ ЗАМЕНИТЕ ВСЕ БИБЛИОТЕКИ НОВЫМИ (ИДУТ В АРХИВЕ ПРОЕКТА, В ПАПКЕ НОВАЯ ВЕРСИЯ)!!!! Поворачивая рукоятку энкодера мы перемещаем стрелочку выбора по экрану

Обратите внимание на то, что настройка времени работы помпы находится правее «за экраном», нужно пролистать стрелочку направо чтобы её активировать. Чтобы изменить выбранный стрелочкой параметр, нужно повернуть рукоятку энкодера, удерживая её нажатой

Таким образом можно настроить время периода и работы помпы в формате ЧЧ:ММ:СС. Логика работы настроек PUPM_AMOUNT, START_PIN, SWITCH_LEVEL и PARALLEL такая же как для версии 1.*

  • Поворот ручки энкодера – изменение позиции стрелки
  • Поворот ручки энкодера удерживая её нажатой – изменение значения
  • Кнопка энкодера удерживается при включении системы – сброс настроек

</ul>

WEB приложение для управления поливом через интернет

Через веб-приложение пользователь:

Главный экран управления и мониторинга состояния системы

На этом же экране пользователь может вручную включить или выключить любую из линий полива.

В нижней части экрана отображаются последние события, произошедшие на станции.

Экран управления расписанием полива в автоматическом режиме

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

Журнал событий

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

Оповещение пользователя

В настройках станции пользователь может назначить некоторые события как «предупредительные» или «аварийные». При возникновении этих событий сервер будет оповещать пользователя по электронной почте и (или) СМС. Это могут быть события обрыва связи со станцией, низкий уровень воды в резервуаре или низкая температура на улице.

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

График уличной температуры

На этом экране отображается график изменения температуры в течение заданного промежутка времени (10 мин., 30 мин., час, 12 часов, сутки, неделя, месяц).

Программное обеспечение

Чтобы заставить скетч заработать, потребуется предварительно загрузить и установить библиотеку 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(); } }

Программное обеспечение

Программа написана на языке программирования Arduino. Код хорошо прокомментирован и прост для понимания. Скомпилируйте код autowatering.ino и загрузите его в микроконтроллер, используя Arduino IDE версии 1.

Рис. 3: Датчик влажности почвы (тип контакта)Рис. 4: Моторный насосРис. 5: Печатная плата фактического размера схемы

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

Как собрать?

Возьмите бочку и сделайте в ней 2 отверстия для датчиков уровня воды. Датчик максимального уровня должен находится в 10–15 сантиметрах от верхнего края, датчик минимального – примерно на середине бочки. Установите датчики в отверстия.

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

Возьмите датчик скорости потока жидкости и подключите к нему шланг от насоса. Шланг должен иметь на конце гайку с трубной резьбой ½ дюйма

Обратите внимание, на корпусе датчика изображена стрелка, показывающая направление движения воды. В данном случае стрелка должна показывать в направлении от насоса к бочке

К другой стороне датчика присоедините такой же шланг с гайкой на конце.

Возьмите Iskra JS и установите на неё Troyka Shield.

Подключите реле в форм-факторе тройка модуль через трехпроводной шлейф мама-мама к Troyka Shield к пину .

Возьмите герметичный короб, разместите в нем Iskra JS и реле. Для подключения насоса и датчиков вам потребуется сделать отверстия в коробке. Сделайте их минимально возможного размера. Сделайте отверстия для шлейфов двух датчиков уровня, датчика скорости потока жидкости и розетки питания насоса.

Проденьте в отверстия шлейфы от каждого датчика. Подключите шлейф от нижнего датчика уровня к пину , а верхнего — к пину . Шлейф датчика скорости потока жидкости подключите к пину .

Теперь подведите питание к компонентам устройства. Возьмите удлинитель с вилкой на конце и зафиксируйте контакты в клеммнике.

Аккуратно разберите блок питания на 5 Вольт. Подключите проводами питание 220 Вольт, а USB-кабель USB — к Iskra JS.

Возьмите настенную розетку. Разберите её, подведите к одному гнезду розетки провод от клеммника. Второй провод подключите через реле. Один провод на реле подключите к центральной клемме, а второй к клемме NC, что означает «нормально разомкнутый» — напряжение на розетке будет при установленном высоком логическом уровне на Iskra JS.

Закройте крышку герметичной коробки и закрепите её на бочке.

Подключите вилку насоса к розетке.

Элементы платы

Измерительные электроды

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

Сами электроды представляют из себя обкладки конденсатора, который при изменении влажности почвы меняет свою ёмкость, что приводит к повышению или понижению выходного сигнала датчика.

Операционный усилитель MCP6002

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

Регулятор напряжения 3V3

Линейный понижающий регулятор напряжения TPS73033DBVR обеспечивает питание микросхемы 555 и других компонентов сенсора. Диапазон входного напряжения от 3,3 до 5 вольт. Выходное напряжение 3,3 В с максимальным выходным током 200 мА.

Troyka-контакты

Датчик подключается к управляющей электронике через три провода.

  • Сигнальный (S) — выходной сигнал сенсора. Напряжение на выходе датчика прямо пропорционально уровню измеренной электропроводности: чем выше влажность почвы, тем выше уровень сигнала на выходе датчика и соответственно наоборот. Максимальное выходное значения 3,3 вольта. Подключите к аналоговому пину микроконтроллера.
  • Питание (V) — соедините с рабочим напряжением микроконтроллера.
  • Земля (G) — соедините с землёй микроконтроллера.

Дополнительные улучшения системы

Когда автополив для комнатных растений будет настроен и готов к работе, следует воспользоваться следующими рекомендациями:

Хотя контакты датчика влажности позолочены, по мере эксплуатации они повергаются коррозии. Наиболее интенсивное коррозирование происходит во время подключенного напряжения. Однако срок эксплуатации сенсора возможно продлить в несколько раз, подключив в нему напряжение посредством силового ключа. Если требуется снять показатели — на датчик поступает питание, затем значения сохраняются и питание сразу же выключается.
Бывают ситуации, когда ирригатор работает продолжительное время, никто за ним не присматривает, а в емкости заканчивается вода. Если насос работает вхолостую, возникает высокая вероятность его поломки. Проблему можно решить, если настроить автораспознавание отсутствия воды в емкости.
Выбирать датчик следует с учетом типа емкости. Если она не слишком глубокая, его одного будет достаточно. Если высоты оказывается недостаточно, подойдет ультразвуковой дальномер, оснастив его поплавком с прикрепленным сенсором наклона. Можно просто положить на дно резервуара 2 провода.
Безопасность автополивщика, который питается через батарейки, намного выше по сравнению с работающим от сети. В идеале будет обеспечить напряжение от батареек, однако потребление Arduino Uno даже в спящем режиме выше 0.36мА

Как вариант, стоит обратить внимание на плату Arduino Mini, которая в спящем режиме умеет снижать свое потребление энергии до нескольких сотен мкА.
При поливе комнатной растительности следует учитывать множество правил и рекомендаций. Например, их нельзя поливать зимними вечерами

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

Программа для Arduino

Скетч достаточно простой. Для передачи данных на LCD дисплей вам необходимо подключить библиотеку Software Serial library. Если у вас в ее нет, скачать можно здесь: Arduino GitHub

// Пример использования датчика уровня влажности почвы с LCD дисплеем.

// В скетче считываются данные с датчика и отображается уровень влажности почвы

// Для работы с дисплеем используется библиотека softwareserial library

#include &ltSoftwareSerial.h&gt

// Подключите пин для обмена данными с использованием LCD дисплея по серийному протоколу RX к цифровому пину 2 Arduino

SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (не используется)

// Тут мы настраиваем некоторые константы.

// Настройка констант зависит от условий внешней среды, в которой используется датчик

int thresholdUp = 400;

int thresholdDown = 250;

// Настраиваем пин A0 на Arduino для работы с датчиком:

int sensorPin = A0;

void setup(){

mySerial.begin(9600); // устанавливаем скорость обмена данными на 9600 baud

delay(500); // ждем пока дисплей прогрузится

}

void loop(){

// Здесь мы объявляем строку, в которой хранятся данные для отображения

// на жидкокристаллическом дисплее. Значения будут изменяться

// в зависимости от уровня влажности почвы

String DisplayWords;

// В переменной sensorValue хранится аналоговое значение датчика с пина А0

int sensorValue;

sensorValue = analogRead(sensorPin);

// перемещение курсора к началу первой строки LCD дисплея:

mySerial.write(254);

mySerial.write(128);

// очистка дисплея:

mySerial.write(» «);

mySerial.write(» «);

// перемещение курсора к началу первой строки LCD дисплея:

mySerial.write(254);

mySerial.write(128);

// запись необходимой информации на дисплей:

mySerial.write(«Water Level: «);

mySerial.print(sensorValue); //Использование.print вместо .write для значений

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

// Если значение меньше thresholdDown, отображаем слова:

// «Dry, Water it!»

if (sensorValue

// перемещение курсора к началу второй строки дисплея:

mySerial.write(254);

mySerial.write(192);

DisplayWords = «Dry, Water it!»;

mySerial.print(DisplayWords);

// Если значение не ниже thresholdDown надо провести проверку, не будет

// ли оно больше нашего thresholdUp и, если, больше,

// отобразить надпись «Wet, Leave it!»:

} else if (sensorValue >= thresholdUp){

// перемещение курсора к началу второй строки дисплея:

mySerial.write(254);

mySerial.write(192);

DisplayWords = «Wet, Leave it!»;

mySerial.print(DisplayWords);

// Если полученное значение в диапазоне между минимальным и максимальным

// и почва была раньше влажной, а теперь сохнет,

// отображаем надпись «Dry, Water it!» (то есть, когда мы

// приближаемся к thresholdDown). Если почва была сухой, а теперь

//быстро увлажняется, отображаем слова «Wet, Leave it!» (то есть, когда мы

// приближаемся к thresholdUp):

} else {

// перемещение курсора к началу второй строки дисплея:

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

}

delay(500); //Задержка в пол секунды между считываниями

}

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

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

Дополнительные улучшения системы

Когда автополив для комнатных растений будет настроен и готов к работе, следует воспользоваться следующими рекомендациями:

Хотя контакты датчика влажности позолочены, по мере эксплуатации они повергаются коррозии. Наиболее интенсивное коррозирование происходит во время подключенного напряжения. Однако срок эксплуатации сенсора возможно продлить в несколько раз, подключив в нему напряжение посредством силового ключа. Если требуется снять показатели — на датчик поступает питание, затем значения сохраняются и питание сразу же выключается.
Бывают ситуации, когда ирригатор работает продолжительное время, никто за ним не присматривает, а в емкости заканчивается вода. Если насос работает вхолостую, возникает высокая вероятность его поломки. Проблему можно решить, если настроить автораспознавание отсутствия воды в емкости.
Выбирать датчик следует с учетом типа емкости. Если она не слишком глубокая, его одного будет достаточно. Если высоты оказывается недостаточно, подойдет ультразвуковой дальномер, оснастив его поплавком с прикрепленным сенсором наклона. Можно просто положить на дно резервуара 2 провода.
Безопасность автополивщика, который питается через батарейки, намного выше по сравнению с работающим от сети. В идеале будет обеспечить напряжение от батареек, однако потребление Arduino Uno даже в спящем режиме выше 0.36мА

Как вариант, стоит обратить внимание на плату Arduino Mini, которая в спящем режиме умеет снижать свое потребление энергии до нескольких сотен мкА.
При поливе комнатной растительности следует учитывать множество правил и рекомендаций. Например, их нельзя поливать зимними вечерами

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