Датчик уровня влажности почвы и автоматический полив на arduino
Dacha-decor.ru

Портал садовода

Датчик уровня влажности почвы и автоматический полив на arduino

Датчик уровня влажности почвы и автоматический полив на Arduino

Хотели бы вы, чтобы ваши растения сообщали о том, что их надо полить? Или просто держали вас в курсе уровня влажности почвы?

В этой статье мы рассмотрим проект автоматизированного полива с использованием датчика уровня влажности почвы:

Обзор датчика уровня влажности почвы

Подобные датчики подключаются достаточно просто. Два из трех коннекторов – это питание (VCC) и земля (GND). При использовании датчик желательно периодически отключать от источника питания, чтобы избежать возможного окисления. Третий выход – сигнал (sig), с которого мы и будем снимать показания. Два контакта датчика работают по принципу переменного резистора – чем больше влаги в почве, тем лучше контакты проводят электричество, падает сопротивление, сигнал на контакте SIG растет. Аналоговые значения могут отличаться в зависимости от напряжения питания и разрешающей способности ваших аналоговых пинов микроконтроллера.

Для подключения датчика можно использовать несколько вариантов. Коннектор, приведенный на рисунке ниже:

Второй вариант более гибкий:

Ну и конечно можно напрямую запаять контакты на датчик.

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

Датчик уровня влажности почвы с нанесенным защитным покрытием на контактах и изолированными проводниками для подключения:

Проблема недолговечности датчика уровня влажности почвы

Один из недостатков датчиков подобного типа – недолговечность их чувствительных элементов. К примеру, компания Sparkfun решает эту проблему, используя дополнительное покрытие (Electroless Nickel Immersion Gold). Второй вариант продления срока действия сенсора – подавать на него питание непосредственно при снятии показаний. При использовании Arduino, все ограничивается подачей сигнала HIGH на пин, к которому подключен датчик. Если вы хотите запитать датчик большим напряжением чем предоставляет Arduino, всегда можно использовать дополнительный транзистор.

Контроль уровня влажности почвы – пример проекта

В приведенном ниже проекте использованы датчик уровня влажности, аналог платы Arduino – RedBoard и LCD дисплей, на котором выводятся данные про уровень влажности почвы.

В приведенном ниже проекте использованы датчик уровня влажности, аналог платы Arduino – RedBoard и LCD дисплей, на котором выводятся данные про уровень влажности почвы.

Датчик уровня влажности почвы компании SparkFun:

Красный проводник (VCC) подключается к 5 В на Arduino, черный – к земле (GND), зеленый – сигнал – к аналоговому пину 0 (A0). Если вы используете другой аналоговый пин на Arduino, не забудьте внести соответствующие изменения в скетч для микроконтроллера, представленный ниже.

LCD дисплей подключен к 5 В, земле и цифровому пину 2 (также можно изменить и внести изменения в код) для обмена данными с микроконтроллером по серийному протоколу связи.

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

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

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

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

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

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

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

// Подключите пин для обмена данными с использованием 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;

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

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

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

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

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

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

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

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

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

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

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

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

if (sensorValue = thresholdUp)<

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

DisplayWords = “Wet, Leave it!”;

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

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

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

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

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

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

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

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

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

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

Автоматический полив

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

Датчик уровня влажности в составе автоматической системы полива на основании Arduino:

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

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

Схема подключения двигателя постоянного тока (статья с более подробным примером подключения двигателя к Arduino) на примере копии Arduino от SparkFun приведена ниже:

Ниже приведен скетч для Arduino (по сути он такой же как и приведенный выше с небольшим дополнением для управления двигателем):

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

Читать еще:  Монтбреция уход осенью

// если почва сухая, начинает работать двигатель

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

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

SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (unused)

// Управляем двигателем с помощью пина 9.

// Этот пин должен обязательно поддерживать ШИМ-модуляцию.

const int motorPin = 9;

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

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

int thresholdUp = 400;

int thresholdDown = 250;

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

int sensorPin = A0;

pinMode(motorPin, OUTPUT); // устанавливаем пин, к которому подключен двигатель в качестве выхода

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

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

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

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

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

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

// перемещение курсора к началу первой строки LCD дисплея: mySerial.write(254);

// перемещение курсора к началу первой строки LCD дисплея: mySerial.write(254);

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

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

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

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

if (sensorValue = thresholdUp)<

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

DisplayWords = “Wet, Leave it!”;

// выключение двигателя (0 – остановка, 255 – максимальная скорость):

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

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

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

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

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

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

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

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

