Автоматический полив на arduino своими руками с управлением через интернет

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

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

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

Шкаф управления системой

На следующем рисунке приведена структурно-функциональная схема шкафа управления.

Центром системы является контроллер Arduino Mega.

Контроллер управляет модемом SIM900 с помощью AT-команд, передаваемых через COM-порт.

Таким образом осуществляется обмен данными с сервером.

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

Сигналы от датчиков уровня воды в резервуаре принимает модуль ввода дискретных сигналов. Датчики имеют выход типа «сухой контакт». Подробнее о них можно почитать тут. Для того чтобы завести дискретные сигналы от датчиков в контроллер, пропитываем их напряжением 24 В от блока питания. Модуль ввода представляет собой дискретные входы с опторазвязкой, преобразующие входной уровень напряжения в 24 В в уровень 5В, понятный контроллеру.

Для измерения температуры на улице к контроллеру подключен датчик DS18B20. Контроллер производит с ним обмен по интерфейсу OneWire.

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

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

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

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

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

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

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

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

Система состоит из следующих компонентов:

Блок управления – сердце системы. Здесь находится Аккумуляторы, Arduino, модуль времени DS3231, дисплей, преобразователи напряжения и органы управления.

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

Распределение воды между растениями можно дополнительно отрегулировать с помощью гребенки с кранами

1. Автономная работа от аккумуляторов около 5 месяцев 2. Система поддерживает управление 3-мя помпами. К каждой помпе можно подключить гребенку с 2-4 кранами и дополнительно регулировать потоки воды. Итого получаем возможность подключить до 12 растений 3. Время снимается с отдельного независимого модуля часов DS3231. Помпа срабатывает при наступлении часа, указанного в настройке (например 8:00) . 4. На дисплей выводится информация 5. Настройки полива указываются в коде программы, их можно поменять, перепрошив Arduino

Схема подключения и алгоритм работы в проекте «Автополив» на базе мк Arduino

Ниже представлен алгоритм и схема подключения проекта на платформе arduino. Автополив строится следующим образом:

  1. Помещаем плату для сенсора на микроконтроллер.
  2. Подключаем анализатор влажности с помощью платы, описанной выше, к аналогичному пину – А0.
  3. Присоединяем сенсор к микроконтроллеру:
    1. Контакт CS подключается к пину № 9 на плате.
    2. Дисплейные контакты SPI соединяются с соответствующим разъемом на той же плате.
  4. Силовой ключ вставляем в пин №4.
  5. Коммутатор подводим к силовому ключу в разъемы, обозначаются буквами p+, p-.
  6. Теперь подключаем водяную помпу с трубкой с помощью клеммника в контакты с буквами l+ и l-. Постепенно перед конструирующим человеком построится схема.
  7. Втыкаем сенсорную панель, анализирующую влажность, в горшок с цветком.
  8. Конец трубки вставляем с водой в почву. В случае, если растение вместе с горшком по весу не превышает 2 кг, закрепляем шланг отдельно. Иначе водяная капель может опрокинуть цветок.
  9. Опускаем водяную помпу в бутылку, наполненную водой.
  10. Подключаем конструкцию к электрическому питанию.

Ниже предлагаем вам две альтернативные схемы для нашего устройства:

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

  1. Записываем сведения, выведенные на дисплей. При этом сенсор воткнут в сухой горшок. Это обозначается, как min влажности.
  2. Поливаем землю с растением. Ждем, когда вода до конца пропитает почву. Тогда показания на сенсорном экране покажут один уровень. Необходимо записать полученные сведения. Это значит max влажности.
  3. В записном блокноте фиксируем константы HUM_MIN и HUM_MAX тем значением, которое было получено в результате калибровки. Прописываем значения в программе, которую переносим затем на микроконтроллер.

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

В шланге от помпы проделываются 25 сантиметровые отверстия с помощью шила. В полученные дырочки втыкаются кусочки стержней ручек шарикового формата. В итоге получается:

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

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

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

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

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

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

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

