Hero Image

Датчик влажности почвы POK002: с него всё и началось

Датчик POK002 — второй по номеру, но по факту именно с него началась вся наша линейка устройств. До него был POK001, привод шарового крана на батарейках — но его мы делали скорее для удобства: рабочие приводы на рынке есть, мы просто не хотели тянуть к крану силовой кабель. С POK002 же всё оказалось по-другому: нормального, работающего датчика влажности почвы в разумном ценовом диапазоне найти не удавалось. Это мы, конечно, поняли не сразу — пару сезонов помучились с тем, что продаётся, и только потом сели делать своё.

Итак, мы дачники «выходного дня», и для нас простой периодичный полив по таймеру, который легко найти в садовом магазине, просто не работает. Растения в разных условиях пьют по-разному, то дождь пройдёт, то жара ударит, а нас там нет. Поэтому было сразу понятно, что нужен автоматический полив с обратной связью по влажности почвы. Поскольку велосипед мы изобретать не любим, сперва пошли искать готовое.

Куча вариантов отсеивается сразу — непригодны для уличной эксплуатации. Зато быстро нашёлся датчик от знакомой серии погодных устройств на 433 МГц, такая маленькая зелёная лопаточка. К серии у нас отношение было хорошее — уже давно эксплуатировались и внешние датчики температуры, и полноценная метеостанция. Но с почвой вылезла проблема: у этого датчика резко падала дальность связи. В той же теплице, в тридцати метрах от дома, датчик температуры работает прекрасно, а датчик почвы не добивает. Забегая вперёд — ничего удивительного, близость к земле заметно гасит радиосигнал. Но главное даже не в этом: да, датчик как-то реагировал на влажность, но показания плавали непонятно от чего, от температуры до «звёзд на небе». Настроить пороги для автополива просто не получалось.

Дачный сезон короткий. Не получилось — ну не получилось. К следующему году присмотрели новый датчик: добротный на вид трёхштыревой прибор с ZigBee, умеющий вдобавок мерить температуру почвы. Параллельно закупили DIY-модули для Arduino — хотелось самим пощупать, как это всё устроено. И вот новый сезон — и полная каша. Ничего ни с чем не бьётся, у всех датчиков разные показания. Трёхштыревой ведёт себя странно: при повышении влажности резко прыгает с 50 сразу в 100%. Все поголовно коррелируют с температурой, хотя тогда по неграмотности это казалось нормальным (ведь влажность воздуха тоже зависит от температуры, значит и тут, наверное, так должно быть). Закончилось всё дважды залитым парником и пониманием, что мы вообще ничего не понимаем. И дальше без этого не двинуться.

AI тогда только зарождался, поэтому копали по старинке — через теорию и собственные эксперименты. И самое первое, что поняли, когда наконец сели читать: прежде чем разбираться, как мерять влажность почвы, надо разобраться, что это вообще такое. Потому что — сюрприз — влажность почвы бывает разная.

Бывает абсолютная, бывает относительная. Причём относительная, в отличие от влажности воздуха, — относительная для вашей конкретной почвы. И самое важное: ни один из рассмотренных нами датчиков — включая DIY-модули — вообще не уточнял, что именно он меряет. Как мы позже выяснили, пользователь от такого датчика обычно ждёт чего-то интуитивного: ноль в воздухе, сто процентов в стакане с водой, быстрые большие изменения при поливе, и чтобы цифры соответствовали рекомендациям для растений. А в рекомендациях, как само собой разумеющееся, указывается влажность относительная — ну потому что профессиональные агрономы это изучают в своих вузах, а мы-то нет.

По порядку. Абсолютная влажность почвы — это отношение массы воды к массе сухой почвы. Экспериментально получить почву с заданной абсолютной влажностью несложно: взять известную массу полностью сухой почвы, добавить известное количество воды. Килограмм сухой почвы плюс полкило воды — это 50% абсолютной влажности, и по консистенции уже практически жидкая каша, болото. Тут важный момент: бытовая «сухая» почва на самом деле не сухая. Для получения по-настоящему сухой её нужно дегидрировать — на солнце или в электросушилке. Обычная-то и на ощупь прекрасно удерживает в себе гигроскопическую влагу.

