Датчик уровня влажности почвы и автоматический полив на 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); //Задержка в пол секунды между считываниями

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

Источник:
http://arduino-diy.com/arduino-datchik-urovnya-vlazhnosti-pochvy-i-avtomaticheskiy-poliv

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

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

Содержание

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

Модуль состоит из двух частей: контактного щупа YL-69 и датчика YL-38, в комплекте идут провода для подключения.. Между двумя электродами щупа YL-69 создаётся небольшое напряжение. Если почва сухая, сопротивление велико и ток будет меньше. Если земля влажная — сопротивление меньше, ток — чуть больше. По итоговому аналоговому сигналу можно судить о степени влажности. Щуп YL-69 соединен с датчиком YL-38 по двум проводам. Кроме контактов соединения с щупом, датчик YL-38 имеет четыре контакта для подключения к контроллеру.

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

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

Технические характеристики модуля

  • Напряжение питания: 3.3-5 В;
  • Ток потребления 35 мА;
  • Выход: цифровой и аналоговый;
  • Размер модуля: 16×30 мм;
  • Размер щупа: 20×60 мм;
  • Общий вес: 7.5 г.

Пример использования

Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки: Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение переменных для полного полива (minvalue) и сильной сухости почвы (maxvalue) получим экспериментально. Большей сухости почвы соответствует большее значение аналогового сигнала. С помощью функции map масштабируем аналоговое значение датчика в значение нашего светодиодного индикатора. Чем больше влажность почвы, тем больше значение светодиодного индикатора (количество зажженных светодиодов). Подключив данный индикатор к цветку, мы издали можем видеть на индикаторе степень влажности и при определять необходимость полива.

Источник:
http://3d-diy.ru/wiki/arduino-datchiki/datchik-vlazhnosti-pochvy-arduino/

Тестируем почву с Ардуино и датчиком влажности 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 для Ардуино мы завершаем. Успешных вам проектов.

Источник:
http://arduinoplus.ru/testiruem-pochvu-s-arduino-i-datchikom-vlazhnosti-fc-28/

Как работает датчик влажности почвы, и его взаимодействие с Arduino

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

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

Читайте также  Ифейон - посадка и уход в домашних условиях, выращивание в открытом грунте

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

Как работает датчик влажности почвы, и его взаимодействие с Arduino

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

Работа датчика влажности почвы довольно проста.

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

Рисунок 1 – Работа датчика влажности почвы

Это сопротивление обратно пропорционально влажности почвы:

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

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

Обзор аппаратного обеспечения

Типовой датчик влажности почвы состоит из двух компонентов.

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

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

Рисунок 2 – Зонд датчика влажности почвы

Датчик также содержит электронный модуль, который соединяет датчик с Arduino.

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

Этот же сигнал подается на высокоточный компаратор LM393 для его оцифровки, с выхода которого сигнал подается на вывод цифрового выхода (DO).

Рисунок 3 – Регулировка чувствительности датчика влажности почвы

Для регулировки чувствительности цифрового выхода (DO) модуль содержит встроенный потенциометр.

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

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

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

Рисунок 4 – Светодиодные индикаторы питания и состояния почвы

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

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

Датчик влажности почвы очень прост в использовании и содержит только 4 вывода для связи с внешним миром.

Рисунок 5 – Распиновка датчика влажности почвы

AO (аналоговый выход) выдает аналоговый сигнал с напряжением в диапазоне между напряжением питания и 0 В и будет подключен к одному из аналоговых входов нашей платы Arduino.

Вывод DO (цифровой выход) выдает цифровой выходной сигнал со схемы встроенного компаратора. Вы можете подключить его к любому цифровому выводу на Arduino или напрямую к 5-вольтовому реле или подобному устройству.

Вывод VCC подает питание на датчик. Рекомендуется питать датчик напряжением от 3,3 до 5 В. Обратите внимание, что сигнал на аналоговом выходе будет зависеть от того, какое напряжение питания подается на датчик.

GND для подключения земли.

Измерение влажности почвы с помощью аналогового выхода

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

Подключение

Давайте подключим наш датчик влажности почвы к плате Arduino.

Сначала вам нужно подать питание на датчик. Для этого вы можете подключить вывод VCC на модуле к выводу 5V на Arduino.

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

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

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

Кроме того, итоговая мощность, потребляемая модулем (оба светодиода горят), составляет около 8 мА, поэтому можно запитать модуль от цифрового вывода на Arduino.

Итак, давайте подключим вывод VCC модуля к цифровому выводу 7 Arduino, а вывод GND модуля к выводу GND Arduino.

И, наконец, подключите вывод AO модуля к выводу A0 аналого-цифрового преобразователя Arduino.

Схема соединений показана на рисунке ниже.

Рисунок 6 – Подключение датчика влажности почвы к Arduino для считывания показаний на аналоговом выходе

Калибровка

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

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

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

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

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

850, когда почва сухая;

400, когда почва полностью насыщена влагой.

Рисунок 7 – Калибровка датчика влажности почвы

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

Финальная сборка

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

  • 750 – достаточно сухая для полива.

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

Рисунок 8 – Вывод аналоговых показаний датчика влажности почвы

Измерение влажности почвы с помощью цифрового выхода

Для нашего второго эксперимента мы определим состояние почвы с помощью цифрового выхода.

Подключение

Мы будем использовать схему из предыдущего примера. На этот раз нам просто нужно удалить подключение к выводу аналого-цифрового преобразователя и подключить вывод DO модуля к цифровому выводу 8 Arduino.

Соберите схему, как показано ниже:

Рисунок 9 – Подключение датчика влажности почвы к Arduino для считывания показаний на цифровом выходе

Калибровка

Для калибровки цифрового выхода (DO) модуль имеет встроенный потенциометр.

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

Рисунок 10 – Состояния цифрового выхода датчика влажности почвы

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

Теперь ваш датчик откалиброван и готов к использованию.

Код Arduino

После того, как схема будет собрана, загрузите в Arduino следующий скетч.

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

Рисунок 11 – Вывод цифровых показаний датчика влажности почвы

Источник:
http://radioprog.ru/post/823

Датчик влажности почвы для Ардуино

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

Обзор датчиков

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

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

Читайте также  Орхидея Мильтония: посадка, уход и размножение в домашних условиях, фото

Интересно: платформа позволяет с нуля создать собственную прошивку контроллера. Этому способствует обширный и хорошо документированный инструментарий разработчика.

Устройство состоит из трех компонентов:

  • погружной щуп с электродами;
  • комплект проводов;
  • управляющий блок.

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

  • S — сигнальный (цифровой/аналоговый);
  • VCC — питание;
  • GND — заземление.

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

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

Схема подключения

Принцип соединения гигрометра с Arduino общий для всех видов сенсоров.

  • Выход VCC подключается к Arduino на 5В-контакт.
  • GND соединяется с соответствующим контактом Ардуино.
  • Сигнальный выход — с сигнальным входом (аналоговым или цифровым, в зависимости от ситуации).

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

Примеры подключения

Рассмотрим работу moisture-датчика на примере модели FC-28. Он умеет:

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

  • напряжение на входе — 3.3–5 В;
  • напряжение сенсора на выходе — 0–4.2 В;
  • тип выдаваемого сигнала — цифровой, аналоговый;
  • значение тока на входе 35 мА.

FC-28 оснащен четырьмя контактами:

  • питание — пин VCC;
  • контакт GND — заземление;
  • A0 — вывод аналогового сигнала;
  • D0 — вывод цифрового.

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

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

В этом режиме используется аналоговый вывод. Рассматриваемый датчик влажности почвы Arduino работает со входными значениями в диапазоне 0–1023.

Влажность измеряется в процентах, поэтому в ПО сообщаемые значения будут сопоставлены цифрам 0–100.

Далее следует запрограммировать аналоговый вывод. Пример программы:

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

Для этого цифровой пин датчика подключается к соответствующему контакту платы Arduino.

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

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

Схема подключения в данном случае почти идентична аналоговой, но:

  • D0 будет соединен с 12 пином компьютера;
  • «плюс» светодиода — с 13 выводом;
  • «минус» — с контактом GND контроллера Arduino.

Соединение с дисплеем:

Программный код цифрового режима гигрометра c комментариями:

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

Недостатки

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

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

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

Заключение

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

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

Видео по теме

Источник:
http://vashumnyidom.ru/komfort/uxod/datchik-vlazhnosti-pochvy-arduino.html

Автоматический полив на 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.

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

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

Источник:
http://voltiq.ru/arduino-moisture-sensor-for-plants/