Удачи вам в реализации автоматического полива ваших растений!

Тестируем почву с Ардуино и датчиком влажности FC-28

Соединяем Arduino с датчиком влажности почвы FC-28, чтобы определить, когда ваша почва под растениями нуждается в воде.

В этой статье мы собираемся использовать датчик влажности почвы FC-28 с Ардуино. Этот датчик измеряет объемное содержание воды в почве и дает нам уровень влаги. Датчик дает нам на выходе аналоговые и цифровые данное. Мы собираемся подключить его в обоих режимах.

Как работает датчик почвы FC-28?

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

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

Датчик FC-28 можно соединить в аналоговом и цифровом режимах. Сначала мы подключим его в аналоговом режиме, а затем в цифровом.

Спецификация

Спецификации датчика влажности почвы FC-28:

  • входное напряжение: 3.3–5V
  • выходное напряжение: 0–4.2V
  • входной ток: 35mA
  • выходной сигнал: аналоговый и цифровой

Датчик влажности почвы FC-28 имеет четыре контакта:

  • VCC: питание
  • A0: аналоговый выход
  • D0: цифровой выход
  • GND: земля

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

Аналоговый режим

Для подключения датчика в аналоговом режиме нам потребуется использовать аналоговый выход датчика. Датчик влажности почвы FC-28 принимает аналоговые выходные значения от 0 до 1023.

Влажность измеряется в процентах, поэтому мы сопоставим эти значения от 0 до 100, а затем покажем их на последовательном мониторе (serial monitor). Вы можете установить различные значения влаги и повернуть водяную помпу “включено-выключено” согласно этим значениям.

Электрическая схема

Подключите датчик влажности почвы FC-28 к Ардуино следующим образом:

  • VCC FC-28 → 5V Arduino
  • GND FC-28 → GND Arduino
  • A0 FC-28 → A0 Arduino

Код для аналогового выхода

Для аналогового выхода мы пишем такой код:

Объяснение кода

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

В функции setup, команда Serial.begin(9600) поможет в общении между Arduino и серийным монитором. После этого, мы напечатаем “Reading From the Sensor . ” (англ. – считываем с датчика) на обычном дисплее.

В функции цикла, мы прочитаем значение от аналогового выхода датчика и сохраним значение в переменной output_value. Затем мы сопоставим выходные значения с 0-100, потому что влажность измеряется в процентах. Когда мы брали показания с сухого грунта, значение датчика было 550, а во влажном грунте значение датчика было 10. Мы сопоставили эти значения, чтобы получить значение влаги. После этого мы напечатали эти значения на последовательном мониторе.

Цифровой режим

Для подключения датчика влажности почвы FC-28 в цифровом режиме мы подключим цифровой выход датчика к цифровому контакту Arduino.

Модуль датчика содержит потенциометр, который использован для того чтобы установить пороговое значение. Пороговое значение после этого сравнивается со значением выхода датчика используя компаратор LM393, который помещен на модуле датчика FC-28. Компаратор LM393 сравнивает значение выхода датчика и пороговое значение, и после этого дает нам выходное значение через цифровой вывод.

Когда значение датчика больше чем пороговое значение, цифровой выход передаст нам 5В, и загорится светодиод датчика. В противном случае, когда значение датчика будет меньше чем это пороговое значение на цифровой вывод передастся 0В и светодиод не загорится.

Электрическая схема

Соединения для датчика влажности почвы FC-28 и Ардуино в цифровом режиме следующие:

  • VCC FC-28 → 5V Arduino
  • GND FC-28 → GND Arduino
  • D0 FC-28 → Пин 12 Arduino
  • Светодиод положительный → Вывод 13 Ардуино
  • Светодиод минус → GND Ардуино

Код для цифрового режима

Код для цифрового режима ниже:

Объяснение кода

Прежде всего, мы инициализировали 2 переменные для соединения вывода светодиода и цифрового вывода датчика.

В функции setup мы объявляем пин светодиода как пин выхода, потому что мы включим светодиод через него. Мы объявили пин датчика как входной пин, потому как Ардуино будет принимать значения от датчика через этот вывод.

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

На этом вводный урок по работе с датчиком FC-28 для Ардуино мы завершаем. Успешных вам проектов.

Автоматический полив на Arduino

Стремление человечества делать все вещи «умными» понемногу переходит с домов на прочие постройки, к примеру, теплицы. Существует множество примеров умных теплиц, которые могут почти всё: измерять температуру, автоматически регулировать влажность и прочее.