Теперь относительная. Это отношение абсолютной влажности к предельной влагоёмкости — то есть к тому, сколько эта почва физически способна удержать за счёт своей структуры. Грубо: берёте килограмм абсолютно сухой почвы, насыпаете в ёмкость с дренажом, проливаете водой, даёте стечь, взвешиваете. Получилось, допустим, 1.3 кг — значит, предельная влагоёмкость вашей почвы 30% (в абсолютных единицах). У обычных почв этот показатель лежит в пределах 25–50%. Забавный момент: мы привыкли, что влажность больше 100% не бывает — это верно для воздуха, но не для почвы. Торф тоже почва, и у сфагнового торфа предельная влагоёмкость может легко превышать 150% — он впитывает в разы больше собственной сухой массы.

И ещё одна не совсем очевидная деталь, важная для понимания показаний датчика. На открытом участке — в грядке, а не в замкнутом горшке — предельная влагоёмкость работает как жёсткий потолок. Сколько ни лей, выше него не прыгнешь: лишняя вода просто рассасывается в соседние зоны почвы и уходит вглубь. Исключение — сильный дождь, когда на поверхности уже стоят лужи: тогда влажность на короткое время может подскочить выше предела. Но в обычной эксплуатации датчик упирается именно в этот физический потолок, и размах его показаний — от сухости до предельной влагоёмкости, не больше.

А вот теперь — когда в рекомендациях для растений указывают влажность (скажем, 70% для томатов) — речь идёт именно про относительную. Для вашей конкретной почвы с предельной влагоёмкостью 30% это означает 21% абсолютной влажности. Растения, кстати, любят не только пить, но и дышать, они предпочитают, чтобы влага распределялась по объёму почвы, но не заполняла его полностью. Отсюда и «оптимальные 70%» — буквально это значит «в почву ещё можно влить тридцать процентов от того объёма, который она способна в себя принять».

Ух, много букв :) Но без этого дальше никак. Теперь второй вопрос — как влажность мерять.

Самый примитивный способ — через электропроводность почвы по постоянному току. И он же самый ошибочный. Да, проводимость зависит от влажности, но ещё и от сотни других параметров: состава и структуры грунта, содержания солей и удобрений, температуры, окисления электродов. Поэтому резистивный датчик у вас и прыгает от всего подряд. Это тот самый первый датчик со «звёздами на небе» и все DIY-штыревые с Али.

Заметно лучше — ёмкостной метод. Влага меняет диэлектрическую проницаемость почвы (у воды она около 80, у сухой минеральной матрицы — 3-5, у воздуха — 1), и эту разницу можно поймать как изменение ёмкости между двумя электродами, если подать на них переменный ток. В DIY-сообществе ёмкостной метод признан единственно верным. В целом это правильно, но с оговоркой. Главная оговорка — частота.

DIY-датчики обычно работают на довольно низких частотах. Готовые модули с AliExpress (тот же классический v1.2, например) делают это на встроенном генераторе — сотни килогерц, единицы мегагерц. Самоделки прямо на микроконтроллере — ещё ниже, десятки килогерц от силы. И в этом частотном диапазоне всё ещё остаётся заметное влияние солей и структуры почвы — то есть мы ушли от резистива не так далеко, как хотелось бы. Чтобы эти мешающие факторы отсечь, мерять надо в зоне десятков мегагерц. Там практически вся почва становится «прозрачной» для сигнала, и отклик определяется почти исключительно водой. Именно так устроены профессиональные датчики — стоят они при этом от нескольких сотен долларов, строят полноценную частотную характеристику или используют специализированные фазовые микросхемы. На фермерском хозяйстве такие цены, может, и окупаются. А на огороде с теплицей — нет.

Короче, тупик. Ни один из рассмотренных нами датчиков не удовлетворяет: одни меряют в попугаях, другие меряют не ту величину, третьи стоят как крыло самолёта. Что в таком случае делать — правильно, сделать своё :)

Итак, делаем. Меряем на высокой частоте ёмкостным методом. Строить ФЧХ в разумный бюджет нереально, но можно мерять сдвиг фазы — как прямое следствие изменения ёмкостных характеристик почвы. Суть схемы, без подробностей: опорный генератор подаётся в два плеча — одно напрямую, второе через развязку и электроды в почве. Фазовый детектор ловит разность фаз между плечами, RC-интегратор сглаживает её в постоянное напряжение, которое и читает АЦП. Дальше калибровка превращает это напряжение в значение влажности. Как именно всё это собрать недорого и при этом получить стабильный результат — отдельная очень техническая история, скажем только, что у нас получилось.

