====== Датчик влажности почвы (ёмкостный): инструкция по использованию и примеры ======
[[amp>product/sensor-soil-moisture-capacitive?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Ёмкостный сенсор влажности почвы]] пригодиться для создания систем автоматического полива растений. Датчик не даст засохнуть комнатным цветкам и флоре на огороде.
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive.5.jpg?nolink |}}
===== Принцип работы =====
Ёмкостный датчик выполнен в виде штыря, которым погружается в грунт на расстояние до 80 мм. На штыре в виде дорожек расположены два электрода, 
но в отличии от резистивной модели, электроды ёмкостного сенсора защищены токоизолирующей маской и неподвержены коррозии.
Внутри ёмкостного датчика находится RC-генератор на таймере 555, частота которого зависит от ёмкости между двумя электродами, которые выполняю роль конденсатора. 
Изменение влажности грунта сказывается на его диэлектрических свойствах и меняет ёмкость, что приводит к повышению или понижению выходного сигнала датчика. 
Итоговое напряжение пропорционально степени влажности почвы.
===== Пример работы для Arduino и XOD =====
В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии [[amp>collection/arduino?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Arduino]], например [[amp>product/arduino-uno?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Arduino Uno]].
  * [[amp>page/arduino-ide?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Как начать работу с Arduino?]]
  * [[amp>page/xod-ide?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Как начать работу с XOD?]]
==== Схема устройства ====
Подключите датчик влажности почвы к аналоговому пину ''A0'' платформы Arduino. Для коммуникации понадобятся 
[[amp>product/wire-fm?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|соединительные провода «мама-папа»]].
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-example-arduino.png?nolink |}}
Для быстрой сборки и отладки устройства возьмите плату расширения [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Troyka Shield]], которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|трёхпроводной шлейф «мама-мама»]], который идёт в комплекте с датчиком.
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-example-arduino-troyka-shield.png?nolink |}}
==== Код для Arduino IDE ====
Прошейте платформу Arduino скетчем приведённым ниже.
// любой 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 ====
  - Создайте новый патч
  - Добавьте в патч ноду ''analog-sensor'' и установите ей в инспекторе PORT значение ''A0''.
  - Добавьте ноду ''watch'' и подключите её к ноде ''analog-sensor'' к пину ''VAL''.
  - Прошейте платформу Arduino с режимом отладки.
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-xod-read-data.png?nolink |}}
После загрузки прошивки, в отладочной ноде ''watch'' будут выводиться текущие показания сенсора в диапазоне от 0 до 0,75:
  * 0–0,3: сухая почва;
  * 0,3–0,6: влажная почва;
  * 0,6–0,75: датчик в воде.
===== Пример для Espruino =====
В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии [[amp>collection/espruino?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Espruino]], например [[amp>product/iskra-js?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Iskra JS]].
[[:js:ide|Как начать работу с Espruino?]]
==== Схема устройства ====
Подключите датчик влажности почвы к аналоговому пину ''A0'' платформы Iskra JS. Для коммуникации понадобятся 
[[amp>product/wire-fm?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|соединительные провода «мама-папа»]].
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-example-espruino.png?nolink |}}
Для быстрой сборки и отладки устройства возьмите плату расширения [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Troyka Shield]], которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|трёхпроводной шлейф «мама-мама»]], который идёт в комплекте с датчиком.
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-example-espruino-troyka-shield.png?nolink |}}
==== Исходный код ====
Прошейте платформу Iskra JS скриптом приведённым ниже.
// выводим показания датчика на пине A0 каждые 100 мс
setInterval(function() {
  var valueSensor = analogRead(A0) * 100;
  print('Value sensor: ', Math.round(valueSensor), '%');
}, 100);
После загрузки скрипта, в консоль будут выводиться текущие показания сенсора в диапазоне от 0 до 100%.
  * 0–35%: сухая почва;
  * 35–70%: влажная почва;
  * 70–100%: датчик в воде.
