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

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

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

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

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

Схема датчика

Как известно, электропроводимость сухой и влажной почвы отличается довольно значительно, именно этот факт лежит в основе работы датчика. Резистор номиналом 10 кОм и участок почвы между прутками образуют делитель напряжения, их средняя точка подключается напрямую на вход ОУ. На другой вход ОУ напряжение подаётся со средней точки переменного резистора, т.е. его можно настраивать от нуля до напряжения питания. С его помощью выставляется порог переключения компаратора, в роли которого и работает ОУ. Как только напряжение на одном его входе превысит напряжение на другом - на выходе окажется логическая «1», загорится светодиод, транзистор откроется и включит реле. Транзистор можно применить любой, структуры PNP, подходящий по току и напряжению, например, КТ3107 или КТ814. Операционный усилитель TL072 или любой аналогичный, например, RC4558. Параллельно обмотке реле следует поставить маломощный диод, например, 1n4148. Напряжение питания схемы - 12 вольт.

Из-за длинных проводов от горшка до самой платы может возникнуть такая ситуация, что реле переключается не чётко, а начинает щёлкать с частотой переменного тока в сети, и только спустя какое-то время устанавливается в открытом положении. Для устранения этого нехорошего явления следует поставить электролитический конденсатор ёмкостью 10-100 мкФ параллельно датчику. Архив с платой . Удачной сборки! Автор - Дмитрий С.

Обсудить статью СХЕМА ДАТЧИКА ВЛАЖНОСТИ ПОЧВЫ

Всем привет, сегодня в нашей статье мы рассмотрим как сделать датчик влажности почвы своими руками. Причиной самостоятельного изготовления может послужить износ датчика (коррозия, окисление), либо просто невозможность приобрести, долгое ожидание и желание смастерить что-либо своими руками. В моем случае желанием сделать датчик самому послужил износ, дело в том что щуп датчика при постоянной подаче напряжение взаимодействует с почвой и влагой в результате чего окисляется. Например датчики SparkFun покрывают его специальным составом (Electroless Nickel Immersion Gold) для увлечения ресурса работы. Так же что бы продлить жизнь датчику лучше подавать питание на датчик только в момент замеров.
В один "прекрасный" день я обратил внимание что моя система полива увлажняет почву без лишней надобности, при проверке датчика я извлек щуп из почвы и вот что я увидел:

Из-за коррозии между щупами появляется дополнительное сопротивление в результате которого сигнал становиться меньше и arduino считает что почва сухая. По скольку Я использую аналоговый сигнал то схему с цифровым выходом на компараторе я делать не буду для упрощения схемы.

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

Левая часть схемы показывает как щупы подключаются к arduino, а правую часть (с резистором R2) я привел для того что бы показать за счет чего меняются показания АЦП. Когда щупы опущены в землю между ними образуется сопротивление (на схеме я отобразил его условно R2), если почва сухая то сопротивление бесконечно большое, а если влажное то оно стремиться к 0. Так как два сопротивления R1 и R2 образуют делитель напряжение, а средней точкой является выход (out a0) то от величины сопротивления R2 зависит напряжение на выходе. К примеру если сопротивление R2=10Kom то напряжение будет 2,5В. Можно сопротивление запаять на проводах что бы не делать дополнительных развязок, для стабильности показаний можно добавить конденсатор 0,01мкФ между - питания и out. схема подключение следующая:

Поскольку с электрической частью мы разобрались, можно перейти к механической части. Для изготовления щупов лучше использовать материал менее всего подверженного коррозии что бы продлить жизнь датчика. Можно использовать "нержавейку" или оцинкованный метал, форму можно выбрать любую, даже можно использовать два куска проволочки. Я для щупов выбрал "оцинковку", в качестве фиксирующего материал использовал небольшой кусок гетинакса. Так же стоит учесть что настояния между щупами должно быть 5мм-10мм, но не стоит делать больше. На концы оцинковки я напаял провода датчика. Вот что получилось в итоге:

Не стал делать подробный фото отчет, все и так просто. Ну и фото в работе:

Как я уже раньше указывал лучше использовать датчик только в момент измерений. Оптимальный вариант включение через транзисторный ключ, но так как потребление тока у меня составило 0,4мА можно включить на прямую. Для подачи напряжения во время замеров можно подключить контакт датчика VCC к пину ШИМ или использовать цифровой выход на момент измерений подавать высокий (HIGH) уровень, а потом устанавливать низкий. Так же стоит учесть что после подачи напряжения на датчик необходимо выждать некоторое время для стабилизации показаний. Пример через ШИМ:

