Сенсор влажности почвы Zigbee

С момента появления Mi Flora прошло достаточно много времени, но я так и не решился его приобрести. В первую очередь останавливало то что он bluetooth, а это автоматически создавало проблемы в масштабах дома и вторая причина стоимость, с учетом того что мне необходимо 20-30 штук. Решение, делать самостоятельно. С учетом развития моей домашней zigbee сети за основу был взят проверенный модуль E18-MS1-PCB. Измерение влажности почвы производится емкостным методом, электроды сенсора изолированы от почвы и благодаря этому не подвержены коррозии. Схема измерения влажности почвы типовая для такого рода устройств и в принципе повторяет китайский сенсор, с тем лишь различием что я увеличил частоту генератора до 2 МГц.Так же на плате присутствует опционально возможность распайки датчика освещенности, датчика температуры DS18B20 (работает до напряжения.2.7 вольта), датчика температуры, влажности и атмосферного давления BME280 как отдельным чипом так и готовым модулем.

Плату проектировал в EasyEDA Питать сенсор можно как от двух элементов питания ААА (обратите внимание что существуют внешне одинаковые держатели, но с различной ориентацией полюсов)  так и от одного элемента типа CR2032.Кроме модуля E18-MS1-PCB на этой плате можно использовать и мой универсальный модуль.

Как можно заметить платы на фотографиях слегка отличаются от проектного изображения. Дело в том что это первая версия плат, во вторую была добавлена возможность использования готового модуля BME280 так как с запайкой «голого» чипа справится не каждый. Кроме этого выведен более удобный разъем для прошивки CC2530.Справочно, размер BME280 рядом с резисторами 0805

Для измерения температуры почвы (актуально в теплицах) или воды можно припаять DS18B20 в металлической гильзе

Раз уж на плате есть несколько сенсоров то ее можно использовать в качестве например уличного датчика температуры/влажности, отрезав датчик почвы.Заменив щелочные батарейки например на Ni-MH аккумуляторы есть шанс пережить самые суровые морозы.

Устройство потребляет 1.1мкА в режиме сна и 26мА в момент передачи данных. В процессе тестов устройство проработало в течении 5 суток с интервалом замеров и передачи в 1 минуту, что никак не отразилось на напряжении ААА элементов питания. С учетом того что устройство остается работоспособным при падении напряжения до 1.8 вольт и увеличением интервала замеров до 30 минут элементов питания хватит на несколько лет.

Для этого сенсора @anonymass написал  прошивку с открытым исходным кодом и конвертер для zigbee2mqtt.  В прошивке присутствует компенсация значений уровня влажности и освещенности связанное с падением  напряжения питания. Так же этот сенсор поддерживается в SLS Gateway Выглядит это такВ целом сенсор получился очень чувствительным, при открытом окне если на улице идет дождь то сенсор чувствует как сухая земля впитывает влагу. На графике видно что требуется подобрать резистор в цепи сенсора освещенности.

Этих данных вполне достаточно что бы сигнализировать о необходимости полива, а так же например включать систему капельного полива в теплице. Как мне видится нет необходимости распаивать на каждом сенсоре BME280, так как это избыточно.

Осталось нарисовать и распечатать корпус.

Себестоимость сенсора в материалах (без учета BME280) получилась в районе 300-350р.

Для желающих повторить, файлы для заказа плат, ВОМ.

upd: Существует вторая и третья версия данного сенсора.