Делаем умную теплицу на Ардуино своими руками

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

С развитием технологической базы вырастает и уровень автоматизации. Сейчас роботы или механизмы выполняют не просто последовательность заложенных действий. Их устройство теперь позволяет осуществлять своеобразный «выбор», в зависимости от изменившихся внешних условий. Самый простой пример — стиральная машина. Ее внутренняя начинка определяет температуру воды и при необходимости подогревает ее, следит за временем стирки и правильностью текущих циклов выполнения.

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

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

Исходный код программы

В программе нам сначала необходимо подключить библиотеку последовательной связи (SoftwareSerial library) чтобы задействовать последовательную связь на контактах 2 и 3 платы Arduino, а также подключить библиотеку для работы с ЖК дисплеем.

Затем в функции void setup () последовательная связь инициализируется на скорость 9600 бод/с и задаются режимы работы (на ввод или вывод данных) для используемых контактов. Функция gsmInit вызывается для инициализации GSM модуля.

Serial1.begin(9600); Serial.begin(9600); pinMode(led, OUTPUT); pinMode(motor, OUTPUT); pinMode(sensor, INPUT_PULLUP); lcd.print(«Water Irrigaton»); lcd.setCursor(4,1); delay(2000); lcd.clear(); lcd.print(«Circuit Digest»); lcd.setCursor(0,1); lcd.print(«Welcomes You»); delay(2000); gsmInit();

Функция gsmInit () играет важную роль в нашей программе и, к сожалению, ряд пользователей считают ее достаточно трудной для программирования. Эта функция используется для инициализации GSM модуля. Сначала проверяется соединен ли GSM модуль с сетью при помощи передачи ему соответствующей ‘AT’ команды. Если модуль ответил OK, это значит что он готов к работе. Система будет проверять модуль до тех пор пока не получит от него ответ ‘OK’. Затем выключается режим ECHO (чтобы модуль не повторял в ответе написанную ему команду) с помощью команды ATE0. Затем проверяется доступность сети при помощи команды ‘AT+CPIN?’. Если вставленная карта является SIM картой и PIN присутствует, модуль формирует ответ READY. Эта проверка также осуществляется непрерывно до тех пор пока сеть не будет найдена. Более подробно эти процессы показаны в видео в конце статьи.

Логика:

Данное устройство позволит вам организовать полностью автоматический режим работы вашей теплицы или гроу-бокса (на случай, если вы выращиваете овощи/фрукты зимой в домашних условиях). Система позволяет управлять сразу 3 важными параметрами: освещение, температура, орошение.

Логика довольна проста:

  • Датчик освещённости фиксирует количество света, попадающего на растение и при понижении его ниже критической отметки — включает дополнительное освещение;
  • Датчики влажности и температуры фиксируют влажность и температуру как воздуха, так и земли, благодаря чему вовремя происходит проветривание или закрытие теплицы, дабы урожай не вымерз и не сгорел;
  • Наличие модуля часов реального времени позволит задать точное время дня (или ночи), когда насос будет подавать воду к растению. При этом длительность полива тоже можно задать!
  • И дополнением к данной системе станет наш GSM/GPRS Shield, благодаря которому вы сможете как следить за состоянием вашего зелёного друга, так и вовремя задать требуемый режим или выполнить команду просто отправив смс на устройство;

Следуя инструкциям нашего урока в скором времени вы сможете обзавестить своей собственной «умной теплицей», которая будет радовать вас круглый год!

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

  1. Реле на 12v.
  2. Источник питания 12v 1A.
  3. Соединительные провода и концевой соединитель.

GSM модуль

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

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

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

Реализация в «железе»

Ничего сложного в реализации проекта нет. Достаточно применить плату Arduino, в комплексе с несколькими датчиками (влажности, температуры, освещенности, наполнения бака полива и концевых контактов окон проветривания), а также парой двигателей для вентиляции и смонтировать систему «теплый пол».

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