calibration

Теперь про калибровку, и это самая «лабораторная на подоконнике» часть истории. Чтобы датчик показывал не попугаи, а реальные проценты абсолютной влажности, мы взяли несколько типов почв, полностью дегидрировали их в электросушилке, а затем намешали образцы с заранее известной влажностью — с шагом в пять процентов. Каждый стаканчик обернули плёнкой, чтобы вода не испарялась, и замерили датчиком. Получили калибровочную кривую, усреднили по разным типам почв — и вкатили её в прошивку. Опытная эксплуатация показала, что устройству можно верить. Больше того — самим потом было сложно себя перебороть: показания датчика регулярно расходятся с тем, что кажется при визуальном осмотре грядки. Но если слушаться приборов, а не глаз — растения прекрасно себя чувствуют.

Отдельная история — температура. Физически датчик снимает показание с верхней части одного из металлических штырей — и это, что важно, именно температура почвы на длине штыря. Металл 3 мм в диаметре обладает высокой теплопроводностью и работает как тепловой интегратор: вся длина штыря стремится к тепловому равновесию с окружающей её средой, и любая точка на нём даёт осреднённое значение по этой длине. Тот факт, что мы меряем именно один конец — ну так человек и температуру тела меряет под мышкой, а не в каждой её точке.

Чтобы исключить влияние электроники и батарей на результат, внутри корпуса штырь изолирован от измерительной платы слоем FR4 толщиной 1.6 мм, PETG-монтажом, а сама сборка залита специальной смесью для изоляции от воды. Тепловой путь от батарейного отсека к штырю целенаправленно разорван. С солнечным нагревом сверху борется сам корпус (про его форму — чуть ниже), а для окончательной чистоты результата мы рекомендуем заглублять датчик на 2–3 см ниже уровня земли: тогда верхняя часть штыря физически закрыта слоем почвы, и даже остаточный внешний нагрев уходит.

Чтобы не оставаться на уровне слов, мы это всё ещё и проверили. Собрали тестовый стенд: плоская полоса с припаянными DS18B20 через каждые три сантиметра — от плюс трёх (над поверхностью) до минус тридцати. Закопали стенд вертикально в клубничную грядку, рядом воткнули POK002 и стали записывать.

templevels

Картина получилась ожидаемая: поверхностные сенсоры (−3, 0, +3 см) ночью проваливаются до 3–5°C и утром резко взлетают вслед за воздухом, а уже начиная с −9…−12 см амплитуда сильно сглаживается из-за тепловой инерции почвы. Показания POK002 (на графике линия «Клубника», средняя 8.7°C за период наблюдения) ложатся точно между глубинами −9 см (8.8°C) и −12 см (8.4°C) — то есть ровно там, где и должен сидеть штырь по своей длине. Всё сходится.

tempcheck

Кстати, о нагреве — форма корпуса POK002 тоже появилась не случайно. Первая версия была прозрачным цилиндром, казалось, что выглядит эффектно. Первая же тёплая весна эту иллюзию поправила: под палящим солнцем некоторые AA-батарейки внутри просто вытекали. Стали разбираться — ну конечно, прозрачный корпус пропускает инфракрасное, внутри парник. Сделали несколько тестовых вариантов корпусов разных форм: гладкие цилиндры, капли, и один «рёбристый» — и поставили их рядом в грядке, на солнце, записывая температуру штырей.

5cases 5cases-grath

Картина получилась убедительная. Днём, на солнце, разброс температур между лучшим и худшим корпусом достигал семи градусов. А ночью все пять кривых сходились в одну — и это, кстати, ещё один приятный побочный результат: значит, разница не от кривизны датчиков, а именно от того, насколько корпус защищает от солнечной радиации. Лучший вариант оказался с рёбрами — из него и эволюционировал финальный корпус POK002, по принципу экрана Стивенсона (классика метеорологии: отражающий белый цвет и жалюзийная структура, прямое солнце не греет, воздух внутри свободно циркулирует). Вытянутый корпус, ко всему прочему, попутно поднимает антенну повыше от земли — для радио это тоже полезно. 433 МГц у земли плохо добивал как раз по этой причине, а ZigBee на 2.4 ГГц к близости земли ещё чувствительнее.

