Я уже давно посматривал в сторону Zigbee, огромное количество недорогих фабричных устройств, появившихся в последние годы и скорость с которой после появления проекта zigbee2mqtt эта технология стала захватывать умы домашних автоматизаторов, отличные DIY-проекты, которые во многом так же стали драйвером этой популярности, все эти факты просто кричали тебе туда надо.
Почти сразу как я обзавёлся небольшим количеством фабричных и DIY устройств и запустив у себя Zigbee сеть мне захотелось сделать что-то под себя. Родившаяся идея сделать датчик влажности почвы органично вписалась в мои планы, так как я как раз заканчивал тесты другого своего проекта аналогичного датчика на nRF52 c e-ink экраном. Компактные размеры и внешний вид это всё что закладывалось из требований в будущий проект, а заготовка под эти требования у меня, получается, уже была.
▍ Потратив пару часов на переработку проекта на nRF52 железная часть проекта на CC2530 была готова:
Опираясь на опыт (хоть и скромный, так как я не агроном) в повседневном использовании таких датчиков на подоконниках и с учётом параметров потребления у чипов CC2530 в датчике был заложен минимальный функционал, исключительно измерение уровня влажности почвы. Плата датчика получился в размерах 137мм х 20мм, для удобства сборки электронные компоненты располагаются на одной стороне платы, за исключением держателя батарейки, который напаивается на обратную сторону платы. Датчик имеет светодиод, пару кнопок, порт программирования, простую защиту от переполюсовки батарейки на транзисторе. Время сборки датчика при ручной пайке составляет 10-15 минут, схема датчика состоит всего из 10 элементов, включая радиомодуль.
▍ Схема датчика:
Если сборка датчика занимает 10-15 минут, то изготовление корпуса этим, к сожалению, похвастаться не может.
▍ С разработкой модели корпуса особых проблем не было, так как за основу также был взят корпус от проекта датчика влажности почвы на nRF52 c e-ink. Пара штрихов в редакторе и корпус стал немного тоньше и без выреза под экран, ещё парой штрихов корпус был дополнен окном для индикации расположенного на плате светодиода. Сделал сразу два варианта задней крышки под батарейку CR2450 и CR2477. Печать всех трёх деталей корпуса занимает чуть больше часа. На этом лёгкая часть с корпусом заканчивается, далее начинается грустная история, шлифовка, сверловка, заливка жидким УФ полимером индикаторного отверстия под светодиод, полировка. На всё это времени было потрачено около полутора двух часов. Наверное, как самый хороший и правильный вариант изготовления корпуса стоит рассматривать просто печать корпуса на хорошо настроенном принтере, уверен результат будет не хуже.
▍ Основа программной части проекта это популярный проект DIYRUZ Flower. Я определённо не программист, мой багаж — это опыт пары лет программирования в Arduino, который в принципе позволил мне прочитать код проекта и разобраться в нём. Трудным моментом, пожалуй, можно отметить настройку среды для разработки. Но описание проблем с которыми столкнулся, опущу, в этой статье просто приведу пару ссылок на мануалы и статьи, на которые я опирался (ссылка 1, ссылка 2, ссылка 3) и также поблагодарю неравнодушных к чужим проблемам участников чата ZIGDEV, помогавших советами. Изменения, которые я внёс в код оригинального проекта: увеличение интервала чтения сенсора влажности почвы до 1 часа, хранение предыдущих значений влажности почвы для сравнения с новыми значениями и отправки данных в сеть только при изменении значений на 1%. Добавлено чтение внутреннего температурного сенсора CC2530, сравнение, и отправка данных при изменении температуры на 1°С. Конечно, точность температуры с внутреннего температурного сенсора имеет большую погрешность, но в целом даёт понимание об изменении температуры воздуха. Точнее, этот параметр можно откалибровать в конверторе zigbee2mqtt, правда, особой (и не особой) нужды я в этом не увидел.
Так выглядит передача данных об уровне влажности почвы, запрос уровня влажности почвы через модуль Телеграм в Мажордомо
Проблема с которой я столкнулся при тестировании
Об этом решил упомянуть, уверен это кому-то поможет быстрее найти решение, столкнувшись с чем-то похожим. Вопрос, возникший при тестировании датчиков, вызывал непонимание в каком направлении копать, рождал разнообразные теории магического характера :). Суть проблемы была в том, что датчики при слабом сигнале (linkquality<90) начинали слать довольно часто анонсы координатору, кто кого терял было не очень понятно, соответственно, находясь большее время не во сне, датчик активнее терял заряд батареи. Проблема решилась после покупки координатора от Jet Home (CC2652) купленного с оказией по акции.
До этого сеть работала на координаторе ZigBee стик V4 (RF Star CC2652). Думаю здесь дело в прошивке координатора, к сожалению, какая прошивка находится в моём старом, я не знаю, но это та, на которой не подключена индикация светодиодов на плате координатора, в дальнейшем планирую перепрошить старый координатор в роутер.
Пока наблюдались эти проблемы, я даже сделал ещё одну версию платы под другой радиомодуль, единственный его плюс — это +5 единиц кармы к линккволити, но ценник этого модуля полностью обнуляет этот бафф :).
▍ На своём GITHUB для желающих повторить я выложил гербер файлы проекта для заказа плат, список компонентов, схему, модели корпуса, исходники проекта, скомпилированные файлы программы для прошивки радиомодулей.
Устройство уже добавлено в список поддерживаемых на гитхабе проекта zigbee2mqtt, автор проекта очень оперативно реагирует на pull requests.
Немного о грустном в этом направлении, я использую Мажордомо в качестве системы умного дома у себя, для этой системы написан замечательный модуль z2m, к сожалению, мой pull request висит там не рассмотренным уже месяц, так что пока на своём гитхаб я написал инструкцию о том, где необходимо внести изменения чтобы вывод информации о датчике в мажордомо заиграл красками :).
Такая же печальная история с другим проектом — SLS шлюз. Я планировал на даче развернуть сеть Zigbee управляемую через шлюз SLS, протестировать его, погонять свои датчики, поделится своими впечатлениями. Но мне так и не удалось получить обещанную прошивку с поддержкой моего датчика, наверное, забыли, а внешние конверторы в этом проекте не поддерживаются :(.
Если вы как и я, хотите понять, что такое Zigbee, попытаться сделать свои первые DIY Zigbee устройства, то приглашаю вас в чат для разработчиков zigbee девайсов/прошивок ZIGDEVСпасибо за внимание, всем добра!
Если вам интересно всё, что связано с DIY, вы являетесь DIY разработчиком или хотите только начать, вы заинтересованы в использовании DIY девайсов и хотите узнавать первыми о моих проектах, то приглашаю всех в телеграм чат — DIYDEV.
Так же приглашаю читателей обсудить это и любые другие устройства в самый главный Телеграм-чат по Zigbee.
Комментарии (22)
Javian
19.08.2021 12:31Какой частотой производится измерение ёмкости грунта?
Berkseo Автор
19.08.2021 12:46+13МГц
shadrap
19.08.2021 19:39+2а почему 3 Мгц? насколько я понимаю , 3 сузит диапазон измеряемой емкости. Промышленные сенсоры делают на 80Мгц.
А вообще , я играюсь с этой темой уже два года и могу сказать , что все что получается дома в горшках абсолютно разнится с тем что происходит в садовой земле на открытом воздухе. Глубина погружения датчика в почву, как и длина самого датчика влияют на значение выходной емкости, состав почвы влияет очень сильно, мало того в открытом грунте я впервые столкнулся с "залипанием" это когда влажность(емкость) несмотря на реальное наличие водного контента в почве изменяется очень слабо, после "перетыкания" все нормализуется. У основного количества "водочувствительных" растений глубина корнезалегния - 10-15 см , ваш датчик до этой глубины не дотянется, а даже если и дотянется ,, то будет показывать невесть что , потому как это общая емкость пластины и если поверхностный слой почвы увлажнился , емкость "поползла" ,а в реалии к корням ничего не попало или попал минимум влаги.
Очень меня впечатлили нынешние зигби модули , к сожалению , когда я углубился в эту тему , был только есп8266 и пришлось сесть на вифи, но солнечная микропанель и небольшой аккум, делают эту схему вполне рабочей. В общем - суть не в среде передачи, у меня на вифи построен некий прототип меш сети, который позволяет покрыть 20 соток. А вот конструкция самого сенсора - это та еще проблема. И конечно обязательно наличие температуры для расчета компенсационных поправок к емкости, потому как зависимость там очень не линейная.
dcoder_mm
19.08.2021 20:08А раз у вас есть опыт, что вы посоветуете для грубой оценки (высохло/мокрое) для открытого грунта? Такое чтоб можно было перестать волноваться и не перепроверять каждую неделю?
shadrap
19.08.2021 20:28сложный вопрос , я ж написал, пока нет однозначно хорошего решения. я сейчас остановился на этом сенсоре для своего участка и для друзей. i2c soil moisture probe
то что получилось у меня либо хуже , либо гораздо дороже...
этот можно использовать на герметичном кабеле, закапывая его на необходимую глубину. Собственно так у меня и сделано. кабель до сенсора и схема в герметичный коробочке с аккум и солнечной панелью. замер раз в 20 мин. репортит данные на сервер под андроид. вифи интерфейс.
все вроде ничего, но залипания показаний происходят не регулярно., особенно после внесения удобрений ( они вносятся в жидкой фазе). У товарищей ситуация с залипаниями получше, у них почвы более суглинистые а у меня более песчаные да и у них газон , а у меня посадки. Арбуз например может выпить воды в 4 раза больше чем куст помидор...)
отдельная история с калибровкой сенсора для оценки водного контента в почве. в горшке это будут одни цифры в открытом грунте другие.. но если грубо, то можно)
Berkseo Автор
19.08.2021 20:48а почему 3 Мгц?
Потому что столько может pwm.
Вы написали достаточно много текста, мало слов за, больше против. Почему вы решили что датчик не будет работать на улице? Я бы конечно конкретно этот датчик не стал бы устанавливать на улицу, делал для горшков, длинна сенсора оптимальная. Для улицы у меня есть другиедатчикм с сменными сенсорами разной длинны, но схема таже либо на лмс555. Претензий к ним у меня нет, работают второй сезон.
Очень доволен контрукцией корпуса и кстати самим пластиком, второй сезон на солнце, я думал развалится под конец первого сезона.
К сенсору из сегодняшней статьи у меня вообще претензий нет, ..хорошая рабочая лошадка
shadrap
20.08.2021 00:13+1ну что делать, ведь критика двигатель идей. Или вы против критики?)
Схемы на Лм555 это совсем беда по моему опыту и по опыту большого комьюнити , кто занимался разработками схем сенсоров. Они что-то показывают, но это что-то плавает в цифрах на разы. И опять же никто нормальных результатов на улице с ними не получил. по Вашим фото сложно судить об условиях. А что касается графиков, вам не кажется что у вас синхронно меняется влажность с изменением температуры? в реалии так не бывает. а график отражает как раз термонестабильность конструкции.
Berkseo Автор
20.08.2021 03:37Нет, нет, критика вещь полезная. Ваша вполне адекватная. Мне просто в некоторых моментах трудно согласится с выводами, так у меня есть своя статистика, другие подобные проекты с авторами которых я общался. Возможно просто задачи разные, конечно сенсоры такого типа не подходят для применения в агро производстве, но для домашнего применения более чем достаточны. По поводу графика, да естественно там есть температурный дрейф, фильтрацию которого я так и не добавил в тот проект уличного дальнобоя( замеры все собраны, это просто надо добавить в код), там есть только компенсация по напряжению питания. Уточню я говорю про колебания в виде небольшой пилы на пиках в обе стороны, остальное это влажность в почве день/ ночь.
shadrap
20.08.2021 11:16+1да бог с вами, какое агропроизводство!) там очень серьезные сенсоры стоят. Нет у меня обычный дачный участок , ребенок увлекся выращиванием разных культур , вот приходится автоматизировать, поскольку на даче только в выходные. Мне очень симпатизирует ваша система "транспортного уровня".
По поводу графика, боюсь вас разочаровать. Судя по графику (если это не дождь) у вас вечером 15 августа влажность почвы начинает расти, если это полив и если дискретизация часовая, то график должен выглядеть резкими пиками роста. Но в то же время я вижу что температура падает и скорее всего это дрейф. Вообще если измерять водный контент на глубине залегания корней, то влажность не меняется резко. Даже если взять пробу земли руками , видно что намокает только верхний слой , а потом уже в течении часов, влага диффузно опускается в более глубокие слои почвы.
Как вы считаете процент водного контента ?
ColdSUN
19.08.2021 15:30Чем ваш датчик лучше датчика от modkam?
Berkseo Автор
19.08.2021 15:35Предлагаю Вам сформировать собственное мнение, попробуйте и то и то :). Я делал датчик под себя, мне он нравится.
DJONvl
23.08.2021 10:53тем что проще, нет? датчик от jagger был скопирован с китайских на 555 таймере коих на али по 100р вагон и маленькая тележка, был добавлен только е18 модуль для передачи показаний, а уже anonymass предложил выкинуть таймер и использовать шим от модуля зигби, для упрощения конструкции, ну и в конце концов в статье написано откуда ноги растут, исходники открыты.
Jack_Vo
20.08.2021 01:36Мне не понятно зачем было копировать датчик от modkam. Кстати автор железа jagger, а anonymass автор прошивки.
Berkseo Автор
20.08.2021 03:50Поясните дизайн какого места вам показался скопированым? В статье я кстати изложил почему мне захотелось сделать себе такой зигби датчик. Смысл второго предложения из вашего сообщения не понял, я в тексте где то допустил неточность? Кто автор железа и автор программной части проекта diyruz flower я знаю.
Kybb
21.08.2021 23:53Перефразирую вопросы, что были выше и добавлю свои пять копеек.
Смотрите уже есть 2 версии подобного датчика от modkam. И мне как читателю интересно почему Вы решили изобрести свой, который судя по описанию менее функционален. Вы пишите, что указали причину. Это часть, где Вы пробовали заводские и решили сделать своё устройство? Если да, то возможно, если бы Вы добавили абзац про то что знаете про эти проекты, но хотели сами пройти этот путь, то ладно - честь и хвала. Я и сам о таком думал, но лень побеждает, а Вы молодец! Ваши причины не очевидны, вот и вопросы.
Sartorius84
А солнечной батареи не хватает ему? Обычно на огородных гаджетах всяких солнечные стоят.
NickWinter
такая батарейка будет несколько лет работать. Смысл аккум городить?
dcoder_mm
Ну можно поставить не аккум а ионистор/большой конденсатор (сколько там W*s ему надо на передачу пакета?) и допустить что работать оно будет только днем.
Тогда полностью решается проблема обслуживания датчика. Воткнул и забыл. И не надо через 5 лет (быстрее, наверное — зима же еще) менять батарейку. Или менять 100 батареек, если у вас 100 датчиков
DJONvl
проблема в том, что сам датчик сгниет за 5 лет в почве(удобрения, соли и тд и тп), тут либо 4х слойный текстолит(что дорого) либо хорошо заливать лаком, а меняя батарейку периодически- хотя бы будешь видеть его состояние
Sartorius84
Есть подозрение, что относительная влажность воздуха над почвой сильно коррелирует с влажностью самой почвы. Т.е. можно какой-нибудь DHT11 над поверхностью поставить в закрытой от атмосферы камере.
dcoder_mm
Интересный поинт
Но наверняка земля под коробкой будет сильно влажнее чем земля вокруг, особенно в солнечную погоду
А так-же влажность земли сильно меняется с глубиной (буквально 10-15 см)
dcoder_mm
Ну вот, проблема коррозии датчика решается другим текстолитом/лаком, а батарейку все равно менять придется