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

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

Свтодиод включается при необходимости полива растений
Очень низкий ток потребления от батареи 3 В

Принципиальная схема:

Перечень компонентов:

Резисторы 470 кОм ¼ Вт

Керметный или угольный
подстроечный резистор 47 кОм ½ Вт

Резистор 100 кОм ¼ Вт

Резистор 3.3 кОм ¼ Вт

Резистор 15 кОм ¼ Вт

Резистор 100 Ом ¼ Вт

Лавсановый конденсатор 1 нФ 63 В

Лавсановый конденсатор 330 нФ 63 В

Электролитические конденсаторы 10 мкФ 25 В

Красный светодиод диаметром 5 мм

Электроды (См. замечания)

Батарея 3 В (2 батареи типоразмера AA, N или AAA,
соединенные последовательно)

Назначение устройства:

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

Развитие схемы:

Это небольшое устройство пользовалось большим успехом у любителей электроники на протяжении многих лет, начиная с 1999 г. Тем не менее, переписываясь все эти годы со многими радиолюбителями, я понял, что некоторые критические замечания и предложения должны быть учтены. Схема была усовершенствована за счет добавления в нее четырех резисторов, двух конденсаторов и одного транзистора. В результате устройство стало проще в настройке и устойчивее в работе, а яркость свечения удалось увеличить, не используя сверхярких светодиодов.
Было проведено много опытов с различными цветочными горшками и различными датчиками. И хотя, как несложно себе представить, цветочные горшки и электроды сильно отличались друг от друга, сопротивление между двумя электродами, погруженными в почву на 60 мм на расстоянии порядка 50 мм, всегда находилось в пределах 500…1000 Ом при сухой почве, и 3000…5000 Ом при влажной

Работа схемы:

Микросхема IC1A и связанные с ней R1 и C1 образуют генератор прямоугольных импульсов с частотой 2 кГц. Через подстраиваемый делитель R2/R3 импульсы поступают на вход вентиля IC1B. При низком сопротивлении между электродами (т.е., если влаги в цветочном горшке достаточно) конденсатор C2 шунтирует вход IC1B на землю, и на выходе IC1B постоянно присутствует высокий уровень напряжения. Вентиль IC1C инвертирует выходной сигнал IC1B. Таким образом, вход IC1D оказывается блокированным низким уровнем напряжения, и светодиод, соответственно, выключен.
При высыхании почвы в горшке, сопротивление между электродами возрастает, и C2 перестает препятствовать поступлению импульсов на вход IC1B. Пройдя через IC1C, импульсы 2 кГц попадают на вход блокировки генератора, собранного на микросхеме IC1D и окружающих его компонентах. IC1D начинает генерировать короткие импульсы, включающие светодиод через транзистор Q1. Вспышки светодиода указывают на необходимость полива растения.
На базу транзистора Q1 подаются редкие пачки коротких отрицательных импульсов частотой 2 кГц, вырезанные из входных импульсов. Следовательно, и светодиод вспыхивает 2000 раз в секунду, однако человеческий глаз воспринимает такие частые вспышки как постоянное свечение.