Два слова о родственниках POK002.

POK007 появился по запросу: нужны более длинные штыри для замеров на глубине. Оставили ту же архитектуру, но сдвинули рабочую частоту ниже — ближе к нижней границе той «правильной» зоны, про которую мы говорили выше. И получилось честное инженерное подтверждение нашей же теории: на границе зоны влияние солей и структуры почвы уже начинает вылезать, и калибровочная кривая у POK007 вышла заметно хуже, чем у POK002. Поэтому позиционируем его честно: меряет глубже, но менее точно. Tradeoff, а не «новая улучшенная версия».

POK013 — комнатный вариант. Функционально он идентичен POK002: та же физика, та же калибровка, та же точность. Отличается форм-фактором — маленький, одна батарея 14250 вместо двух AAA. И у него нет ни «юбок» экрана Стивенсона, ни вытянутой антенной колонны, потому что в комнате нет ни палящего солнца, ни большой дистанции до шлюза. POK013 как бы изнанкой показывает, что необычная форма POK002/007 — это не дизайнерский каприз, а ответ на конкретные внешние условия. Кстати, текущий корпус POK013 ещё вдвое меньше того, что на фото.

family

В заключение — два момента, которые стоит проговорить отдельно. Это две самые частые претензии, которые мы слышим, и обе заслуживают нормального ответа.

Первая — «а почему у вас показания меняются в каком-то узком диапазоне единиц, пара десятков максимум, а не от нуля до ста, как у нормальных датчиков?». Ответ прост, и он, по сути, уже содержится выше по тексту: мы показываем абсолютную влажность. Она физически не может меняться от нуля до ста — выше предельной влагоёмкости вашей конкретной почвы вода просто не удерживается. Обычно это 25–50%, и рабочий диапазон датчика — от сухости до этого предела. Для тех, кому всё же хочется шкалу от нуля до ста, в приложении можно указать предельную влагоёмкость своей почвы, и датчик будет показывать относительные проценты. Но в основе у него всё равно останется честное физическое измерение.

Есть и практический момент, который тоже сужает размах, но уже по другой причине — установка. В теплице с капельным поливом влажность почвы сильно локальна: между кустов вода доходит плохо, и датчик там покажет колебания в пределах одного-двух процентов даже при интенсивном поливе. В зоне, куда распространяется «пятно полива» и где корни реально пьют воду, картина совершенно другая. Поэтому мы всегда рекомендуем ставить датчик именно туда — это не особенность датчика, а особенность почвы и капельного полива, которую просто нужно учитывать.

Так что да, вам здесь не «пёстрые попугаи», а абсолютная влажность как она есть. Нужны попугаи — на рынке их не счесть.

Вторая претензия — из DIY-сообщества, и она техническая: «раз у вас голые металлические штыри, значит датчик резистивный». Вполне разумная эвристика — в своём контексте. Потому что в DIY-мире, на типичных для него низких рабочих частотах, ёмкостной датчик физически обязан быть с изоляцией — отсюда лопатки под лаком: иначе DC-составляющая через соли почвы всё испортит. Изоляция там — техническая необходимость, а не эстетика. Но на высоких частотах физика другая: штыри работают не как контакты для постоянного тока, а как обкладки конденсатора, между которыми почва играет роль диэлектрика. Сопротивление через соли на таких частотах перестаёт быть доминирующим каналом, а ёмкостная связь через воду — наоборот, становится основной. Больше того, лак на лопатках в нашем частотном диапазоне только мешал бы — добавлял бы паразитную ёмкость последовательно с почвенной и резал бы полезный сигнал. Так что правило «штыри — значит резистив» хорошее, только, как и у любого правила, у него есть область применимости. Мы просто вне этой области.

А если подытожить всю статью — POK002 был нашим первым устройством, где мы столкнулись с тем, что готовых решений, удовлетворяющих нашим запросам, не нашлось, и «сделать своё» перестало быть капризом и стало единственным способом получить то, что нужно. Вот с этой точки и начало разворачиваться всё остальное.