Int sensor = A0; int power_sensor = 3;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
analogWrite(power_sensor, 0);
}

void loop() {

delay(10000);
Serial.print("Suhost" : ");
Serial.println(analogRead(sensor));
analogWrite(power_sensor, 255);
delay(10000);
}

Спасибо всем за внимание!




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


Пара датчиков приехала за 20 дней в индивидуальных антистатических пакетиках:




Характеристики на сайте продавца:):
Бренд:ZHIPU
Тип: Датчик вибрации
Материал: Смесь
Выход: Коммутирующий датчик

Распаковываем:


Провод имеет длину в районе 1-го метра:


Помимо самого датчика в комплект входит управляющая платка:




Длина сенсоров датчика порядка 4 см:


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




Самым распространенным датчиком влажности почвы в китайских магазинах является такой:


Многие знают, что через непродолжительное время его съедает внешняя среда. Эффект влияния коррозии можно немного снизить подавая питание непосредственно перед измерением и отключая, при отсутствии измерений. Но это мало что меняет, вот так выглядел мой через пару месяцев использования:




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

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


Опустим датчик в стакан с водой и видим, что его сопротивление составит порядка 160 кОм:


Если вынуть, то все вернется в исходное состояние:


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


Добавим немного воды:


Еще (примерно литр):


Почти полностью вылил полтора литра:


Долил еще литр и подождал 5 минут:

Плата имеет 4 вывода:
1 + питания
2 земля
3 цифровой выход
4 аналоговый выход
После прозвонки выяснилось, что аналоговый выход и земля напрямую соединены с датчиком, так что, если планируете использовать этот датчик подключая к аналоговому входу, плата не имеет большого смысла. Если нет желания использовать контроллер, то можно использовать цифровой выход, порог срабатывания настраивается потенциометром на плате. Рекомендуемая продавцом схема подключения при использовании цифрового выхода:


При использовании цифрового входа:


Соберем небольшой макет:


Arduino Nano я использовал тут как источник питания, не загружая программу. Цифровой выход подключил к светодиоду. Забавно что светодиоды на плате красный и зеленый горят при любом положении потенциометра и влажности среды датчика, единственное при срабатывании порога, зеленый светит чуть слабже:


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




Ну раз уж у нас в руках контроллер, то напишем программу для проверки работы аналогового выхода. Аналоговый выход датчика подключим к выводу А1, а светодиод к выводу D9 Arduino Nano.
const int analogInPin = A1; // сенсор const int analogOutPin = 9; // Вывод на светодиод int sensorValue = 0; // считанное значение с сенсора int outputValue = 0; // значение выдаваемое на ШИМ вывод со светодиодом void setup() { Serial.begin(9600); } void loop() { // считываем значение сенсора sensorValue = analogRead(analogInPin); // переводим диапазон возможных значений сесора (400-1023 - установлено экспериметально) // в диапазон ШИМ вывода 0-255 outputValue = map(sensorValue, 400, 1023, 0, 255); // включаем светодиод на заданную яркость analogWrite(analogOutPin, outputValue); // выводим наши цифры Serial.print("sensor = "); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); // задержка delay(2); }
Весь код я прокомментировал, яркость светодиода обратно-пропорциональна влажности детектируемой сенсором. Если необходимо чем-то управлять, то достаточно сравнить полученное значение с определенным экспериментально порогом и, например, включить реле. Единственное, рекомендую обработать несколько значений и использовать среднее для сравнения с порогом, так возможны случайные всплески или спады.
Погружаем датчик и видим:


Вывод контроллера:

Если вынуть то вывод контроллера изменится:

Видео работы данной тестовой сборки:

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

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

Планирую купить +74 Добавить в избранное Обзор понравился +55 +99

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

Схема

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

