Инструменты пользователя

Инструменты сайта


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

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

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

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

Максимальное напряжение на выходе S не превышает 75% от напряжения питания модуля V, т.е. сигнальный диапазон датчика равен:

  • 0–3,5 В при питании 5 В:
  • 0–2 В при питании 3,3 В.

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

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

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

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

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

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

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

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

Код для Arduino IDE

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

sensor-soil-moisture-resistive-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-битном диапазоне.

  • 0–300: сухая почва;
  • 300–600: влажная почва;
  • 600–750: датчик в воде.

Патч для XOD

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

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

  • 0–0,3: сухая почва;
  • 0,3–0,6: влажная почва;
  • 0,6–0,75: датчик в воде.

Пример для Espruino

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

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

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

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

Исходный код

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

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

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

  • 0–30%: сухая почва;
  • 30–60%: влажная почва;
  • 60–75%: датчик в воде.

Пример для Raspberry Pi

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

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

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

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

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

Исходный код

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

sensor-soil-moisture-resistive-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 до 75%.

  • 0–30%: сухая почва;
  • 30–60%: влажная почва;
  • 60–75%: датчик в воде.

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

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

Датчик построен на основе транзисторного усилителя тока. Для измерения влажности почвы на датчике расположены два электрода, которые для проведения измерений необходимо воткнуть в почву. Электроды подключены в цепь между коллектором (точка SP) и базой (точка SN) встроенного транзистора на плате MMBT2222ALT1G.

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

Troyka-контакты

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

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

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

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

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

  • Тип датчика влажности почвы: резистивный
  • Напряжение питания: 3,3 / 5 В
  • Потребляемый ток:
    • При питании 5 В: до 34 мА
    • При питании 3,3 В: до 18 мА
  • Интерфейс: аналоговый сигнал
  • Диапазон выходного сигнала:
    • При питании 5 В: 0–3,5 В
    • При питании 3,3 В: 0–2 В
  • Глубина погружения в почву: до 40 мм
  • Габариты: 60×20×7,6 мм

Ресурсы