Содержание

Датчик влажности почвы (ёмкостный): инструкция по использованию и примеры

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

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

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

Внутри ёмкостного датчика находится RC-генератор на таймере 555, частота которого зависит от ёмкости между двумя электродами, которые выполняю роль конденсатора. Изменение влажности грунта сказывается на его диэлектрических свойствах и меняет ёмкость, что приводит к повышению или понижению выходного сигнала датчика. Итоговое напряжение пропорционально степени влажности почвы.

Пример работы для Arduino и XOD

В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например Arduino Uno.

Схема устройства

Подключите датчик влажности почвы к аналоговому пину A0 платформы Arduino. Для коммуникации понадобятся соединительные провода «мама-папа».

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

Код для Arduino IDE

Прошейте платформу Arduino скетчем приведённым ниже.

sensor-soil-moisture-capacitive-arduino-read-data.ino
// любой GPIO пин с поддержкой АЦП
constexpr auto pinSensor = A0;
 
void setup() {
  // открываем Serial-порт
  Serial.begin(9600);
}
 
void loop() {
  // считываем данные с датчика влажности почвы
  int valueSensor = analogRead(pinSensor);
  // выводим данные в Serial-порт
  Serial.println(valueSensor);
  // ждём 100 мс
  delay(100);
}

После загрузки скетча, в Serial-порт будут выводиться текущие показания сенсора в 10-битном диапазоне.

Патч для XOD

  1. Создайте новый патч
  2. Добавьте в патч ноду analog-sensor и установите ей в инспекторе PORT значение A0.
  3. Добавьте ноду watch и подключите её к ноде analog-sensor к пину VAL.
  4. Прошейте платформу Arduino с режимом отладки.

После загрузки прошивки, в отладочной ноде watch будут выводиться текущие показания сенсора в диапазоне от 0 до 0,75:

Пример для Espruino

В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии Espruino, например Iskra JS.

Схема устройства

Подключите датчик влажности почвы к аналоговому пину A0 платформы Iskra JS. Для коммуникации понадобятся соединительные провода «мама-папа».

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

Исходный код

Прошейте платформу Iskra JS скриптом приведённым ниже.

sensor-soil-moisture-capacitive-espruino-read-data.js
// выводим показания датчика на пине A0 каждые 100 мс
setInterval(function() {
  var valueSensor = analogRead(A0) * 100;
  print('Value sensor: ', Math.round(valueSensor), '%');
}, 100);

После загрузки скрипта, в консоль будут выводиться текущие показания сенсора в диапазоне от 0 до 100%.

Пример для Raspberry Pi

В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры Raspberry Pi, например Raspberry Pi 4.

Схема устройства

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

Подключите датчик влажности почвы к Raspberry Pi через плату расширения Troyka Cap к 3 пину. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.

Программная настройка

Исходный код

Запустите скрипт на малине приведённым ниже.

sensor-soil-moisture-capacitive-raspberry-pi-read-data.py
# библиотека для работы со временем и задержками
import time
# библиотека для работы с расширителем портов GPIO Expander на плате Troyka Cap
import gpioexp
# создаём объект для работы с расширителем портов
exp = gpioexp.gpioexp()
 
# пин к которому подключен датчик влажности почвы
# любой GPIO пин платы расширения Troyka Cap
pinSensor = 3
 
while True:
    # считываем состояние датчика влажности почвы
    valueSensor = exp.analogRead(pinSensor) * 100
    # выводим показания датчика
    print('Value sensor: ', round(valueSensor), ' %')
    # ждём 100 мс
    time.sleep(0.1)

После загрузки скрипта, в консоль малины будут выводиться текущие показания сенсора в диапазоне от 0 до 100%.

Элементы платы

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

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

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

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

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

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

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

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

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

Troyka-контакты

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

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

Габаритный чертёж

Характеристики

Ресурсы