В сегодняшней статье мы научимся применять датчик уровня влажности почвы (далее просто датчик) на примере автоматизированного полива.

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

1. Что такое датчик влажности почвы и как он работает?

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

Читать еще:  Хризантемы крупноцветковая посадка и уход в открытом грунте осенью

У всех подобных датчиков имеется 3 выхода – VCC (питание), GND (земля) и S (сигнальный выход). Из-за особенностей работы датчика и относительно небольшого его потребления, питать датчик желательно от цифрового пина микроконтроллера, включая лишь на время замера и выключая после него.

1.1 Подключение датчика к Arduino

Для подключения датчика к Arduino в комплекте обычно идут все необходимые компоненты:

  • Микросхема
  • Щуп для установки в почву
  • Провода для подключения

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

Один из возможных вариантов защиты – применение так называемой жидкой изоленты или обычного лака для ногтей, оба варианта справятся с задачей!

1.2 Теория и специфика работы датчика

Измерение производится по простому принципу – на один из контактов датчика подаётся питание, а с другого оно считывается. Чем влажнее будет почва – тем меньше будет разница между двумя этими сигналами.

Из-за такого способа измерения процессы окисления разрушают контакты датчика, поэтому питание лучше подавать только на время измерения. Также, различные компании применяют специализированные покрытия контактов (например иммерсионное золото)

2. Практическое применение

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

2.1 Считывание данных с модуля

В этом примере мы используем Arduino Uno, датчик влажности почвы и LCD-дисплей 16*2.

Так как пример не рассчитан на длительную работу, мы не будем защищать датчик отключением питания, а подключим его на пин+5 Arduino-платы; но мы настоятельно рекомендуем регулировать питание датчика, или, на худой конец, защитить контакты гипсом, это тоже работает.

Датчик необходимо подключить следующим образом:

  • красный провод (питание) +5В Arduino;
  • чёрный провод (земля) GND Arduino;
  • зелёный провод (сигнальный) A0 Arduino;

Вы можете подключить датчик к любому аналоговому пину Arduino, но не забудьте поменять пин в скетче, если используете не А0.

ЖК дисплей подключён к питанию +5В, земле и цифровому пину 2 (TX программной реализации UART).

Просим обратить внимание – это НЕ ОБЫЧНЫЙ LCD 16*2! Это его немного изменённая версия с переходником на UART, что позволяет использовать всего 1 цифровой пин для управления. Обычный дисплей 16*2 подключить не получится, нужно менять код.

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

Всё, что требуется – скопировать следующий код и залить его в Arduino.

Обратите внимание: вы должны иметь библиотеку SoftwareSerial для компиляции скетча, если её у вас нет, то её можно скачать на GitHub.

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

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

Автополив на Ардуино для комнатных растений – сборка системы автоматического полива своими руками

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

Шаг 1: Список покупок

Также вам понадобятся:

  • Щипчики для проводов
  • Цветочный горшок с дренажным отверстием и поддоном
  • Растение и почвенная смесь для него (компост и грунт 1:1)
  • Подставка или поддон, на котором будет установлена система автополив (если горшочек с растением будет маленьким, то вполне подойдет кусок 12мм фанеры 350х200 мм)

Шаг 2: Схема проводки

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

Шаг 3: Подключаем источник питания

Если у вас нет опыта подключения источников питания, ОБЯЗАТЕЛЬНО проконсультируйтесь с профессионалом. 240В — опасное для жизни напряжение.

Вход питания – подключение к сети

  1. Возьмите провод под напряжением и подключите к выходу L. На фото это коричневый провод.
  2. Возьмите нулевой провод и подключите к выходу N. Убедитесь, что в месте соединения не виден медный сердечник проводов.
  1. Соедините коричневый провод с выходом V+/
  2. Соедините голубой провод с выходом Con (нулевым).

Шаг 4: Клеммный блок

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

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

Шаг 5: Подключаем плату Arduino

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

  1. Соедините конец красного провода «Папа-Папа» с точечным разъемом на плате, помеченным 5В. Второй конец пока нам не нужен.
  2. Соедините конец серого провода «Папа-Папа» с точечным разъемом, помеченным А1, второй конец пока не нужен.
  3. Соедините один из голубых проводов, идущих от клеммного блока, с точечным разъемом GND (земля).
  4. Соедините один из коричневых проводов, идущих от клеммного блока, с точечным разъемом, помеченным VIN.
  5. На другой стороне платы Arduino соедините красный провод с точечным разъемом, помеченным 5В. Другой конец нам пока не нужен.

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

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

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

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

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

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