Замечания:

  • Для предотвращения окисления электродов используется их питание прямоугольными импульсами.
  • Электроды изготавливаются из двух отрезков зачищенного одножильного провода, диаметром 1 мм и длиной 60 мм. Можно использовать провод, применяемый для прокладки электропроводки.
  • Электроды необходимо полностью погрузить в землю на расстоянии 30…50 мм друг от друга. Материал электродов, размеры и расстояние между ними, в целом, не имеют большого значения.
  • Потребление тока порядка 150 мкА при выключенном светодиоде, и 3 мА при включении светодиода на 0.1 секунду каждые 2 секунды, позволяет устройству работать годами от одного комплекта батарей.
  • При таком небольшом токе потребления в выключателе питания просто нет необходимости. Если, все же, возникнет желание выключить схему, достаточно закоротить электроды.
  • 2 кГц с выхода первого генератора можно проверить без пробника или осциллографа. Их можно просто услышать, если подсоединить электрод Р2 ко входу усилителя низкой частоты с динамиком, а если есть древний высокоомный наушник ТОН-2, то можно обойтись и без усилителя.
  • Схема собрана четко по мануалу и рабочая на 100%!!! ...так что если вдруг "НЕ работает", то это просто неправильная сборка или детали. Честно говоря, до последнего не верил, что "рабочая".
  • Вопрос к спецам!!! Как можно приладить в качестве исполнительного устр-ва помпу на 12В постоянки с потреблением 0.6А и пусковым 1.4А?!
  • Sobos КУДА приладить? Чем управлять?.... Формулируйте вопрос ЧЁТКО.
  • В данной схеме (полное описание http://www..html?di=59789) индикатором ее работы является светодиод, который загорается при "сухом грунте". Есть большое желание автоматически включать помпу полива (12В постоянки с потреблением 0.6А и пусковым 1.4А) вместе с включением этого светодиода, каким образом изменить или "достроить" схему, чтобы это реализовать.
  • ...может хоть какие-нибудь мысли у кого-то есть?!
  • Установите вместо светодиода оптореле или оптосимистор. Дозу воды можно регулировать таймером или расположением датчик/точка полива.
  • Странно, схему собрал и она прекрасно работает но только светодиод "при необходимости полива" полноценно мерцает с частотой приблизительно 2кГц, а не горит постоянно как говорят некоторые форумчане. Что в свою очередь обеспечивает эконимию при использовании батареек. А также немаловажно, что при таком низком питании электроды в земле мало подвергаются коррозии особенно анод. И ещё один момент при определенном уровне влажности светодиод начинает еле еле светиться и так может продолжаться длительное время, что не позволило мне использовать эту схему для включения помпы. Думаю, что для надёжного включения помпы нужен какой-то определитель импульсов указанной частоты поступающих с этой схемы и дающий "команду" на управление нагрузкой. Прошу СПЕЦОВ подсказать схему реализации такого девайса. Хочу на основе этой схемы осуществить автополив на даче.
  • Очень перспективная по своей "экономике" схема которую необходимо доработать и использовать на садовых участках или например на работе, что очень актуально когда выходные или отпуск, а также дома для автоматического полива цветов.
  • всегда находилось в пределах 500…1000 Ом при сухой почве, и 3000…5000 Ом при влажной - в смысле - наоборот!!??
  • Помойму фигня это. Со временем на электродах откладываются соли и система срабатывает не вовремя. Пару лет назад занимался этим, только делал на двух транзисторах по схеме из журнала МК. На неделю хватало, а дальше смещалось. Срабатывал насос и не отключался, заливая цветок. В сети встречал схемы на переменном токе, вот их думаю следует попробовать.
  • Доброго времени суток!!! Как по мне любая затея что-то создать это уже неплохо. - Что касается установки системы на даче - я бы посоветовал включить насос через реле времени (стоит копейки во многих магазинах электроабарудования) настроить его на выключение через время от включения. Таким образом когда ваша система заклинит (ну всякое бывает) то насос отключится через время гарантировано достаточное для полива (подберете опытным путем). - http://tuxgraphics.org/electronics/2...ering-II.shtml Вот неплохая вещ, конкретно этую схему не собирал, юзал только связь с интернетом. Немного глюкавое (не факт что мои ручки очень прямые), но все работает.
  • Я собрал схемы для полива но не для этой которая обсуждается в этой теме. Собранные работают одна как и говорилось выше по времени включения помпы, другая, что очень перспективно по уровню в поддоне где закачивается вода непосредственно в поддон. Для растений это самый оптимальный вариант. Но суть вопроса в том, чтобы адаптировать указанную схему. Лишь только по причине даже того, что анод в земле почти не разрушается как при реализации других схем. Так, что прошу подсказать как отследить по частоте импульсов, чтобы включить исполнительное устройство. Проблема ещё усугубляется тем, что светодиод может "тлеть" еле-еле определённое время, а потом только включиться в импульсный режим.
  • Ответ на заданный ранее вопрос, по доработке схемы контроля влажности почвы, получен на другом форуме и проверен на 100% работоспособность:) Если кого интересует пишите в личку.
  • К чему такая конфиденциальность и не указать сразу ссылку на форум. Вот, например, на этом форуме http://forum.homecitrus.ru/index.php...ic=8535&st=100 практически задача решена на МК, а на логике решена и мной опробована. Только для того чтоб понять читать надо с начала «книги», а не с конца. Это я пишу заранее для тех, кто прочтет кусок текста и начинает заваливать вопросами. :eek:
  • Ссылка http://radiokot.ru/forum/viewtopic.php?f=1&t=63260 не была сразу дана по причине того, что бы это не рассматривалось как реклама.
  • для Vell65
  • http://oldoctober.com/ru/automatic_watering/#5
  • Это уже пройденный этап. Задача решена другой схемой. В качестве инфрмации. Нижняя улучшенная схема имеет ошибки, горят сопротивления. Печатка на томже сайте выполнена без ошибок. При тестировании схемы были выявлены следующие недостатки: 1. Включается только один раз в сутки, когда уже завяли помидоры, а про огурцы лучше вообще промолчать. А им как раз кода пекло солнышко необходим был капельный полив под корень ведь растения в сильную жару испаряет большое количество влаги особенно огурцы. 2. Не предусмотрена защита от ложного включения когда например ночью фотоэлемент освещается фарами или молнией и происходит срабатывание насоса тогда когда растения спят и им полив не нужен да и ночные включения насоса не способствует здоровому сну домочадцев.
  • Убираем фотодатчик, смотрите первый вариант схемы где он отсутствует, элементы временной цепи генератора импульсов подбираем как вам удобно. У меня R1=3,9 Мом. R8 которое 22м нет. R7=5,1 Мом. Тогда насос включается при сухой почве, на время пока не намокнет датчик. Я взял устройство как пример автомата полива. Огромное спасибо автору.

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

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

