Как подключить датчик влажности почвы к Arduino?

Когда вы уезжаете куда-то далеко на определенный срок времени? Ваши комнатные цветы некому поливать, поэтому приходится просить помощи у ваших соседей, которые, в свою очередь, могут халатно относиться к этому. В результате к вашему приезду растения будут чувствовать себя плохо. Чтобы этого не произошло, можно сделать систему автоматического полива. Для этой цели нам понадобится Arduino и датчик влажности почвы. В статье рассмотрим пример подключения и работы с датчиком FC-28. Он зарекомендовал себя с положительной стороны, с помощью него были созданы тысячи проектов.

О датчике FC-28

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

Датчик влажности почвы FC-28

Где купить

Дело в том, что в российских магазинах датчики для работы с Arduino стоят относительно дорого. Средняя цена на этот датчик в России варьируется от 200 до 300 рублей, в то же время как в Aliexpress этот же датчик стоит всего лишь каких-то 30-50. Наценка огромная. Конечно, можно еще сделать датчик для измерения влажности почвы своими руками, но об этом ниже.

О подключении

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

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

Подключение с помощью цифрового выхода

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

  • VCC - 5V на Arduino.
  • D0 - D8 на плате на Arduino.
  • GND - земля.

Как уже упоминалось выше, на модуле датчика расположены компаратор и потенциометр. Работает все следующим образом: при помощи потенциометра мы устанавливаем предельное значение нашего датчика. FC-28 сравнивает значение с предельным, и после этого отправляет значение в Arduino. Допустим, значения датчика выше порогового, в таком случае датчик влажности почвы на Arduino передает 5V, если меньше - 0V. Все очень просто, но более точные значения - у аналогового режима, поэтому рекомендуется использовать его.

Подключение с помощью цифрового режима

Электрическая схема подключения выглядит так, как показано на фото выше. образом

Программный код для Arduino при использовании цифрового режима приведен ниже.

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);
}
}

Что же делает наш код? Первым делом были обозначены две переменные. Первая переменная - led_pin - служит для обозначения светодиода, а вторая - для обозначения датчика влажности земли. Далее мы объявляем контакт светодиода как выход, и контакт датчика как вход. Это нужно для того, чтобы мы могли получить значени, и при необходимости включить светодиод, чтобы визуально увидеть, что значения датчика выше порогового. В цикле мы считываем значения с датчика. Если значение выше предельного - включаем светодиод, если ниже - выключаем. Вместо светодиода может быть и насос, тут все зависит от вас.

Аналоговый режим

Для подключения при помощи аналогового выхода потребуется работать с A0. Емкостной датчик влажности почвы в Arduino принимает значения от 0 до 1023. Подключаем датчик следующим образом:

  • VCC подключаем на 5V к Arduino.
  • GND на датчике подключаем к GND на плате Arduino.
  • A0 подключаем к A0 на Arduino.

Далее в Arduino прописываем код, приведенный ниже.

int sensor_pin = A0; 
int output_value ;
 
void setup() {
  Serial.begin(9600);
  Serial.println("Читаем сенсор");
  delay(2000);
  }
 
void loop() {
  output_value= analogRead(sensor_pin);
  output_value = map(output_value,550,0,0,100);
  Serial.print("Влажность ");
  Serial.print(output_value);
  Serial.println("%");
  delay(1000);
  }

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

Аналоговое подключение датчика влажности почвы

Своими руками

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

Своими руками датчик влажности почвы

Плюсы и минусы

В статье были рассмотрены варианты подключения датчика влажности почвы к Arduino, также были представлены примеры программного кода. FC-28 является действительно хорошим датчиком для определения влажности почвы, но какие же конкретные плюсы и минусы этого датчика?

Плюсы:

  • Цена. Этот датчик имеет очень низкую цену, поэтому каждый радиолюбитель сможет купить и соорудить свою систему автоматического полива для растений. Конечно, при работе с большими масштабами этот датчик не подойдет, но он для этого и не предназначен. Если нужен датчик мощнее - SM2802B, то за него и отдать придется немаленькую сумму.
  • Простота. Освоить работу с этим датчиком влажности почвы в Arduino может каждый. Всего несколько проводов, пара строк кода - и все. Контроль влажности почвы сделан.

Минусы:

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

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