Приветствую всех читателей Mysku :)! Сегодня хочу поделится с вами моим новым проектом — беспроводным датчиком влажности почвы, который построен на основе всем известного модуля влажности почвы с алиэкспрес. Новый датчик это логическое продолжение первого моего DIY проекта на эту тему. Но в новой реализации это уже не ардуино модуль, а законченный девайс с своим собственным корпусом. Итак, каша из топора, часть вторая! :)
Китайский модуль измерения влажности почвы построен на таймере 555. Метод измерения — емкостной. Для моего проекта нужна была версия модуля с установленным стабилизатором напряжения XC6206P332 на 3.3В, который в дальнейшем придется удалить с платы модуля. Дело в том что в таких версиях используемся модификация таймера TLC555 с нижним порогом по питанию в 2В. В версиях без стабилизатора используются таймеры NE555 c нижним порогом по питанию в 5В. Но в любом случае что проще купить для повторения этого проекта дело повторяющего.
В первом варианте выпаиваем стабилизатор напряжения, во втором меняем таймер например на такой — LMC555 (даташит) работающий даже от 1.5В. Для беспроводного модуля к китайскому датчику влажности почвы я выбрал радиомодуль от EBYTE E73C на котором установлен чип nRF52840. Аргументом стала цена модуля и имеющееся количество данных модулей у меня в запасах.
Беспроводной модуль получился очень простой, RGB светодиод, пара кнопок, полевой транзистор, батарейка. Собрать такой девайс сможет даже самый неопытный начинающий паяльщик. На датчике влажности помимо удаления стабилизатора напряжения так же необходимо выпаять разъем и впаять на его место штырьевую вилку 3P, шаг 2.54 мм.
Размеры платы получились немного меньше чем в первом проекте — 42х29мм, определялись размером держателя батарейки.
Корпус был напечатан на моем бытовом SLA принтере ANYCUBIC. Время печати деталей порядка пары часов. Послебующая пост обработка заняла около получаса. Стоимость израсходованной полимерной смолы ~100р.
Потребление в режиме сна — 4.7мкА, в режиме передачи 8мА. Интервал замеров изменяемый, шаг 1 минута. Время измерения 50мс (5 замеров в тестовой программе), потребление во время измерения ~ 1 мА. Так же производятся измерение температуры чипа, измерение уровня заряда батарейки. Передача данных на контролер УД посредством сети Mysensors, передача данных на контролер УД посредством сети Zigbee.
Код тестовых программ находится на моем Github
Пример работы в сети Mysensors и УД Мажордомо
Пример работы в сети ZigBee и УД Мажордомо
Код настройки конвертора в модуле zigbee2mqtt для датчика влажности (пока неуверен что это верное решение).
{
zigbeeModel: ['nrf52840.ru_PWS'],
model: 'nrf52840.ru_PWS',
vendor: 'nrf52840.ru',
description: 'Plant watering sensor',
supports: 'humidity',
fromZigbee: [fz.humidity2, fz.battery_PWS],
toZigbee: [],
meta: {configureKey: 1},
configure: async (device, coordinatorEndpoint) => {
const endpoint = device.getEndpoint(10);
await bind(endpoint, coordinatorEndpoint, ['msRelativeHumidity', 'genPowerCfg']);
await configureReporting.humidity(endpoint);
await configureReporting.batteryVoltage(endpoint);
},
},
Тестовую прошивку написал один из участников нашего DIY сообщества —
Lenz, вот его
GIthub.
Стоимость компонентов которые пришлось добавить к китайскому влагомеру составила порядка 400-500 рублей. На мой взгляд вполне неплохо.
Дальнейшие планы на этот проект. Хочется заменить МК на что то более простое, например на nRF52810 или nRF52811, но всё будет упиратся в цену, скорее всего придется отказаться от радиомодулей и сделать просто на чипе. Возможно подумаю добавить зуммер, вполне вероятно стабилизатор питания, так как сейчас необходимо учитывать напряжение питания при замере. Довести до стабильного состояния Zigbee версию, сделать BLE версию, сделать мобильное приложение-показометр. Вообщем точно будет что-то еще.
Github этого проекта.
Если вас заинтересовал данный проект, предлагаю зайти в
группу телеграмм, там всегда будет оказана помощь в освоении протокола Майсенсорс, Zigbee, BLE на nRF5, помогут освоить программирование nRF52 в Ардуино ИДЕ и не только в ней.
я тоже про Кат не знал
А для чего непременно нужно знать влажность почвы, да еще дистанционно?
Причем мониторить ее непрерывно.
Уж простите недалекого в этой области за вопрос.
И должен же кто-то в телеграмм присылать «долей воды в бочку полива»
Ибо во время полива и десяток минут после него (до равномерного промокания почвы/субстрата) показания будут бессмысленны.
Как полезное развитие, вижу возможность добавить подключение нескольких датчиков влажности к одному контроллеру. Обычно несколько горшков стоят на 1 подоконнике, потому пихать в каждый горшок устройство за ~500 руб расточительно, лучше запихнуть только датчик влажности, он дешевле))
В этом обзоре уже похоже на список участвий в проекте.
Он писал код, вот ссылка на мой проект, вот ссылка на видео, вот ссылка на группу. наш проект хорош, присоединяйтесь
Там и продажа и цены.
Мой опыт (частью которого я тут даже делился) говорит, что надо смотреть на этот датчик и на его показания после пары-тройки лет реальной эксплуатации.
Вы ведь не рассказали про алгоритм измерения влажности. Что физически происходит при замерах этой схемой на электродах.
А практика подсказывает: всё это зазеленеет, корродирует и покрывается окислами. И показания будут ± погода на Марсе, потому что и ёмкость и сопротивление начнут неиллюзорно «плыть». Проходили.
Выглядит красиво для продажи.
В реальном поле на гектарах — не только дорого и неэффективно, но ещё и не надо.
Но сам этот датчик, конечно, правильную влажность может показать только случайно :)
Даже с электродами во внутреннем слое и прочими «покрытиями лаком».
Почему?
— стоит прочитать про MSL для электронных компонентов
— поинтересоваться, почему микросхемы в корпусах BGA (у которых кристалл разварен на стеклотекстолите) нельзя долгое время держать вне герметичной упаковки перед пайкой в печке.
Ответ очень простой — практически все материалы для плат поглощают влагу из воздуха. В частности все армированные материалы имеют капилляры по волокнам армирующего компонента. В данном случае стеклоткани. Уже через несколько месяцев работы физические свойства такого датчика изменятся настолько, что он может показывать и 200% влажности.
Единственный вариант — поместить датчик в полностью влагонепроницаемую оболочку, причём ещё и устойчивую к механическим повреждениям. Но тогда его чувствительность упадёт настолько, что «таймер 555» там приктически ничего не увидит.
Это с влагопоглощением стеклотекстолита в районе 0.5%? Ну-ну…
Другой вопрос, что этот датчик просто от окружающей температуры может гулять на десятки процентов. Плюс я не знаю на какой частоте он работает, может быть на паре мегагерц, тогда он еще и на кислотность и соленость почвы будет хорошо реагировать. Но вот текстолит тут совершенно ни при чем. Особенно мимо Ваш прогноз «всё это зазеленеет, корродирует и покрывается окислами».
Потому их и калибруют индивидуально, как минимум по трем точкам.
А теперь берём количество воды в почве (если это не болото конечно), расстояние от электрода до внутренней «поглощённой» воды и расстояния от электрода до воды в почве. Потом вычисляем влияние каждой на параметры сенсора. Я всё это вычислял когда-то — порядки одинаковые и влияние поглощённой влаги до +100% к показаниям может дать.
А это да. Тут разброс может быть ещё до сотни процентов от изменения, причём в любую сторону.
Это не я отвечал. Как раз у меня статистика другая — из тысячи похожих датчиков слабо корродирует максимум один-три. Правда несколько другие условия и обмеряется совсем не почва. Но вот проблемы влагопоглощения стояли в полный рост.
неделю колдовал с таким же но без проводным,
Методика
1. прокалить почву- влажность 0% — вес запомнили(с датчиком)
2. пролить почву до протекания снизу горшочка — влажность 100% — вес запомнили(с датчиком)
3. в сухую почву наливаем водички увеличивая влажность например на 10%( раз в час) до влажности 100%
4. измеряем датчиком контролируя влажность по весу.
5. даем высохнуть(хотя бы до 20%) — контролируя влажность повесу.
6. строим графики в обе стороны
7. у меня была погрешность более 100% при высыхании почвы, а у ВАС?