company_banner

Мультисенсорный беспроводной микро DIY датчик

    DIY, как говорит Википедия, это уже давно субкультура. В этой статье хочу рассказать о своем diy проекте небольшого беспроводного мультисенсорного датчика, и это будет моим небольшом вкладом в данную субкультуру.

    История этого проекта началась с корпуса, это звучит по-дурацки, но именно так этот проект и начался. Корпус был куплен на сайте Алиэкспресс, надо отметить что качество отливки пластика у этого корпуса отличное. После недолгой переписки с продавцом на почту был выслан чертеж и данный проект начался.



    Сам чертеж был очень плохо образмерен и половину измерений для границ, вырезов и технологических отверстий будущей печатной платы пришлось делать с помощью штангенциркуля. Получив все внутренние размеры корпуса стало понятно что радио чип придется «разводить» непосредственно на печатной плате, так как высота от верха печатной платы до внутренней поверхности корпуса составляла 1.8 мм, а минимальная высота готового среднестатистического радио модуля обычно составляет 2 мм (без экрана).




    Для датчика был выбран SoC nRF52 в корпусе QFN48. В этом корпусе в серии nRF52 у Nordic есть три варианта: nRF52810, nRF52811(новое), nRF52832. Параметры чипов: 64 MHz Cortex-M4, 2.4 GHz transceiver, 512/256 KB Flash, 64/32 KB RAM у nRF52832 и 192 KB Flash, 24 KB RAM у nRF52810, nRF52811, чипы мультипротокольные, поддерживают Bluetooth Low Energy, Bluetooth mesh, ESB, ANT, а nRF52811 помимо перечисленного еще и Zigbee и Thread, а так же Bluetooth Direction Finding.


    Сам датчик решил делать мультисенсорным, что бы его можно было использовать под разные задачи. Разводку чипа по этой причине нужно было сделать как можно компактнее, с учетом того что минимальные размеры компонентов не должны быть меньше 0603, что бы устройство можно было бы спаять вручную. После того как чип был разведен на плате занялся подбором сенсоров. Основное на что ориентировался при подборе это размеры корпуса сенсора и возможность пайки сенсора в домашних условиях с минимальным набором оборудования (паяльник и фен).


    Для датчика были выбраны следующие сенсоры: SHT20,SHt21, Si7020, Si7021, HTU21D (сенсор температуры и влажности), все эти сенсоры имеют один корпус и одинаковые выводы ножек, HDC2080(сенсор температуры и влажности) так же имеет аналогичный корпус, как и ранее перечисленные, но имеет дополнительный выход прерывания, более энергоэффективный, BME280(сенсор температуры, влажности и давления), LMT01(сенсор температуры), TMP117(высокоточный сенсор температуры), высокая энергоэффективность, выход прерывания, установка верхних и нижних пределов температур, LIS2DW12(акселерометр) высокая энергоэффективность, один из лучших в своем сегменте или LIS2DH12.



    Так же в первой версии датчика в списке был геркон, но в последующих ревизиях был исключен, так как герконовому датчику размером 1.6 см со стеклянной колбой не хватало места, и пару таких датчиков я расколол устанавливая готовую плату в корпус, так же из-за квадратного вида корпуса и его небольшой высоты устройство не очень подходило на роль магнитного датчика открытия и закрытия.


    Помимо сенсоров на датчике размешены 2 светодиода, один из них rgb размещенный на нижней стороне датчика. Две smd кнопки, одна подключенная к reset, вторая «пользовательская» для реализации каких то сценариев работы датчика. Корпус датчика состоит из трех частей, основной корпус, внутренняя вставка с отверстием удерживающим батарейку и крепящаяся к основному корпусу четырьмя винтами, и нижней крышкой, которая защелкивается в отверстия на внутренней вставке. Так же выведены 4 аналоговый пина, 2 цифровых и так же еще два пина которые могут быть NFC антеной или цифровыми пинами, порт SWD.

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


    Устройство пережило две ревизии, так же ранее на месте сенсора TMP117 был установлен сенсор освещенности MAX44009, который позже был заменен сенсором температуры, оба сенсора имеют одинаковый корпус, но разные выводы на ножках, может быть и зря что был заменен, возможно стоит вернуть.





    Сейчас у меня дома работают 4 таких устройства, два из них это датчики температуры и влажности с сенсорами Si7021(один на nRF52832, второй на nRF52811), один это датчик удара реализованный на акселерометре LIS2DW12(nRF52810) и датчик контроля температуры на сенсоре LMT01(nRF52810).

    Беспроводной датчик работает на батарейке cr2032, потребление во сне составляет 1.8мкА для nRF52810, nRF52811 и 3.7мкА для nRF52832. Потребление в режиме передачи данных 8мА.



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

    Тест работы датчика с системой умного дома можно посмотреть в небольшом видеоролике ниже.


    Проект данного датчика является открытым, все материалы по проекту вы можете получить на моем GitHub.

    Если вам интересно все что связано с DIY, вы являетесть DIY разработчиком или хотите только начать, вам интересно использование DIY девайсов приглашаю всех заинтересованных в телеграм чат — DIYDEV.

    Всем, кто хочет делать устройства, начать строить автоматизацию своего дома, я предлагаю познакомиться с простым в освоении протоколом Mysensors — телеграм-чат MySensors

    А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм-чат Open Thread. (что такое Thread?)

    Спасибо за внимание, всем добра!



    RUVDS.com
    VDS/VPS-хостинг. Скидка 10% по коду HABR

    Комментарии 29

      +1
      у lcsc можно заказать smt монтаж занедорого
      очень интересный проект и идея
        +2
        Я пробовал делать у них пик энд плейс файл для этого проекта, тк впринципе он односторонний. Но там они многое не ставят, основная проблема в том что они могут поставить обвязку чипа но не ставят сам чип, а его потом паять когда вокруг всй уже напаяно так себе затея :(
          +1
          а разве они чипы (которые у них береешь ессесено) не паяют? я вроде видел пару проектов где они чипы тоже кладут нормально
            0

            ни чипы(все три версии)и ни одного из возможных для установки в датчике сенсоров они не смогли предложить, тоесть в общей базе всё есть, купить можно, но для установки в другой базе их нет.

              0
              понял
            +1
            И ничего не «так себе». В похожих ситуациях специально делаю дизайн с учетом того, что нужно место для удобной ручной распайки чипа после smt.
            Распробовал smt в свое время и теперь одна из основных оптимизаций при дизайне — максимально автоматизированный монтаж. И Вам того же желаю.
          0
          Отличное решение! Андрей ты как всегда держишь марку! )))
            +3
            Да, шикарное устройство и очень качественное исполнение!
            • НЛО прилетело и опубликовало эту надпись здесь
                +1

                Это прекрасно! И пост и устройство!

                  +3

                  Для литиевых батарей cr2032 номинальный ток разряда до 4мА. Превышение тока сказывается на доступной ёмкости. При энергопотреблении в 8мА можно рассчитывать на половину возможной ёмкости (100-110 мА*ч). И это становиться печально если батарейку прийдется менять раз в 2-3 месяца.
                  Возможное решение поставить танталовый конденсатор типоразмера А (для напряжения 3в, размер достаточно миниатюрный) в параллель батареи.
                  В остальном проект очень интересный!

                    +1
                    Имею несколько самодельных устройств на чипе cc2530(zigbee), так там при передаче все 20ma потребление, и ничего, за пару лет батарейки не сели. Но тантал да, нужен, на одном из датчиков контроллер начал сбрасываться при подсевшей батарее, добавил тантал. Во всех Xiaomi датчиках танталы установлены.
                    0

                    ну что тут сказать? жаль что вы были невнимательны

                      +1
                      Дожили.
                      Самое трудное для DIY — корпус
                      Все остальное подгоняем под него )))
                        +2

                        надеюсь это ирония, иначе боюсь предположить что было мотивацией для этого поста.

                          +2
                          Горькая ирония
                          Когда же уже китайцы по нашим чертежам будут отливать корпуса за недорого
                        +2
                        Какая-то странная идеология ставить LIS2 и при этом ограничивать себя типоразмером 0603.
                          –1
                          Справедливости ради, 0603 без микроскопа не сложно паять дома. Всё что мельче требует уже другого подхода.
                            0
                            Мой опыт показывает, что LIS2 без микроскопа можно паять только по наитию. Ибо потом хрен посмотришь, нормально он сел на посадочные или нет. Так же, как и nRF, которые у автора стоят — там же сколько шаг, 0.5мм?
                            О! 0.4мм шаг! Я такое без микроскопа не ставлю. Ну да это уже просто ворчание.
                              0
                              QFN 0.4-0.5 мм при ремонте лужу с бугорками припоя, ставлю на флюс-гель, грею феном, прижимаю, чтобы вышли из-под пуза излишки припоя, слегка толкаю пинцетом вбок, чтобы м/сх точно отцентровалась. Под микроскопом 8Х паяльником распределяю вышедшие излишки припоя по торцам выводов м/сх.
                                0
                                Это всё понятно. С микроскопом можно всё что угодно установить. Тут же речь про то, что в разработке используется несколько микросхем с очень мелким шагом, которые без микроскопа будет трудно установить гарантированно. И при этом автор пишет про компоненты 0603, которые можно без всего напаять. Не сходится логика просто, лично у меня.
                                  0

                                  А вот кстати насчет перегрева при пайке.
                                  В даташитах пишут что-то вроде "Lead Temperature (soldering, 10s): +260°C".
                                  Мне вот буквально пару раз всего удавалось за секунд 10-15 сразу прогреть и запаять феном.
                                  В интернетах народ пишет что вообще на 350-360 жарит по пять минут и все ок.
                                  Могут ли тут быть проблемы?

                                    0
                                    Конечно, могут. Только 350-360, про которые народ пишет, это температура воздуха из фена, замеряемая встроенной термопарой, а температура микросхемы и припоя все-таки сильно будет зависеть от времени обдува, расхода воздуха, теплоемкости платы и т.п. Поэтому для контроля температуры микросхемы нужно ставить отдельную термопару рядом с ней, желательно припаяв к плате тугоплавким припоем или приклеив термостойким скотчем и капнув теплопроводной пасты. Или смотреть, когда припой плавиться начнет: начал — значит 183 градуса уже есть. Подержал фен еще несколько секунд — микросхема отцентровалась — готово. Вообще температуру нужно убавлять, если слишком быстро плавится припой — есть ограничения на скорость нагрева.
                                      0

                                      По поводу температуры — я делал несколько измерений температуры на разных режимах работы фена и на разных расстояниях от сопла — в принципе, примерно на 4-5мм от сопла при среднем потоке воздуха показывает фен верно.
                                      Я конечно не настоящий сварщик, и столкнулся вот с чем. Ставишь на фене 280 и греешь. Пока все прогреется и припой начнет плавиться, и потом все ровно встанет (а еще и, возможно, чуть подвигать надо, прижать, и т.д.) — ну никак за 10-20 секунд не успеваешь :( А по ногам тепло же довольно быстро на кристалл дойдет.

                                        0
                                        Фен-то верно может показывать, но интересует температура припоя, платы и микросхемы — они же не нулевую теплоемкость и теплопроводность имеют. Поэтому для прогрева требуется существенное время, особенно, если платы с многочисленными полигонами земли и питания. При температуре воздуха 370 температура корпуса может быть 40, а через 5 секунд 200, если корпус легкий и плата из китайской игрушки, потому и ставят 280, чтобы не перегреть, а если не хватает — добавляют. Если делать по правилам — надо все-же термопары и статистику. Если честно, я термопары применял пару десятков раз от силы, когда «на глазок» было совсем уж нельзя (BGA с шагом 0.4мм, например — хорошо помучались, с подбором профиля в конвекционной печи, переразводкой платы, выставлением профиля на ремонтном центре...).
                            0
                            сколько реальная дальность БТ получается с такой керамикой? Она чем то отличается от обычной текстолитовой версии антенны?
                            0
                            Можно собрать печку из ростера :) пол года назад так и сделал.
                            Теперь детальки расставляю и в печку через 5...6 минут звонок и плату можно доставать :)
                            P\S если надо могу ссылку скинуть работы печи

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое