Датчик влажности почвы (ёмкостный): инструкция по использованию и примеры
Ёмкостный сенсор влажности почвы пригодиться для создания систем автоматического полива растений. Датчик не даст засохнуть комнатным цветкам и флоре на огороде.
Принцип работы
Ёмкостный датчик выполнен в виде штыря, которым погружается в грунт на расстояние до 80 мм. На штыре в виде дорожек расположены два электрода, но в отличии от резистивной модели, электроды ёмкостного сенсора защищены токоизолирующей маской и неподвержены коррозии.
Внутри ёмкостного датчика находится RC-генератор на таймере 555, частота которого зависит от ёмкости между двумя электродами, которые выполняю роль конденсатора. Изменение влажности грунта сказывается на его диэлектрических свойствах и меняет ёмкость, что приводит к повышению или понижению выходного сигнала датчика. Итоговое напряжение пропорционально степени влажности почвы.
Пример работы для Arduino и XOD
В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например Arduino Uno.
Схема устройства
Подключите датчик влажности почвы к аналоговому пину A0 платформы Arduino. Для коммуникации понадобятся соединительные провода «мама-папа».

Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.

Код для Arduino IDE
Прошейте платформу Arduino скетчем приведённым ниже.
После загрузки скетча, в Serial-порт будут выводиться текущие показания сенсора в 10-битном диапазоне.
Емкостной датчик влажности почвы
Trema-модуль емкостной датчик влажности почвы — в отличие от резистивных датчиков влажности не подвержен коррозии. Датчик является аналоговым, напряжение на выходе обратно пропорционально влажности почвы. Датчик идеально подходит для наблюдения изменений влажности почвы, для создания систем автоматического полива растений и для мониторинга целостности грунтового трубопровода.
Спецификация:
- Напряжение питания Vcc: 5 В или 3,3 В
- Напряжение на выходе датчика при Vcc 5В:
3 . 1,75 В; при Vcc 3,3В:
Подключение:
В комплекте имеется кабель для быстрого и удобного подключения к Trema Shield .
Выход датчика подключается к любому аналоговому входу Arduino.
Модуль удобно подключать 2 способами, в зависимости от ситуации:
Способ — 1 : Используя провода и Piranha UNO
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO

Способ — 2 : Используя проводной шлейф и Shield
Используя 3-х проводной шлейф, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO


Питание:
Входное напряжение питания 5 В или 3,3 В, постоянного тока, подаётся на выводы Vcc (V) и GND (G) датчика. Датчик можно подключить к постоянному питанию (тип подключения 1), а можно управлять питанием датчика (тип подключения 2) если подавать питание на датчик с любого информационного вывода, тогда функцией digitalWrite() можно включать или выключать датчик. При таком подключении нужно дать датчику время для включения генератора частоты, примерно 50 миллисекунд.

Питание датчика от информационного вывода (тип подключения 2), возможно, благодаря низкому энергопотреблению датчика (потребляемый ток <5,3мА).
Подробнее о модуле:
Модуль использует технологию шунтирования высокой частоты за счет чего электроды датчика физически не контактируют с почвой и не подвержены коррозии. Датчик возвращает инверсное значение: чем больше влажность, тем ниже показания. Максимальные показания — датчик находится в воздухе, минимальные — датчик находится в воде по линию пиктограммы деревьев (65мм).

В зависимости от влажности почвы, при питании 5 вольт показания датчика находятся в диапазоне от
1.75 вольт; при питании 3,3 вольта от
1. Соответственно, диапазон показаний функции analogRead() будет зависеть от напряжения питания датчика.
График зависимости выходного напряжения датчика от влажности почвы при питании 5В

Примеры:
Считывание показаний с датчика:
Показания датчика считываются вызовом функции analogRead(номер_вывода);
Тип подключения 1:
Тип подключения 2: датчик запитан от выводов A0 и A1.
Так как датчик является инверсным, для удобства чтения данных можно воспользоваться встоенной функцией map(), которая в следующем скетче преобразует и инвертирует «сырые» показания датчка в диапазон от 0 до 100:
Автоматическая оросительная система на Arduino Uno
Наверняка многие из вас любят выращивать какую-нибудь зелень у себя дома или на даче. При этом растения, в отличие от животных, достаточно неприхотливы и могут спокойно расти без вашего надзора в течение достаточно продолжительного времени. Но, тем не менее, растения могут погибнуть если уровень влажности почвы, на которой они растут, будет низким в течение продолжительного времени (неделя и более). Если вы находитесь постоянно дома, то поливать растения каждый день не представляет особого труда. Но что делать если вы уехали в отпуск или командировку на достаточно продолжительное время?

В данной статье мы рассмотрим создание автоматической оросительной системы (Automatic Irrigation System) на основе платы Arduino Uno и датчика влажности (Moisture sensor) почвы, которая будет автоматически поливать ваши растения и поддерживать оптимальный уровень влаги в почве во время вашего отсутствия. Систему можно использовать как в домашних условиях внутри помещений, так и в вашем саду. Также на нашем сайте вы можете посмотреть аналогичный проект системы полива растений с самодельным датчиком влажности почвы, выводом сообщений на экран ЖК дисплея и оповещениями о работе системы с помощью SMS.
Принцип работы автоматической оросительной системы
Логика работы нашей оросительной системы будет достаточно проста. Датчик влажности будет измерять уровень влаги в почве и когда этот уровень будет достаточно низок, то с помощью платы Arduino Uno будет подаваться сигнал на водяной насос (water pump), который будет подавать воду в почву и тем самым орошать наши растения. После подачи воды уровень влаги в почве будет повышаться и когда он достигнет необходимого уровня, датчик влажности обнаружит это и будет подан сигнал на остановку водяного насоса.
Датчик влажности почвы (Soil Moisture Sensor)

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

В данном проекте мы использовали небольшой водяной насос, который вполне справится с орошением ваших домашних растений, его можно подключать напрямую к плате Arduino. Но в данном случае мы его подключили к плате Arduino с помощью модуля реле чтобы обеспечить универсальность схемы. Дело в том, что если вы захотите использовать подобную систему для орошения вашего сада, то в данном случае маленький насос, использованный нами, уже не справится с орошением больших объемов и почвы и вам будет необходим водяной насос значительно большего размера. Запитываться такой насос будет уже от сети переменного тока. В этом случае вам всего лишь будет необходимо заменить источник постоянного тока в нашей схеме (батарейку) на питание от сети переменного тока, а плату Arduino запитать от отдельного источника постоянного тока, а вся логика работы нашей оросительной системы останется точно такой же.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Модуль датчика влажности почвы (купить на AliExpress).
- Модуль реле 5v (купить на AliExpress).
- Маленький водяной насос (мini water pump with small pipe) с питанием от 6v (купить на AliExpress).
- Батарейка.
- Соединительные провода.
Внешний вид компонентов, необходимых для сборки проекта, показан на следующем рисунке.

Схема проекта
Схема автоматической оросительной системы на основе платы Arduino Uno представлена на следующем рисунке.

Для питания схемы мы использовали внешний источник питания – батарейку. Можно использовать батарейку на 9v или 12v. Батарейка подключается к контактам Vin и ground платы Arduino. Водяной насос получает питание от батарейки через модуль реле. Выход датчика влажности почвы подключен к аналоговому контакту платы Arduino.
Сборка конструкции проекта
Подключите контакт VCC модуля реле к контакту 5v платы Arduino, а землю (ground) модуля реле – к земле платы. Затем подключите сигнальный контакт модуля реле к любому цифровому контакту платы Arduino кроме контакта 13. В нашем случае мы подключили его к контакту 3 как показано на рисунке ниже.

На следующем шаге подключите датчик влажности почвы к плате Arduino. Соедините VCC и gnd датчика с контактами 5volt и ground платы. Аналоговый выход датчика подключите к любому аналоговому контакту платы Arduino, в данном случае мы его подключили к контакту A0.

Затем подключите водяной насос к модулю реле. Модуль реле обычно имеет 3 точки подключения: общий провод, нормально замкнутый и нормально разомкнутый контакты. Нам необходимо подключить положительный вывод водяного насоса к общему контакту реле, а нормально разомкнутый контакт реле – к положительному выводу батареи. Далее необходимо подключить землю водяного насоса к земле Arduino и подключить небольшой шланг к водяному насосу.
После этого подключите батарейку к схеме и если водяной насос начнет работать, то значит все в порядке и можно приступать к загрузке кода программы в плату Arduino.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
В данном проекте мы не будем использовать никаких подключаемых библиотек, только базовые функции. В начале кода программы объявим две переменные целого типа, одну для хранения значения влажности почвы, а вторую – для конвертированного в проценты значения влажности почвы.
Как работает датчик влажности почвы, и его взаимодействие с 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 для считывания показаний на аналоговом выходе
Калибровка
Чтобы получить точные показания с датчика влажности почвы, рекомендуется сначала откалибровать его для конкретного типа почвы, которую вы планируете контролировать.
Различные типы почвы могут по-разному влиять на показания датчика, поэтому ваш датчик в зависимости от типа используемой почвы может быть более или менее чувствительным.
Прежде чем вы начнете хранить данные или запускать события, вы должны увидеть, какие показания вы на самом деле получаете от вашего датчика.
Чтобы отметить, какие значения выводит ваш датчик, когда почва максимально сухая, и когда она полностью насыщена влагой, воспользуйтесь скетчем, приведенным ниже.
Когда вы запустите этот скетч, вы увидите похожие значения в мониторе последовательного порта:
Этот тест может потребовать несколько проб и ошибок. Как только вы получите хороший контроль над этими показаниями, вы сможете использовать их в качестве пороговых значений, если намерены инициировать какое-либо действие.
Финальная сборка
Основываясь на значениях калибровки, программа, приведенная ниже, задает следующие диапазоны для определения состояния почвы:
- <500 – слишком влажная;
- 500-750 – это целевой диапазон;
- >750 – достаточно сухая для полива.
Если все в порядке, вы должны увидеть вывод в мониторе последовательного порта, похожий на приведенный ниже.
Рисунок 8 – Вывод аналоговых показаний датчика влажности почвы
Измерение влажности почвы с помощью цифрового выхода
Для нашего второго эксперимента мы определим состояние почвы с помощью цифрового выхода.
Подключение
Мы будем использовать схему из предыдущего примера. На этот раз нам просто нужно удалить подключение к выводу аналого-цифрового преобразователя и подключить вывод DO модуля к цифровому выводу 8 Arduino.
Соберите схему, как показано ниже:
Рисунок 9 – Подключение датчика влажности почвы к Arduino для считывания показаний на цифровом выходе
Калибровка
Для калибровки цифрового выхода (DO) модуль имеет встроенный потенциометр.
Вращая движок этого потенциометра, вы можете установить пороговое значение. Таким образом, когда уровень влажности превысит пороговое значение, светодиод состояния загорится, и модуль выдаст низкий логический уровень.
Рисунок 10 – Состояния цифрового выхода датчика влажности почвы
Теперь, чтобы откалибровать датчик, вставьте зонд в почву, когда ваше растение будет готово к поливу, и подстройте потенциометр по часовой стрелке так, чтобы светодиод состояния горел, а затем подстройте потенциометр обратно против часовой стрелки, пока светодиод не погаснет.
Теперь ваш датчик откалиброван и готов к использованию.
Код Arduino
После того, как схема будет собрана, загрузите в Arduino следующий скетч.
Если все в порядке, вы должны увидеть вывод в мониторе последовательного порта, похожий на приведенный ниже.
Рисунок 11 – Вывод цифровых показаний датчика влажности почвы
