Датчики влажности почвы калибровка. (датчики v1.2 и v2.0)
После тестов неудачного датчика HW 080 я заказал больше датчиков Capacitive soil moisture sensor v2.0. Изначально у меня ещё был версии v1.2. Можно посмотреть про датчики в статье Кибер-горшок и напоминалка полива
Железки
Capacitive soil moisture sensor v1.2 и v2.0 визуально не сильно отличаются. У второй версии есть отверстие на конце... все что я заметил.
Версия 2.0 имеет небольшое отверстие в конце, которое обеспечивает прямой контакт активной (измерительной) области с почвой. Это улучшает чувствительность и точность измерений, поскольку вода и почва напрямую взаимодействуют с электродами, а конструкция при этом остаётся защищённой.
Версия 1.2 не имеет такого отверстия – её полностью герметичный дизайн подразумевает измерение по всей поверхности датчика. Это упрощает конструкцию и обеспечивает надёжность, но может не давать такой же прямой и точной связи с влажной средой, как у v2.0.
Оба можно подключать к 3.3В и 5В, я подключал и настраивал на 3.3В.
Ям https://ya.cc/m/6mmdVf?erid=5jtCeReNx12oajvEZJ5QMR2
Али https://aliclick.shop/r/c/1swb8xkcwt7futpc?erid=2SDnjcYkLSh
Ям https://market.yandex.ru/cc/6tzfTQ?erid=5jtCeReNx12oajvF3xBsVTG
Али https://aliclick.shop/r/c/1sx2vccdvovtkg5s?erid=2SDnjdt4V57
Калибровка датчиков в esphome
Ранее пробовал калибровать помещая в воду =100%, вытаскивал и протирал = 0% по воздуху. Если по воздуху калибровать ок, то калибровка по воде не ок, почему-то забыл что почва никогда не будет такой влажной.
По подключения подробнее тут https://teletype.in/@godisblind/lF3VD7IdVOE
Датчики подключены по питанию 3.3В, я не пробовал подключать на 5В, но думаю это важно для дальнейше калибровки.
Вот код для esphome. soil_moisture_1 это версия 2.0, soil_moisture_2 это версия 1.2
sensor: # Определяет компонент датчика. - platform: adc # Указывает тип датчика как аналогово-цифровой преобразователь (АЦП). Другие варианты зависят от доступных интеграций (например, 'dht' для датчиков DHT, 'bme280' для BME280 и т.д.). pin: 0 # Устанавливает номер GPIO-пина, к которому подключен датчик (например, 0, 1, 2 и т.д., в зависимости от вашей платы ESP). name: "Влажность почвы левый" # Присваивает удобное для пользователя имя датчику, которое отображается в пользовательском интерфейсе Home Assistant. icon: "mdi:water-percent" # Устанавливает иконку для датчика в Home Assistant, используя иконки Material Design (mdi). Множество иконок можно найти на https://pictogrammers.com/library/mdi/. id: soil_moisture_1 # Присваивает уникальный внутренний идентификатор этому датчику, полезный для ссылки на него в других частях вашей конфигурации ESPHome. unit_of_measurement: "%" # Указывает единицу измерения для показаний датчика. Общие варианты включают "°C", "°F", "V", "A", "W", "Wh", "lux", "hPa", "ppm" и т.д. accuracy_decimals: 0 # Устанавливает количество десятичных знаков для отображения значения датчика (например, 0 для целых чисел, 1 для одного десятичного знака). update_interval: 30s # Определяет, как часто датчик должен обновлять свои показания (например, "1s", "5s", "1min", "1h"). attenuation: 12db # Настраивает ослабление входного напряжения для АЦП. Варианты различаются в зависимости от чипа ESP, но распространенные включают '0db', '2.5db', '6db', '11db', '12db' (что является значением по умолчанию для ESP32 и обеспечивает полный диапазон 0-3.3 В). Эта настройка помогает регулировать диапазон входного напряжения для предотвращения насыщения. filters: # Применяет фильтры к необработанным показаниям датчика для их обработки перед отправкой. - calibrate_linear: # Фильтр, который выполняет линейную калибровку необработанных выходных данных датчика. - 2.651 -> 0.0 # Определяет точку калибровки: когда необработанное значение АЦП равно 2.651, оно должно быть сопоставлено с 0.0%. - 1.925 -> 100.0 # Определяет другую точку калибровки: когда необработанное значение АЦП равно 1.925, оно должно быть сопоставлено с 100.0%. - lambda: |- # Фильтр, который применяет пользовательскую лямбда-функцию C++ к значению датчика. return esphome::clamp(x, 0.0f, 100.0f); # Ограничивает значение датчика (x) между 0.0 и 100.0, гарантируя, что оно останется в этом диапазоне. - platform: adc # Указывает тип датчика как аналогово-цифровой преобразователь (АЦП). pin: 1 # Устанавливает номер GPIO-пина, к которому подключен датчик. name: "Влажность почвы правый" # Присваивает удобное для пользователя имя датчику. icon: "mdi:water-percent" # Устанавливает иконку для датчика. id: soil_moisture_2 # Присваивает уникальный внутренний идентификатор этому датчику. unit_of_measurement: "%" # Указывает единицу измерения. accuracy_decimals: 0 # Устанавливает количество десятичных знаков. update_interval: 30s # Определяет, как часто датчик должен обновлять свои показания. attenuation: 12db # Настраивает ослабление входного напряжения для АЦП. filters: # Применяет фильтры к необработанным показаниям датчика. - calibrate_linear: # Фильтр, который выполняет линейную калибровку необработанных выходных данных датчика. - 0.925 -> 100.0 # Определяет точку калибровки: когда необработанное значение АЦП равно 0.925, оно должно быть сопоставлено со 100.0%. - 2.21 -> 0.0 # Определяет другую точку калибровки: когда необработанное значение АЦП равно 2.21, оно должно быть сопоставлено с 0.0%. - lambda: return esphome::clamp(x, 0.0f, 100.0f); # Ограничивает значение датчика (x) между 0.0 и 100.0.phome::clamp(x, 0.0f, 100.0f);
При калибровке датчика цель состоит в том, чтобы зафиксировать определённое напряжение как точку 100% (максимальная влажность) и другое – как 0% (максимальная сухость).
Ниже приведены примеры, показывающие, как изменение опорных точек влияет на итоговый процент влажности при фиксированном измерении. Формула линейной интерполяции для датчика (например, soil_moisture_1, версия 2.0) выглядит так:
% влажности = (V₍сухой₎ – V₍измеренное₎)⁄(V₍сухой₎ – V₍влажный₎) × 100
При базовой калибровке для soil_moisture_1 установлены: Влажный предел: 1.925 В → 100% Сухой предел: 2.651 В → 0%
Пример 1 – Базовый вариант (версия 2.0):
При измерении 2.000 В процент влажности вычисляется как (2.651 В – 2.000 В)⁄(2.651 В – 1.925 В) × 100 ≈ (0.651⁄0.726) × 100 ≈ 89,7%.
Пример 2 – Смещение влажного предела вниз:
Если опорная точка для 100% понизится с 1.925 В до 1.905 В (сухой предел остаётся 2.651 В), то для того же измерения 2.000 В получим (2.651 В – 2.000 В)⁄(2.651 В – 1.905 В) × 100 ≈ (0.651⁄0.746) × 100 ≈ 87,3%. То есть, при том же измерении итоговый процент влажности уменьшается.
Пример 3 – Смещение влажного предела вверх:
Если поднять влажный предел до 1.945 В (сухой остаётся 2.651 В), то при измерении 2.000 В рассчитывается (2.651 В – 2.000 В)⁄(2.651 В – 1.945 В) × 100 ≈ (0.651⁄0.706) × 100 ≈ 92,3%. При таком сдвиге для того же измерения итоговый процент влажности увеличивается.
Пример 4 – Смещение сухого предела:
Если для soil_moisture_1 сухой предел изменить с 2.651 В до 2.680 В (а влажный оставить 1.925 В), то при измерении 2.000 В получится (2.680 В – 2.000 В)⁄(2.680 В – 1.925 В) × 100 ≈ (0.680⁄0.755) × 100 ≈ 90,1%. Получается, что сдвиг сухой границы вверх приводит к повышению вычисляемого процента влажности.
Для soil_moisture_2 (версия 1.2) базовая калибровка такова:
Влажный предел: 0.925 В → 100% /\ Сухой предел: 2.21 В → 0%
Пример 5 – Базовый вариант (версия 1.2):
При измерении 1.200 В вычисляется (2.21 В – 1.200 В)⁄(2.21 В – 0.925 В) × 100 ≈ (1.01⁄1.285) × 100 ≈ 78,6%.
Пример 6 – Повышение влажного предела:
Если изменить влажный предел с 0.925 В на 0.950 В (сухой остаётся 2.21 В), то при 1.200 В получаем (2.21 В – 1.200 В)⁄(2.21 В – 0.950 В) × 100 ≈ (1.01⁄1.26) × 100 ≈ 80,2%.
Пример 7 – Понижение влажного предела:
Если снизить влажный предел до 0.900 В, то при 1.200 В процент влажности будет (2.21 В – 1.200 В)⁄(2.21 В – 0.900 В) × 100 ≈ (1.01⁄1.31) × 100 ≈ 77,1%.
Эти примеры показывают, как тонкая настройка опорных точек (в сотых долях вольта) влияет на итоговые расчёты, позволяя экспериментально подбирать значения для максимально точного отображения реальной влажности почвы.
Какой датчик взять?
Capacitive Soil Moisture Sensor v1.2
Работает на классическом 555‑таймере (первоначально рассчитанном на 5 В, хотя его часто адаптируют под 3,3 В). Обладает широким динамическим диапазоном – примерно 0,96 В при полностью влажной почве и 2,21 В при сухой. Такой размах облегчает калибровку и делает изменения показаний более наглядными. Пользователи ценят простоту настройки и интуитивную интерпретацию результата, но эта версия потребляет больше энергии, что может стать критичным в системах с батарейным питанием.
Capacitive Soil Moisture Sensor v2.0
Оптимизирован для работы на 3,3 В. Новая версия имеет небольшое отверстие на конце, которое обеспечивает прямой контакт измерительной области с почвой, повышая точность и стабильность измерений. Диапазон здесь сужен: 1,925 В для 100% влажности и 2,651 В для 0%, что требует более точной калибровки. Дополнительно, v2.0 обладает сниженным энергопотреблением, что особенно важно для IoT‑приложений и систем, питающихся от батарей, поскольку это обеспечивает более длительный срок службы устройства при стабильной работе.
#сделайсам #обучение #настройка #планирование #esp32
Способ 1 Поддержать автора
Способ 2 https://donate.stream/yoomoney410013774736621
или через криптокошелёк (Только USDT) TCHekdJZFndXpDrHZGuTmqFNcqhWBTTzPr
Связаться со мной. (Консультации, проектирование и обучение)
Новый подход к электрике и дизайну помещений. Некоторые провода уже не нужно тянуть, какие-то решения можно принять после ремонта. Перенести выключатель, запустить кондиционер с телефона - возможно автоматизировать любую рутину.
Мой телеграм канал, там все быстрее обновляется телеграм.
Сайт smart4home.ru и альтернативный Умный дом на любом этапе
Соц сети: RuTube канал Удобный дом / You Tube канал Удобный дом Яндекс Дзен: Удобный дом / InGram
Платформы специалистов: Авито / Профи.ру / Яндекс Услуги https://uslugi.yandex.ru/profile/EgorSmirnov-2294380?from=telek
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Реклама. ООО «ЯНДЕКС», ИНН 7736207543