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

Материал из MIK32 микроконтроллер
Нет описания правки
Нет описания правки
Строка 64: Строка 64:
* Макетная плата
* Макетная плата
* Соединительные провода.
* Соединительные провода.
<syntaxhighlight lang="c">
  // контакт подключения аналогового выхода датчика
  // контакт подключения аналогового выхода датчика
  int aPin=A0;
  int aPin=A0;
Строка 106: Строка 107:
   delay(1000);
   delay(1000);
  }
  }
 
</syntaxhighlight>


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

Версия от 22:34, 14 июня 2021

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

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

Модуль состоит из двух частей:

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

2) Кроме контактов соединения с щупом,  датчик YL-38 имеет четыре контакта для подключения к контроллеру.

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

Принцип работы

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

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

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

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

Элементы платы (емкостного датчика влажности почвы)

Элементы платы емкостного датчика
Элементы платы емкостного датчика

Измерительные электроды

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

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

Генератор импульсов

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

Операционный усилитель MCP6002

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

Регулятор напряжения 3V3

Линейный понижающий регулятор напряжения TPS73033DBVR обеспечивает питание микросхемы 555 и других компонентов сенсора. Диапазон входного напряжения от 3,3 до 5 вольт. Выходное напряжение 3,3 В с максимальным выходным током 200 мА.

Troyka-контакты

Датчик подключается к управляющей электронике через три провода.

  • Сигнальный (S) — выходной сигнал сенсора. Напряжение на выходе датчика прямо пропорционально уровню измеренной электропроводности: чем выше влажность почвы, тем выше уровень сигнала на выходе датчика и соответственно наоборот. Максимальное выходное значения 3,3 вольта. Подключите к аналоговому пину микроконтроллера.
  • Питание (V) — соедините с рабочим напряжением микроконтроллера.
  • Земля (G) — соедините с землёй микроконтроллера.

Принципиальная и монтажная схемы

Схема емкостного датчика

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

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

  • Плата Arduino Uno
  • Датчик влажности почвы
  • 8 светодиодов
  • Макетная плата
  • Соединительные провода.
 // контакт подключения аналогового выхода датчика
 int aPin=A0;
 // контакты  подключения светодоодов индикации
 int ledPins[8]={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 масштабируем аналоговое значение датчика в значение нашего светодиодного индикатора. Чем больше влажность почвы, тем больше значение светодиодного индикатора (количество зажженных светодиодов). Подключив данный индикатор к цветку, мы издали можем видеть на индикаторе степень влажности и определять необходимость полива.