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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (не используется)

int thresholdUp = 400;

int thresholdDown = 250;

int sensorPin = A0;

String DisplayWords;

int sensorValue;

mySerial.write(254);

mySerial.write(128);

// очистка дисплея:

mySerial.write(" ");

mySerial.write(" ");

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

mySerial.write(254);

mySerial.write(128);

// "Dry, Water it!"

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

} else if (sensorValue >= thresholdUp){

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

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

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

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

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

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

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

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

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

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

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

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

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

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

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

#include <SoftwareSerial.h>

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

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

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

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

String DisplayWords;

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

int sensorValue;

sensorValue = analogRead(sensorPin);

mySerial.write(128);

// очистка дисплея:

mySerial.write(" ");

mySerial.write(" ");

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

mySerial.write(128);

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

mySerial.write("Water Level: ");

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

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

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

// "Dry, Water it!"

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

mySerial.write(254);

mySerial.write(192);

DisplayWords = "Dry, Water it!";

mySerial.print(DisplayWords);

// запуск двигателя на небольших оборотах (0 – остановка, 255 – максимальная скорость):

analogWrite(motorPin, 75);

// Если значение не ниже thresholdDown надо провести проверку, не будет

// ли оно больше нашего thresholdUp и, если, больше,

// отобразить надпись "Wet, Leave it!":

} else if (sensorValue >= thresholdUp){

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

mySerial.write(254);

mySerial.write(192);

DisplayWords = "Wet, Leave it!";

mySerial.print(DisplayWords);

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

analogWrite(motorPin, 0);

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

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

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

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

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

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

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

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

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

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

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


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

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

Тумблером SA1 можно менять порядок индикации HL1 на непрерывное свечение светодиода в дежурной режиме.

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

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

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

Перечень радиокомпонентов

R1, R3 - 470K
SW1 - кнопка
R2 - 15к
SW2 - переключатель
R4 - 22K
B1 - батарея типа крона
C1 - конденсатор емкостью 0.022 мкФ
T1, T2 - входные клеммы
PB1 - (RS273-059) пьезо-зуммер
Q1, Q2 - транзисторы типа 2N2222

Когда первый транзистор открывается, он сразу же отпирает второй, который включает пьезозуммер. При отсутствии жидкости оба транзистора надежно заперты и потребляется очень низкий ток от батареи питания. Когда зуммер включается, потребляемый ток увеличивается до 5 мА. Звукоизлучатели типа RS273-059 имеют в своем составе встроенный генератор. Если необходим более мощный сигнал тревоги, подключите несколько зуммеров параллельно или возьмите две батареи.

Печатную плату изготавливаем с размерами 3*5 см.

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

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

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

Работает схема следующим образом. Когда влажность воздуха в помещении в норме, сопротивление датчика росы - газорезистора В1 не превышает 3 кОм, транзистор VT2 открыт, мощный высоковольтный полевой транзистор VT1 закрыт, первичная обмотка трансформатора Т1 обесточена. Также будет обесточена нагрузка, подключенная к разъёму ХР1.

Как только влажность воздуха приближается к точке выпадения росы, например, закипел оставленный без присмотра , ванная комната заполняется горячей водой, погреб подтапливается талыми, грунтовыми водами, отказал терморегулятор водонагревателя сопротивление газорезистора В1 резко жение переменного тока снимается с вторичной обмотки Т1 и поступает на мостовой диодный выпрямитель VD2. Пульсации выпрямленного напряжения сглаживаются оксидным конденсатором большой ёмкости С2. Параметрический стабилизатор напряжения постоянного тока простроен на составном транзисторе VT3 с большим коэффициентом передачи тока базы типа КТ829Б, стабилитроне VD5 и балластном резисторе R6.

Конденсаторы СЗ, С4 уменьшают пульсации выходного напряжения. К выходу стабилизатора напряжения могут быть подключены вентиляторы с рабочим напряжением 12... 15В, например,«компьютерные». К гнезду ХР1 могут быть подключены вентиляторы общей мощностью до 100 Вт, рассчитанные на напряжение питания 220 В переменного тока. В разрыв цепи питания понижающего трансформатора Т1 и высоковольтной нагрузки установлен мостовой выпрямитель VD1. На сток полевого транзистора поступает пульсирующее напряжение постоянного тока. Каскад на транзисторах VT1, VT2 питается стабилизированным напряжением +11 В, заданным стабилитроном VD7. Напряжение на этот стабилитрон поступает по цепочке R2, R3, VD4, HL2. Такое схемное решение позволяет открывать полевой транзистор полностью, что значительно снижает рассейемую на нём мощность.

Транзисторы VT1, VT2 включены как триггер Шмитта, что исключает нахождение полевого транзистора в промежуточном состоянии, чем предотвращается его перегрев. Чувствительность датчика влажности задаётся подстроечным резистором R8, а при необходимости и подбором сопротивления резистора R7. Варисторы RU1 и RU2 защищают элементы устройства от повреждений всплесками напряжения сети. Светодиод HL2 зелёного цвета свечения показывает наличие напряжения питания, а красный светодиод HL1 сигнализирует о высокой влажности и включении устройства в режим принудительного проветривания помещения.

К устройству можно подключить до 8 низковольтных вентиляторов с током потребления до 0,25 А каждый и, или несколько вентиля- торов с напряжением питания 220 В. Если с помощью этого устройства будет необходимо управлять более мощной нагрузкой с напряжением питания 220 В, то к выходу стабилизатора напряжения можно подключить электромагнитные реле, например, типа G2R-14-130, контакты которого рассчитаны на коммутацию переменного тока до 10 А при напряжении 250 В. Параллельно резистору R8 можно установить терморезистор с отрицательным ТКС, сопротивлением 3,3...4,7 кОм при 25°С, размещённым, например, над газовой или электроплитой, что позволит включать вентиляцию также и при росте температуры воздуха выше 45...50 °С, когда конфорки плиты работают на полную мощность.

На месте трансформатора Т1 можно установить любой понижающий трансформатор с габаритной мощностью не менее 40 Вт, вторичная обмотка которого рассчитана на величину тока не менее тока низковольтной нагрузки. Без перемотки вторичной обмотки «Юность», «Сапфир». Также подойдут унифицированные трансформаторы ТПП40 или ТН46-127/220-50. При самостоятельном изготовлении трансформатора можно использовать Ш-образный магнитопровод сечением 8,6 см2 Первичная обмотка содержит 1330 витков провода диаметром 0,27 мм.

Вторичная обмотка 110 витков обмоточного провода диаметром 0,9 мм. Вместо транзистора КТ829Б подойдёт любой из серий КТ829, КТ827, BDW93C, 2SD1889, 2SD1414. Этот транзистор устанавливают на теплоотвод, размер которого будет зависеть от тока нагрузки и величине падения напряжения коллектор-эмиттер VT3. Желательно выбрать такой теплоотвод, с которым температура корпуса транзистора VT3 не превышала бы 60°С.

Если напряжение на обкладках конденсатора С2 при подключенной к выходу стабилизатора нагрузке будет больше 20 В, то для уменьшения рассеиваемой VT3 мощности можно отмотать от вторичной обмотки трансформатора несколько витков. Полевой транзистор IRF830 можно заменить на КП707В2, IRF422, IRF430, BUZ90A, BUZ216 . При монтаже этого транзистора необходима его защита от пробоя статическим электричеством . Вместо SS9014 можно применить любой из серий КТ315, КТ342, КТ3102, КТ645, 2SC1815. При замене биполярных транзисторов учитывайте различия в цоколёвках.

Диодные мосты KBU можно заменить на аналогичные КВР08, BR36, RS405, KBL06. Вместо 1N4006 можно использовать 1N4004 - 1N4007, КД243Г, КД247В, КД105В. Стабилитроны: 1N5352 - КС508Б, КС515А, КС215Ж; 1N4737A - КС175А, КС175Ж, 2С483Б; 1 N4741А - Д814Г, Д814Г1, 2С211Ж, КС221В.

Светодиоды могут быть любые общего применения, например, серий АЛ307, КИПД40, L-63. Оксидные конденсаторы - импортные аналоги К50-35, К50-68. Варисторы - любые малой или средней мощности на классификационное рабочее напряжение 430 В, 470 В, например, FNR-14K431, FNR-10K471. Чувствительный к влажности воздуха газорезистор ГЗР-2Б взят из старого отечественного видеомагнитофона «Электроника ВМ-12». Аналогичный газорезистор можно найти и в других неисправных отечественных и импортных видеомагнитофонах или в старых кассетных видеокамерах. Этот газорезистор обычно прикручен к металлическому шасси лентопротяжного механизма. Его назначение - блокировать работу аппарата при запотевании лентопротяжного механизма, что предотвращает заматывание и порчу магнитной ленты. Устройство можно смонтировать на печатной плате размерами 105x60 мм, Газорезистор предпочтительнее разместить в отдельной коробочке из изоляционного материала с отверстиями, устанавливаемой в месте попрохладней. Также рекомендуется прикрутить его к небольшой металлической пластине, можно через тонкую слюдяную изолирующую прокладку. Для защиты смонтированной платы от влаги, монтаж и печатные проводники покрывают несколькими слоями лака ФЛ-98, МЛ-92 или цапонлаком.

Газорезистор ничем закрашивать не надо. Для проверки устройства на работоспособность можно просто выдохнуть на газорезистор воздух из лёгких или, поднести поближе ёмкость с кипятком. Через несколько секунд вспыхнет светодиод HL1 и подключенные в качестве нагрузок вентиляторы начнут бороться с повышенной влажностью. В дежурном режиме устройство потребляет ток от сети около 3 мА, что очень немного. Поскольку устройство потребляет в дежурном режиме мощность менее 1 Вт, то его можно эксплуатировать круглосуточно, не опасаясь за расход электроэнергии. Так как устройство частично имеет гальваническую связь с напряжением сети переменного тока 220 В, то при настройке и эксплуатации устройства следует соблюдать соответствующие меры предосторожности.

В результате многочисленных экспериментов появилась вот эта схема датчика почвы на одной единственной микросхеме. Подойдёт любая из микросхем: К176ЛЕ5, К561ЛЕ5 или CD4001A.

Датчик влажности воздуха, схема и чертежи которого прилагаются, дает возможность полностью автоматизировать процесс контроля и управления относительной влажностью воздуха в любом помещении. Данная схема датчика влажности дает возможность измерять относительную влажность в диапазоне от 0–100%. При очень высокой точности и стабильности параметров

Светозвуковой сигнализатор выкипания воды. - Радио, 2004, №12, стр. 42, 43.
. - Схемотехника, 2004, №4, стр. 30-31.
Константа» в погребе. - САМ, 2005, № 5, стр. 30, 31.

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


Пара датчиков приехала за 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

Соединяем 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

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

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

Int sensor_pin = A0; int output_value ; void setup() { Serial.begin(9600); Serial.println("Reading From the Sensor ..."); delay(2000); } void loop() { output_value= analogRead(sensor_pin); output_value = map(output_value,550,0,0,100); Serial.print("Mositure: "); Serial.print(output_value); Serial.println("%"); delay(1000); }

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

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

Int sensor_pin = A0; int output_value ;

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

Void setup() { Serial.begin(9600); Serial.println("Reading From the Sensor ..."); delay(2000); }

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

Void loop() { output_value= analogRead(sensor_pin); output_value = map(output_value,550,10,0,100); Serial.print("Mositure: "); Serial.print(output_value); Serial.println("%"); delay(1000); }

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

Для подключения датчика влажности почвы 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 Ардуино

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

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

Int led_pin =13; int sensor_pin =8; void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); } void loop() { if(digitalRead(sensor_pin) == HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); delay(1000); } }

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

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

Int led_pin = 13; int sensor_pin = 8;

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

Void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); }

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

Void loop() { if(digitalRead(sensor_pin) == HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); delay(1000); } }

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

Датчик влажности почвы 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.
  • Проверьте наличие щупа в земле.