===== Пример для Raspberry Pi =====
В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры [[amp>collection/raspberry-pi?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Raspberry Pi]], например [[amp>product/raspberry-pi-4-model-b-4-gb?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Raspberry Pi 4]].
[[articles:rpi-guide|Подготовьте Raspberry Pi]]
==== Схема устройства ====
К сожалению в компьютере Raspberry Pi нет встроенного аналого-цифрового преобразователя. Используйте плату расширения [[amp>product/raspberry-troyka-cap?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Troyka Cap]], которое добавит малине аналоговые пины.
Подключите датчик влажности почвы к Raspberry Pi через плату расширения [[amp>product/raspberry-troyka-cap?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Troyka Cap]] к ''3'' пину. Для коммуникации используйте [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|трёхпроводной шлейф «мама-мама»]], который идёт в комплекте с датчиком.
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-example-raspberry-pi.png?nolink |}}
==== Программная настройка ====
  - [[articles:rpi-guide|Подготовьте Raspberry Pi]]
  - [[продукты:raspberry-troyka-cap|Настройте плату расширения Troyka Cap]]
==== Исходный код ====
Запустите скрипт на малине приведённым ниже.
# библиотека для работы со временем и задержками
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%.
  * 0–35%: сухая почва;
  * 35–70%: влажная почва;
  * 70–100%: датчик в воде.
===== Элементы платы =====
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-annotation.png?nolink |}}
==== Измерительные электроды ====
Для контакта с почвой на датчике расположены два электрода, которые для проведения измерений необходимо воткнуть в измеряемую среду. Но в отличии от резистивного датчика, электроды скрыты под токоизолирующей маской и защищены от коррозии.
Сами электроды представляют из себя обкладки конденсатора, который при изменении влажности почвы меняет свою ёмкость, что приводит к повышению или понижению выходного сигнала датчика.
==== Генератор импульсов ====
Микросхема {{ :products:sensor-soil-moisture-capacitive:lmc555-datasheet.pdf |LCM555}} используется для генирации импульсов высокой частоты для работы измерительной схемы сенсора.
==== Операционный усилитель MCP6002 ====
По умолчанию выходной сигнал схемы ёмкостного датчика, обратно пропорционален уровню влажности почвы. Для удобства и совместимости с резистивной моделью сенсора, на плате расположен операционный усилитель, который инвертирует аналоговый сигнал. В итоге на выходе датчика сигнал прямо пропорциональный влажности почвы.
==== Регулятор напряжения 3V3 ====
Линейный понижающий регулятор напряжения {{ :products:sensor-soil-moisture-capacitive:tps73033dbvr-datasheet.pdf |TPS73033DBVR}} обеспечивает питание микросхемы 555 и других компонентов сенсора. Диапазон входного напряжения от 3,3 до 5 вольт. Выходное напряжение 3,3 В с максимальным выходным током 200 мА. 
==== Troyka-контакты ====
Датчик подключается к управляющей электронике через три провода.
  * Сигнальный (S) — выходной сигнал сенсора. Напряжение на выходе датчика прямо пропорционально уровню измеренной электропроводности: чем выше влажность почвы, тем выше уровень сигнала на выходе датчика и соответственно наоборот. Максимальное выходное значения 3,3 вольта. Подключите к аналоговому пину микроконтроллера.
  * Питание (V) — соедините с рабочим напряжением микроконтроллера.
  * Земля (G) — соедините с землёй микроконтроллера.
===== Принципиальная и монтажная схемы =====
{{:products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-schematic.png?direct&520 |}}
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-layout-top.png?direct&50|}}
{{ :products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-layout-bottom.png?direct&50|}}
===== Габаритный чертёж =====
[[this>_media/products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-dimensions.pdf|{{:products:sensor-soil-moisture-capacitive:sensor-soil-moisture-capacitive-dimensions.png}}]]
===== Характеристики =====
  * Тип датчика влажности почвы: ёмкостный
  * Напряжение питания: 3,3–5 В
  * Потребляемый ток: до 6 мА
  * Интерфейс: аналоговый сигнал
  * Диапазон выходного сигнала: 0,5–3,3 В
  * Глубина погружения в почву: до 80 мм
  * Габариты: 118×20×7,6 мм
===== Ресурсы =====
  * [[amp>product/sensor-soil-moisture-capacitive?utm_source=man&utm_campaign=sensor-soil-moisture-capacitive&utm_medium=wiki|Датчик влажности почвы (ёмкостный)]] в магазине.
  * [[https://github.com/amperka/hardware-drawings/blob/master/sensor-soil-moisture-capacitive.svg|Векторное изображение датчика]]