Шаг 7: Подключение модуля датчика уровня влажности почвы

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

Шаг 8: Датчик уровня влажности почвы

От модуля датчика соедините два провода (Мама и Мама) с выходами на самом сенсоре. Длина этих проводов определяет расстояние от цветка до блока управления.

Читать еще:  Лук слизун уход осенью

Шаг 9: Реле

Хотя этот компонент мы называем «реле», фактически это выключатель. Когда уровень увлажненности почвы составит 40%, контроллер подаст сигнал на реле, которое пустит 12В ток от источника питания на насос.

  1. Соедините последний оставшийся плюсовой провод (коричневый), идущий от макетной платы, с разъемом реле с отметкой «NC».
  2. Соедините последний свободный нулевой провод (голубой), идущий от макетной платы, с разъемом реле с отметкой «NO».
  3. С обратной стороны реле соедините красный провод с разъемом «VCC», желтый провод с разъемом «GND», а коричневый – с разъемом «INN».

Шаг 10: Насос

НЕ ЗАПУСКАЙТЕ НАСОС БЕЗ ВОДЫ – ЭТО РАЗРУШИТ ПЛАСТИКОВЫЕ ШЕСТЕРНИ.

  1. Соедините плюсовой провод (коричневый), идущий от реле, с одним из выходов насоса, не важно с каким. Меняя провода местами, вы просто меняет направление, в котором насос будет качать воду.
  2. Соедините оставшийся нулевой (голубой) провод, идущий от клеммного блока, с другим выходом насоса. Убедитесь, что эти провода не соприкасаются, иначе их закоротит.
  3. Разрежьте пластиковую трубку на две части. Каждую часть соедините с отверстиями насоса. Можно закрепить трубку на насосе стяжкой и эпоксидным клеем. Из-за близости с электрическими компонентами крайне важно предотвратить возможные протечки.

Шаг 11: Собираем корпус для системы автополива

Я собрал корпус для своей системы автоматического полива комнатных растений из обрезков ошлифованной березовой фанеры, оставшихся от предыдущего проекта, вы можете сделать из чего вам больше нравится. Компоненты можно приклеить к стенкам короба. В этом случае убедитесь, что клей не проводит ток, иначе будет риск короткого замыкания.

Шаг 12: Кодирование контроллера

Последним шагом будет кодирование платы микроконтроллера. Код на рисунке сверху подходит для всей системы. Фактически этот код позволяет снимать показания влажности почвы почти непрерывно. Когда уровень влажности падает до 30% «реальной влажности», реле дает ток 13В на насос. Насос отключается, когда показания датчика покажут, что уровень увлажненности поднялся. Этот показатель можно изменять, исходя из типа растения, условий окружающей среды и т.д.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

● 4.3. Подключаем датчик влажности почвы

Домашний уют — это атмосфера тепла в вашей квартире, желание возвращаться туда после трудного дня. Уют и комфорт в вашем доме оказывают непосредственное влияние на ваше самочувствие и настроение. Необходимое условие в создании уюта имеет использование комнатных цветов. Они доступны каждому из нас и при этом лучше любой мебели помогут создать уют и комфорт, и как ни что другое просто вдохнуть в ваш дом чистую энергию.
Но чтобы домашние цветы радовали вас красотой, следует выполнять общие правила по уходу за комнатными растениями – необходимо создать благоприятный для них режим температуры воздуха, влажности и освещения.
Модуль влажности почвы (рис. 4.12) предназначен для определения влажности земли, в которую он погружен. Он позволяет узнать о недостаточном или избыточном поливе ваших домашних или садовых растений. Модуль состоит из двух частей: контактного щупа YL-28 и датчика YL-38, щуп YL-28 соединен с датчиком YL-38 по двум проводам. Между двумя электродами щупа YL-28 создаётся небольшое напряжение. Если почва сухая, сопротивление велико и ток будет меньше. Если земля влажная — сопротивление меньше, ток — чуть больше. По итоговому аналоговому сигналу можно судить о степени влажности.
Подключение данного модуля к контроллеру позволяет автоматизировать процесс полива ваших растений (своего рода “умный полив”).


Рис. 4.12. Датчик увлажненности почвы Soil Moisture

Кроме контактов соединения с щупом, датчик YL-38 имеет четыре контакта для подключения к контроллеру.