В почку горшка опускаются два металлических прутка, сделать которые можно, например, разогнув скрепку. Их нужно воткнуть в землю на расстоянии примерно 2-3 сантиметра друг от друга. Когда почва сухая, она плохо проводит электрический ток, сопротивление между прутками очень велико. Когда почва влажная – её электропроводность значительно повышается и сопротивление между прутками уменьшается, именно это явление лежит в основе работы схемы.
Резистор 10 кОм и участок почвы между прутками образуют делитель напряжения, выход которого соединён с инвертирующим входом операционного усилителя. Т.е. напряжение на нём зависит лишь от того, насколько увлажнена почва. Если поместить датчик во влажную почву, то напряжение на входе ОУ будет равно примерно 2-3 вольтам. По мере высыхания земли это напряжение будет увеличиваться и достигнет значения 9-10 вольт при совершенно сухой земле (конкретные значения напряжения зависят от типа почвы). Напряжение на неинвертирующем входе ОУ задаётся вручную переменным резистором (10 кОм на схеме, его номинал можно менять в пределах 10-100 кОм) в пределах от 0 до 12-ти вольт. С помощью этого переменного резистора задаётся порог срабатывания датчика. Операционный усилитель в этой схеме работает в качестве компаратора, т.е. он сравнивает напряжения на инвертирующем и неинвертирующем входах. Как только напряжение с инвертирующего входа превысит напряжение с неинвертирующего, на выходе ОУ появится минус питания, загорится светодиод и откроется транзистор. Транзистор, в свою очередь, активирует реле, управляющее водяным насосом или электрическим клапаном. Вода начнёт поступать в горшок, земля вновь станет влажной, её электропроводность увеличиться, и схема отключит подачу воды.
Печатная плата, предлагающаяся к статье, рассчитана на использования сдвоенного операционного усилителя, например, TL072, RC4558, NE5532 или других аналогов, одна его половинка при этом не используется. Транзистор в схеме используется малой или средней мощности и структуры PNP, можно применить, например, КТ814. Его задача – включение и выключение реле, также вместо реле можно применить ключ на полевом транзисторе, как это сделал я. Напряжение питания схемы – 12 вольт.
Скачайте плату:

(cкачиваний: 330)

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

Может случиться такое, что при высыхании почвы реле включается не чётко, а сначала начинает быстро щёлкать, и только после этого устанавливается в открытом состоянии. Это говорит о том, что провода от платы до горшка с растением улавливают сетевые наводки, пагубно влияющие на работу схемы. В таком случае, не помешает заменить провода на экранированные и поставить электролитический конденсатор ёмкостью 4.7 – 10 мкФ параллельно участку почвы, вдобавок к ёмкости 100 нФ, указанной на схеме.
Работа схемы мне очень понравилась, рекомендую к повторению. Фото собранного мной устройства: Датчик влажности почвы 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. Создадим проект индикатора уровня влажности почвы для комнатного растения (ваш любимый цветок, который вы иногда забываете поливать). Для индикации уровня влажности почвы будем использовать 8 светодиодов. Для проекта нам понадобятся следующие детали:
  • Плата Arduino Uno
  • Датчик влажности почвы
  • 8 светодиодов
  • Макетная плата
  • Соединительные провода.
Соберем схему, показанную на рисунке ниже


Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки: // Датчик влажности почвы // http://сайт // контакт подключения аналогового выхода датчика int aPin=A0; // контакты подключения светодиодов индикации int ledPins={4,5,6,7,8,9,10,11}; // переменная для сохранения значения датчика int avalue=0; // переменная количества светящихся светодиодов int countled=8; // значение полного полива int minvalue=220; // значение критической сухости int maxvalue=600; void setup() { // инициализация последовательного порта Serial.begin(9600); // настройка выводов индикации светодиодов // в режим OUTPUT for(int i=0;i<8;i++) { pinMode(ledPins[i],OUTPUT); } } void loop() { // получение значения с аналогового вывода датчика avalue=analogRead(aPin); // вывод значения в монитор последовательного порта Arduino Serial.print("avalue=");Serial.println(avalue); // масштабируем значение на 8 светодиодов countled=map(avalue,maxvalue,minvalue,0,7); // индикация уровня влажности for(int i=0;i<8;i++) { if(i<=countled) digitalWrite(ledPins[i],HIGH); //зажигаем светодиод else digitalWrite(ledPins[i],LOW); // гасим светодиод } // пауза перед следующим получением значения 1000 мс delay(1000); } Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение переменных для полного полива (minvalue) и сильной сухости почвы (maxvalue) получим экспериментально. Большей сухости почвы соответствует большее значение аналогового сигнала. С помощью функции map масштабируем аналоговое значение датчика в значение нашего светодиодного индикатора. Чем больше влажность почвы, тем больше значение светодиодного индикатора (количество зажженных светодиодов). Подключив данный индикатор к цветку, мы издали можем видеть на индикаторе степень влажности и при определять необходимость полива.

Часто задаваемые вопросы FAQ

1. Не горит светодиод питания
  • Проверьте наличие и полярность подаваемого на датчик YL-38 питания (3,3 – 5 В).
2. При поливе почвы не загорается светодиод индикации влажности почвы
  • Настройте потенциометром порог срабатывания. Проверьте соединение датчика YL-38 с щупом YL-69.
3. При поливе почвы не изменяется значение выходного аналогового сигнала
  • Проверьте соединение датчика YL-38 с щупом YL-69.
  • Проверьте наличие щупа в земле.

Похожие статьи