Понятие датчика влажности

Датчик влажности ещё имеет другие названия. Его называют влагомером или сенсором влажности.


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

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

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

Зачем необходим данный прибор

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

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

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

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

Емкостные. Их конструкция схожа с воздушным конденсатором. В основе работы лежит изменение диэлектрических свойств воздуха в зависимости от его влажности, которое вызывает увеличение или снижение ёмкости.

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

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

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

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


Материалы, необходимые для создания датчика своими руками

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

  • электроды диаметром 3-4 мм – 2 шт.;
  • текстолитовое основание;
  • гайки и шайбы.

Инструкция по изготовлению

Как же сделать датчик влажности почвы своими руками? Вот краткий инструктаж:

  • Шаг 1. Прикрепляем электроды к основанию.
  • Шаг 2. Нарезаем на концах электродов резьбу и заостряем с обратной стороны для более лёгкого погружения в почву.
  • Шаг.3. Делаем в основании отверстия и вкручиваем в них электроды. В качестве крепёжных элементов используем гайки и шайбы.
  • Шаг 4. Подбираем нужные провода, которые подойдут к шайбам.
  • Шаг 5. Изолируем электроды. Углубляем их в грунт на 5 – 10 см.

Обратите внимание!

Для работы датчика требуются: сила тока в 35 мА и напряжение в 5 В. В конце подключаем прибор, используя три провода, которые присоединяем к микропроцессору.

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

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

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

Обратите внимание!

Обратите внимание!

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

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

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

Подобные датчики подключаются достаточно просто. Два из трех коннекторов - это питание (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); //Задержка в пол секунды между считываниями

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

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



Поделиться