
Сегодня расскажу как подключить емкостный датчик влажности почвы к плате Arduino UNO с отправкой показаний на сериал порт. Так-же приведу пример калибровки, для вывода показаний в процентах %.
Технические параметры
► Напряжение питания: 3.3 — 5.5 В;
► Рабочий ток: 5mA
► Габариты: 99 х 16 х 10 мм;
► Выходное напряжение: 0 — 3.0 В
► Вес: 1 г
Общие сведения
Данный датчик, измеряет уровень влажности почвы посредством емкостного измерения, а не резистивного, как другие датчики. Это позволило увеличить срок службы датчика, так как он не подвержен коррозии. Так же, модуль включает в себя встроенный стабилизатор напряжения, с помощью которого обеспечивается диапазон работы от 3.3 В до 5.5 В, что позволяет подключить его к Arduino UNO, а так же к NodeMCU.

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

Назначение контактов модуля NEO-6M:
Емкостного датчика почвы v.2 имеет один разъем (PH2.0-3P) для подключения.
► GND — заземляющий вывод питания;
► VCC — вывод питания 3.3 В — 5 В.
► AUOT — аналоговый выход до 3В.
Подключение емкостного датчика почвы v.2 к Arduino UNO
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Емкостной датчик почвы v.2 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
В данном примере подключим емкостной датчика почвы v.2 к Arduino UNO и отобразим аналоговое значение и значение влажности почвы в процентах.
Подключение:
Теперь приступим к подключению емкостной датчик почвы к Arduino UNO, схема для этого очень проста. Подключим вывод VCC к 3.3 В (Arduino UNO, а GND к GND (Arduino UNO). Точно так же подключаем вывод аналогового выхода к A0 (Arduino UNO).

Программа:
Скопируйте приведенный ниже скетч и загрузите его на свою плату Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* Тестировалось на Arduino IDE 1.8.5 Дата тестирования 21.11.2020г. */ int soilMoistureValue = 0; // Создаем переменную soilMoistureValue void setup() { Serial.begin(9600); // Открываем последовательную связь на скорости 9600 pinMode(soilMoistureValue, INPUT); // Устанавливаем вывод как вход. } void loop() { soilMoistureValue = analogRead(A0); // Считываем данные с порта A0 и записываем их в переменную Serial.println(soilMoistureValue); // Передаем данные последовательную порт delay(250); // Пауза } |
После загрузки скетча, открываем «Мониторинг порта» и смотрим изменений значений влажности почвы, при сухом датчике (630) и погруженном в воду (260).

Калибровка емкостного датчика почвы v.2
Теперь давайте попробуем вывести значение в процентах (%), для этого необходимо получить показания сухого и когда датчик находится в воде, в моем случаи вышло 630 и 266. Далее необходимо поправить скетч, измените переменную AirValue и WaterValue и загрузите скетч в плату Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/* Тестировалось на Arduino IDE 1.8.5 Дата тестирования 21.11.2020г. */ const int AirValue = 630; // Максимальное значение сухого датчика const int WaterValue = 266; // Минимальное значение погруженного датчика int soilMoistureValue = 0; // Создаем переменную soilMoistureValue int soilmoisturepercent = 0; // Создаем переменную soilmoisturepercent void setup() { Serial.begin(9600); // Открываем последовательную связь на скорости 9600 pinMode(soilMoistureValue, INPUT); // Устанавливаем вывод как вход. } void loop() { soilMoistureValue = analogRead(A0); // Считываем данные с порта A0 и записываем их в переменную soilmoisturepercent = map(soilMoistureValue, AirValue, WaterValue, 0, 100); Serial.print(soilmoisturepercent); // Передача показаний с датчика Serial.println("%"); // Передача символа % delay(250); // Пауза } |
После загрузки скетча, открываем «Мониторинг порта» и смотрим показания влажности в %.

Будут вопросы пишите.

Купить на Aliexpress Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Емкостный датчик влажности почвы
Купить в Самаре и области Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Емкостный датчик влажности почвы v.2
Прошу меня простить. Я в этих делах новенький. Но… зачем одной переменной и вход обозначать, и её же использовать как переменную влажности?
Это походу ошибка, вход должен быть А0
с одним датчиком есть понимание. а если мне нужно двадцать штук подключить, — каждый на отдельный вход подключается, или есть варианты?
Сергей, здравствуйте.
Только подключать каждому выводу, отдельно.