56 комментариев для “Сенсор влажности почвы Zigbee

  1. Давно ждал, спасибо. Можете дать ссылку на нужный держатель ААА?

  2. А откуда получилась цена 300-350 рублей при стоимости CC2530 448,47 руб?

  3. А не замерялось за сколько DS18B20 высаживает 2хААА? А одну 2032? Ну или хотя бы ток потребления с ним без всех остальных датчиков.

    1. Очевидно что это сильно зависит от периода опроса. Я 5 суток тестировал сенсор с ds18b20 и bme280 одновременно с интервалом опроса в 1 минуту (более того в прошивке был баг и данные отправлялись дважды) и не совсем свежие два элемента ААА никак не отреагировали, т.е. напряжение на них осталось прежним.

      1. Добрый день. А есть возможность на бесплатной прошивке установить время опроса в минуту? Ну или в 5 — я отслеживаю температуру в комнате, 30 минут слишком много.

  4. Спасибо за великолепное изделие!
    Хотел спросить, указанный в BOM модуль с BME280 — это модуль на 5в. А это значит, в обвязке есть как минимум XC6206P332MR (662K) LDO-понижайка и преобразователь логических уровней. А оно хоть немного но тоже кушать хочет. Почему решили не использовать плату с BME280 на 3.3В, например такую: https://aliexpress.ru/item/32862421810.html (вариант 3.3В)? Да, она больше в размерах, что странно, но обвеса меньше.

    1. Все верно, дело в размерах. Замер и передача длится менее секунды и потери на LDO ничтожны. Если вам перфекционизм не дает покоя можете запаять бме отдельно чипом или выпаять LDO и запаять перемычку.

  5. Не могу найти конденсатор из бом файла CAP-SMD_L7.3-W4.3-R-RDD9. Дайте ссылку, пожалуйста.

    1. Вот например. Он в принципе нужен только если планируете питать сенсор от CR2032

      1. На схеме показано что используется если питать от ААА а не от CR2032. Или я ошибаюс?

  6. Этот чип нужно прошивать cc debugerом или достаточно USB-ttl конвертера?

  7. Может кто уже нарисовал корпус для 3D принтера? Очень прошу поделиться…
    Спасибо заранее…

    1. Нет, это проект для того что бы люди собирали своими руками. Скоро будет новая версия, там еще меньше деталей.

  8. Подскажите плз. где можно купить фотодиод(?) 3528-PTSM D3528 кроме lscs? или может чем нибудь заменить из более доступного на али или у нас?

    1. Брал в этом году в electronshik ru (похоже на ответвление «Терраэлектроника») — продажа от 88 шт по ~13р за штуку, и ждать 14 рабочих дней. Но больше нигде не нашел.

  9. Для добавления конвертера в add-on Hassio zigbee2mqtt необходимо в конвертер добавить строчку
    module.paths.push(require.main.path+ ‘/node_modules’)
    Решение описано тут — https://github.com/danielwelch/hassio-zigbee2mqtt/issues/392
    В конфиге z2m добавить:
    external_converters:
    — diyruz_flower.js
    Иначе z2m не стартует.

  10. Подскажите, если не запаять какой то из сенсоров, то нужно ли пересобирать прошивку? Или готовый hex загрузится и будет работать без, например, датчика освещенности?

  11. датчик BMP280 (без влажности) будет работать?

  12. подскажите пожалуйста, как можно откалибровать датчик освещенности? а то при полной темноте от показывает значения больше 1000

      1. А не могли бы вы ткнуть пальцем (на схеме или на живом устройстве) где этот резистор и какими номиналами стоит пробовать играться? Заранее спасибо!

        1. Зависит от того что вы используете в качестве сенсора, на схеме из этой статьи это R5. А при освещении у вас показания меняются? С тем что в статье и указанным номиналом не может быть 1000 в темноте.

          1. Ага, у меня правда на плате маркировка стоит R3*, но может быть это так 5-ка напечаталась и там сейчас резистор 1002 (это вроде 10 кОм). Да, при освещении показатели меняются, а вот когда наступает ночь, показание на нем 1273 — это минимальное, что я видел и что дается в логах НА. Какой сенсор используется, я к сожалению не знаю, могу только сфоткать.

          2. Подскажите пожалуйста, какими номиналами сопротивлений можно попробовать исправить ситуацию? Или это дело в самом фотодиоде?

          3. Вы еще до сих пор не попробовали другие номиналы? 🙂 Начните с 4,7k

          4. 🙂 попробовал…тут надо сказать все по порядку )))
            1. плата у меня V2, отсюда и обозначение R3* (я просто ссылку на плату V2 нашел не сразу)
            2. выпаивать 10 кОм не стал, а добавил к нему 2 кОм, в итоге получилось 12 кОм и сейчас при закрытии фотодиода, значение его стремиться к 0, что наверное уже лучше. На прямом солнце значения показывает разные, эталона у меня нет, но есть похожий датчик от Xiaomi,так примерно те же числа. Поэтому видимо оставлю 12 кОм, если это правильно и ничему другому не «помешает».
            3. есть непонятность с датчиком температуры, поставил DS18b20, он выдает 25С и все…больше никакие значения от него я добиться не смог, убрал его и что самое интересное — если тыкаться тестером в + и — посадочного места под этот датчик, то там пусто. Сам датчик рабочий, он используется в тестовом проекте.

            1. Эсли вы не выпаивали резистор на 10к а подключили параллельно на 2к, то общее сопротивление у вас стало чуть более 1,6к 🙂
              Это же не измерительный прибор, а оценочное средство.
            2. Тестером вы там ничего не увидите, питание на сенсор подается только в момент измерения, а это мс.
              DS18b20 по даташиту с питанием 5 вольт. Оригинальные датчики работают и от 3, подделки нет.
  13. Добрый вечер, немного не понял ситуацию с внешним конвертером, он нужен или нет? Я имею ввиду файлик diyruz_flower.js, стоит Home Assistant и ZtM 1.18.2-1

  14. Влажность на глубине 5 см. достаточна для фиалки, но совсем не информативна, например, для пальмы. Длина сенсора определена только экономическими соображениями?!

    1. Здравым смыслом. Устройство прекрасно справляется и с фиалкой и с драценой (пальмой). Последнюю как выяснилось поливать надо в 3 раза реже чем фиалки.

      1. Умозаключения без соответствующего опыта (в данном случае с разной длиной сенсора), как правило, это тупиковый путь для познания.
        Кстати, логика основана на миропонимании, а не на Законах мироздания. А следствием из этого — она работает не всегда…
        Спасибо за ответ.

  15. Здравствуйте, прочитал у вас в статье что интервал замеров 30 минут или я не правильно понял, а есть возможность получать данные с меньшим интервалом? Хочу попробовать приспособить этот датчик для измерения температуры воды (DS18B20), интервал слишком большой, а другой альтернативы выносного датчика температуры Zigbee пока не нашёл.

    1. Код прошивки открыт, если знаете С то можете сделать что угодно. Второй вариант собрать прошивку из конфигуратора PTVO с нужным вам интервалом.

        1. Нету ли прошивки чтобы открылась в PTVO, или файла ini для PTVO или PrintScreenов с настройками? Экспериментирую со второй версией датчика, нужен пример, от чего-то оттолкнуться, чтобы покрутить дальше… с нуля по докам не осилить(

      1. Добрый день! Делаем что-то подобное, можно ли с вами проконсультироваться отдельно?

Добавить комментарий