Вот ее перенос в реальность:

Мониторинг и настройка

Визуализация информации, а также пункты меню настройки выводятся на LCD1602 дисплей, с конвертором в IIC/I2C UC-146 для подключения его к Arduino.

Для выбора параметров используются 4 клавиши. Все это вместе желательно разместить в общем контрольном ящике.

Кроме визуального, для удаленного контроля будет использоваться модуль WIFI связи ESP8266 LoLin NodeMCU2, с помощью которого информация с использованием UDP протокола будет передаваться на домашний компьютер с настроенным web-сервером и базой данных. Которые впоследствии, можно будет получить на любом устройстве в общей сети — смартфоне, цифровом телевизоре или планшете.

Подключаться модуль к ардуино уно будет через серийный порт (RX/TX). Причем электрический контакт производится напрямую TX(модема)-TX(Arduino) и RX аналогично

Почему это важно — зачастую рекомендуют делать соединение перекрестным RX-TX. В прилагаемой схеме это не нужно

Полив

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

Так он выглядит в реальности (вместе с системой подачи воды на грядки):

Его схема работы:

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

Отопление

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

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

Вентиляция

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

Освещение

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

На приведенной ниже схеме оно подключается к выводам резерв (освещение).

Как собрать?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Шаг 6: Делаем разводку на макетной плате

Я решил использовать макетную плату, чтобы избавить вас и себя от паяния компонентов.

Как работает макетная плата

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

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

  1. 5В провод, идущий от платы Arduino, со концом – удлините двумя проводами такого же цвета и оставьте пока ждать своей очереди.
  2. Возьмите провод от GND разъема Arduino и тоже нарастите двумя соединительными проводами и пока оставьте так.

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

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

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

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

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

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

Необходимые инструменты и периферия для реализации проекта «Автополив» на базе микроконтроллера Arduino

Ирригатор – устройство, контролирующее влажность почвы. Приспособление передает данные на датчик влажности, который укажет сконструированному автополиву на начало работы. Для составления программы используется язык программирования С++.

Таблица с требуемыми материалами:

Компонент Описание
Микроконтроллер Arduino Uno Платформа соединяет периферийные устройства и состоит из 2 частей: программная и аппаратная. Код для создания бытовых приборов программируется на бесплатной среде – Arduino IDE.

Чтобы составить и внедрить программу на микроконтроллер, необходимо приобрести usb-кабель. Для автономной работы следует купить блок питания на 10 В.

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

USB-кабель Обязателен в конструировании системы «автополив на ардуино» для переноски кода.
Плата для подключения сенсора – Troyka Shield С помощью платы подключается сенсорная периферия посредством обычных кабелей. По краям располагаются контакты по 3 пина — S + V + G.
Нажимной клеммник Служит фиксатором для пучковых проводов. Конструкция фиксируется с помощью кнопки на пружине.
Блок питания, оснащенный usb-входом

Анализатор влажности почвы

Идеальное средство для подключения платформ. В конструкции предусмотрен фонарик, который говорит о начале работы.

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

● MAX глубины для погружения в землю – 4 см;

● MAX потребление электроэнергии – 50 мА;

● Напряжения для питания – до 4 В.

Помпа с трубкой для погружения в воду Управление осуществляется с помощью коммутатора. Длина кабеля достигает 2 метров.
Силовой ключ Создан для замыкания и размыкания электрической цепи. Если использовать приспособление при конструировании автополива ардуино, не потребуется дополнительных спаек. Подключение к основной панели осуществляется также 3 проводами.
Соединительный провод – «отец-отец» Несколько проводов соединяют периферийные устройства.
Соединительный провод – «мать-отец» Проводки также соединяют устройства периферии.
Комнатный цветок Система пригодна для разного типа комнатных растений.

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

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

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

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

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

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

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

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

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

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

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

