Сенсор влажности почвы 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: Существует вторая и третья версия данного сенсора.

Запись опубликована в рубрике handmade, Железо с метками EasyEDA, zigbee, Дом, Самоделка, Электроника. Добавьте в закладки постоянную ссылку.

50 комментариев на «Сенсор влажности почвы Zigbee»

  1. Евгений говорит:

    Зачёт!

  2. ruslantag говорит:

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

  3. homefrend говорит:

    Спасибо!

  4. Sinigamiruyk говорит:

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

  5. AvdeevSV говорит:

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

    • Jager говорит:

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

  6. Jackill911 говорит:

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

    • Jager говорит:

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

  7. Георгий Ткаченко говорит:

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

    • Jager говорит:

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

      • Ivos говорит:

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

  8. Владимир говорит:

    А чем то можно заменить LED-SMD_L3.5-W2.8-LS3.6-RD?

  9. Георгий Ткаченко говорит:

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

  10. Sven говорит:

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

  11. Hermann говорит:

    Would you mind to share the Pick & Place File / Component Placement List (CPL) from EasyEDA?

    • Jager говорит:

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

  12. Данил говорит:

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

    • Pitroff говорит:

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

  13. Уведомление: Сенсор влажности почвы Zigbee. Версия №2 | Всё чем хочется поделиться…

  14. Aleksandr Bochegov говорит:

    Для добавления конвертера в 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 не стартует.

  15. Иван говорит:

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

  16. Уведомление: Станция полива растений Zigbee | Всё чем хочется поделиться…

  17. ewas говорит:

    какую прошивку лутше v.1.0.5 или последнюю v.2.0.4?

  18. Уведомление: Сенсор влажности почвы Zigbee. Версия №3 | Всё чем хочется поделиться…

  19. Константин Юрьевич Волков говорит:

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

  20. norkin говорит:

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

    • Jager говорит:

      Подбором резистора в цепи фотодиода.

      • norkin говорит:

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

        • Jager говорит:

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

          • norkin говорит:

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

          • norkin говорит:

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

          • Jager говорит:

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

          • norkin говорит:

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

          • Jager говорит:
            1. Эсли вы не выпаивали резистор на 10к а подключили параллельно на 2к, то общее сопротивление у вас стало чуть более 1,6к 🙂
              Это же не измерительный прибор, а оценочное средство.
            2. Тестером вы там ничего не увидите, питание на сенсор подается только в момент измерения, а это мс.
              DS18b20 по даташиту с питанием 5 вольт. Оригинальные датчики работают и от 3, подделки нет.
  21. Дмитрий С говорит:

    Добрый вечер, немного не понял ситуацию с внешним конвертером, он нужен или нет? Я имею ввиду файлик diyruz_flower.js, стоит Home Assistant и ZtM 1.18.2-1

  22. TarasBY говорит:

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

    • Jager говорит:

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

      • TarasBY говорит:

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

  23. Владислав говорит:

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

    • Jager говорит:

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

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