• Vcc – питание датчика;
• GND – земля;
• A0 – аналоговое значение;
• D0 – цифровое значение уровня влажности.

Датчик YL-38 построен на основе компаратора LM393, который выдает напряжение на выход D0 по принципу: влажная почва – низкий логический уровень, сухая почва – высокий логический уровень. Уровень определяется пороговым значением, которое можно регулировать с помощью потенциометра. На вывод A0 подается аналоговое значение, которое можно передавать в контроллер для дальнейшей обработки, анализа и принятия решений.
Датчик YL-38 имеет два светодиода, сигнализирующих о наличие поступающего на датчик питания и уровня цифрового сигналы на выходе D0. Наличие цифрового вывода D0 и светодиода уровня D0 позволяет использовать модуль автономно, без подключения к контроллеру.
Рассмотрим подключение датчика увлажненности почвы Soil Moisture к плате Arduino Mega и модулю NodeMcu ESP8266.

4.3.1. Подключение датчика Soil Moisture к плате Arduino Mega

Подключение датчика Soil Moisture к плате Arduino Mega мы будем производить по аналоговому входу. Питание для датчика берем также с платы Arduino. Схема соединений представлена на рис. 4.13.

Рис. 4.13. Схема подключений датчика Soil Moisture к Arduino Mega

Загрузим на плату Arduino Mega скетч получения данных с датчика температуры DS18B20 и вывода в последовательный порт Arduino. Получение данных влажности оформим в виде отдельной процедуры get_data_soilmoisture(). Содержимое скетча представлено в листинге 4.5.
Листинг 4.5

Загрузим скетч на плату Arduino Mega, откроем монитор последовательного порта и видим вывод данных, получаемых с датчика Soil Moisture (рис. 4.14). Подберите практическим путем аналоговые значения для констант MINVALUESOILMOISTURE (полный полив) и MINVALUESOILMOISTURE (критическая сухость).

Рис. 4.14. Вывод данных с датчика Soil Moisture в монитор последовательного порта

Скачать данный скетч можно на сайте www.arduino-kit.ru по ссылке .

4.3.2. Расширение аналоговых входов – мультиплексор CD4051

Модуль Node Mcu имеет один канал АЦП доступный для пользователей. Однако нам понадобится их гораздо больше. Как увеличить количество аналоговых входов? Для этого будем использовать мультиплексор CD4051 (см. рис. 4.15).

Рис. 4.15. Мультиплексор CD4051

Микросхема 4051 является 8-канальным аналоговым мультиплексор/ демультиплексором, имеющим 8 входов (y0 – y7) и 1 выход Z (см. рис. 4.16). Выбор считываемого входа осуществляется подачей цифровых сигналов на выходы s0 – s2. Т.е. для подключения к модулю Node Mcu 8 аналоговых датчиков необходимо задействовать 3 цифровых выхода модуля и 1 аналоговый вход.

Рис. 4.16. Контакты мультиплексора CD4051

И в листинге 4.6. представлен скетч циклического опроса 8 аналоговых датчиков, подключенных к 8 входам мультиплексора и через вход Z к аналоговому входу A0 модуля Node Mcu.
Листинг 4.6

4.3.3. Подключение датчика Soil Moisture к модулю NodeMcu ESP8266

Теперь рассмотрим подключение датчика Soil Moisture к модулю NodeMcu ESP8266. Датчик Soil Moisture подключаем к входу y0 мультиплексора. Для выбора аналогового входа мультиплексора используем контакты D5, D7, D8 модуля Node Mcu. Схема соединений представлена на рис. 4.17.

Рис. 4.17. Схема подключений датчика Soil Moisture к NodeMcu ESP8266

Загрузим на модуль Node Mcu скетч получения данных с датчика Soil Moisture и вывода в последовательный порт Arduino. Получение данных влажности оформим в виде отдельной процедуры get_data_soilmoisture(). Для выбора аналогового входа мультиплексора y0 подаем на контакты D5, D7, D8 сигнал низкого уровня LOW. Содержимое скетча представлено в листинге 4.7.
Листинг 4.7

Загрузим скетч на модуль Node Mcu, откроем монитор последовательного порта и видим вывод данных, получаемых с датчика Soil Moisture (рис. 4.18). Подберите практическим путем аналоговые значения для констант MINVALUESOILMOISTURE (полный полив) и MINVALUESOILMOISTURE (критическая сухость).

Рис. 4.18. Вывод данных Soil Moisture в монитор последовательного порта

Ссылка на основную публикацию
Adblock
detector