Проведение калибровки

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

  • Сначала записываются цифры, полученные после того, как датчик воткнут с сухую почву. Это минимальная влажность.
  • Затем нужно полить растение и подождать момента, когда вода впитается в землю. Показатели должны оставаться на стабильном уровне, зачастую это в районе 60%, но все растения разные, поэтому предварительно узнайте, насколько ваш зеленый друг требователен к этому параметру. Их также следует сохранить, поскольку это максимальная влажность.
  • С готовыми результатами следует отредактировать наш скетч (код в среде Arduino IDE), изменяем значение минимальной влажности, в нашем коде это — MIN _HUM и MAX_HUM на параметр нормальной влажности.
  • Остается перепрошить Arduino Uno, для этого подключает через кабель к пк, выбираем порт, плату, жмем в правом углу кнопку загрузить.
  • Расширение функциональности автополивщика

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

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

Компоненты и их описания

Arduino Uno

Arduino взаимодействует через датчики с окружающей средой и обрабатывает поступившую информацию в соответствии с заложенной в неё программой. Подробнее с платой Ардуино Уно можно ознакомиться здесь.

Ардуино Уно

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

Измерение влажности почвы на базе Arduino производится с помощью датчика влажности. Датчик имеет два контакта. Через эти контакты при погружении их в грунт протекает ток. Величина тока зависит от сопротивления грунта. Поскольку вода является хорошим проводником тока, наличие влаги в почве сильно влияет на показатель сопротивления. Это значит, чем больше влажность почвы, тем меньше она оказывает сопротивление току.

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

Этот датчик может выполнять свою работу в цифровом и аналоговом режимах. В нашем проекте используется датчик в цифровом режиме.
На модуле датчика есть потенциометр. С помощью этого потенциометра устанавливается пороговое значение. Также на модуле установлен компаратор. Компаратор сравнивает данные выхода датчика с пороговым значением и после этого даёт нам выходной сигнал через цифровой вывод. Когда значение датчика больше чем пороговое, цифровой выход передаёт 5 вольт (HIGH), земля сухая. В противном случае, когда данные датчика будут меньше чем пороговые, на цифровой вывод передаётся 0 вольт (LOW), земля влажная.

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

Фоторезистор

Фоторезистор (LDR) — это светочувствительное устройство, которое используются для определения интенсивности освещения. Значение сопротивления LDR зависит от освещённости. Чем больше света, тем меньше сопротивление. Совместно с резистором, фоторезистор образует делитель напряжения. Резистор в нашем случае взяли 10кОм.

Делитель напряжения

Подключив выход делителя Uin к аналоговому входу Ардуино, мы сможем считывать напряжения на выходе делителя. Напряжение на выходе будет меняться в зависимости от сопротивления фоторезистора. Минимальное напряжение соответствует темноте, максимальное – максимальной освещённости.

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

Релейный модуль

Реле представляет собой переключатель с электромеханическим или электрическим приводом.

Релейный модуль

Привод реле приводится в действие небольшим напряжением, например, 5 вольт от микроконтроллера, при этом замыкается или размыкается цепь высокого напряжения.

Схема реле

В этом проекте используется 12 вольтовый водяной насос. Arduino Uno не может управлять напрямую насосом, поскольку максимальное напряжение на выводах Ардуино 5 вольт. Здесь нам приходит на помощь релейный модуль.

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

Водяной насос

В проекте используем 12-и вольтовый погружной насос с 18-ваттным двигателем. Он может поднимать воду до 1,7 метра.

Водяной насос

Этот насос можно эксплуатировать только тогда, когда он полностью погружен в воду. Это налагает некие обязательства по контролю уровня воды в ёмкости. Если водяной насос будет работать без воды, он просто-напросто сгорит.

Макетная плата

Макетная плата представляет собой соединительную плату, используемую для создания прототипов проектов электроники, без пайки.