company_banner

Беспроводная мини погодная станция с e-paper экраном на батарейках

    Приветствую всех читателей Habr! В своей сегодняшней статье хочу поделиться с вами своим новым устройством – датчиком температуры, влажности и давления с функцией предсказания погоды. Датчик работает на микроконтроллерах nRF52. Данный проект это логическое продолжение этого проекта. В новом датчике используется дисплей на электронных чернилах размером 2.9 дюймов. В датчике установлен сенсор BME280, так же есть место под установку датчиков SI7021, HTU21D. Работает от батареек CR2450. Может передавать данные в системы Умного Дома, так же может работать в режиме “без сети”.




    Для этого проекта был выбрана модель дисплея на электронных чернилах GDEH029A1 размером экрана 2.9 дюймов. Примерно через 3 месяца тестирования на смену этому дисплею производители выпустили на рынок новую модель GDEM029T94(V2 по версии Waveshare).
    Старую модель стало трудно купить, поэтому пришлось добавлять поддержку нового дисплея в проект.



    Характеристики дисплеев:
    Разрешение: 296х128
    Диапазон рабочих температур: 0 — 50 C
    Потребление в рабочем режиме: 3мА
    Потребление в режиме глубокого сна: 1мкА
    Минимальное время обновления экрана: 0.3 сек.

    Разрабатывал сразу несколько вариантов плат под несколько вариантов радио модулей nRF52 от разных производителей. Остановился на модулях MINEW MS50SFA2 (nRF52832) и EBYTE E73 2G4M08S1C (nRF52840), E73 2G4M08S1E (nRF52833).



    Модуль MINEW MS50SFA2 имеет небольшие размеры, но не очень большое количество выведенных ножек. В моем проекте были задействованы все доступные ножки MS50SFA2. У модулей E73 ножек на много больше, поэтому впоследствии была разработана расширенная версия датчика. В раcширеной версии добавлен активный биззер, датчик освещенности MAX44009, заменены батарейки с CR2450 на ААА.

    Схема датчика



    Корпус датчика печатается на FDM 3D принтере, что бы добиться более или менее приличного вида, корпус после печати необходимо отшлифовать наждачной бумагой и отполировать. Так как у датчика есть светодиод, а в расширенной версии датчик освещенности, то в корпусе необходимо было сделать два сквозных отверстия, после сверления отверстий, они были залиты полимерной смолой для SLA 3D принтера и засвечены УФ лампой, после этого отполированы.





    ПО датчика было сделано для работы в сети MySENSORS, это открытый проект домашней автоматизации. К слову, датчик будет нормально работать и без сети. На данный момент в проекте поддерживается работа с двумя моделями дисплеев GDEH029A1, GDEM029T94. Возможно позднее будет добавлена поддержка трехцветных дисплеев.

    Опишу немного функционал устройства. Устройство при подаче питания осуществляет попытку поиска сети, если сеть не найдена, то устройство переходит в основной режим работы без работы в сети (не шлет данные), но периодически делает короткие запросы на поиск сети(~раз в час). Интервал опроса сенсора один раз в минуту, обновление экрана и отправка данных(если сеть доступна) происходит при изменении данных температуры на 0.5C, влажности на 1%, давления на 1 единицу, уровня освещенности на 1 люкс, изменения прогноза по погоде. Интервал опроса батарейки задается пользователем в интервале от 1 часа до 24 часов, по умолчанию опрос один раз в 6 часов.

    Датчик может настраиваться внешними командами из интерфейса УД. Для этого необходимо активировать нужный пункт меню “конфигурация датчика” нажатием кнопки “меню”. После активации режима конфигурации датчик перейдет в режим прослушивания на 20 секунд. В этот интервал необходимо отправить команду. Внешними командами можно настроить интервал проверки батарейки, изменить вывод информации на экран в инверсии, отключить индикацию светодиода, отключить звуковой сигнал.

    Описание алгоритма расчета прогноза погоды — (NXP Application Note 3914 | John B. Young)

    При работе в радиосети датчик передает данные:
    • Температура,
    • Влажность,
    • Атмосферное давление,
    • Уровень освещенности,
    • Прогноз погоды,
    • Уровень сигнала,
    • Уровень заряда батарейки,
    • Причина перезагрузки






    Для компиляции нужной версии ПО необходимо сконфигурировать файл MyConfig.h.
    В файле задаются:
    • Язык вывода информации (RU,ENG)
    • Режим оптимизации питания при передаче данных
    • Подключение датчика освещенности
    • Подключение активного биззера
    • Скорость передачи данных
    • Версия подключенного дисплея


    //#define EINK_V1
    #define DCPOWER
    #define LIGHTSENS
    #define BIZZER
    #define LANG_EN
    //#define MY_DEBUG
    //#define MY_PASSIVE_NODE
    //#define MY_NODE_ID 101
    #define MY_RADIO_NRF5_ESB
    #define MY_NRF5_ESB_MODE (NRF5_1MBPS)
    //#define MY_NRF5_ESB_MODE (NRF5_250KBPS)
    #define MY_RESET_REASON_TEXT
    #define SN "EFEKTA WeatherStation 290"
    #define SV "0.45"
    


    Потребление датчика в режиме сна составляет в среднем 3мкА (на nRF52840 больше), в режиме считывания сенсора и обновления экрана 5мА(среднее), в режиме передачи данных 8мА(среднее), время передачи одного сообщения 10мc (идеальные условия).

    Проект датчика в варианте с модулем MINEW MS50SFA2 может быть легко повторен. Из сложных моментов можно выделить пайку разъема под шлейф экрана. Как это сделать проще рекомендую посмотреть мое короткое видео по пайке разъема. Так же датчик можно приобрести готовым, тем самым поддержав мои открытые разработки.

    Видео пайки разъема



    Фото датчика

















    Видео с демонстрацией работы датчика



    GitHub проекта — github.com/smartboxchannel/

    В файле readme находится инструкция по установке и настройке среды для редактирования и компиляции ПО для датчика.

    В завершении сделаю небольшой фото анонс проектов с которыми в скором времени поделюсь и о которых раскажу.

    Новые проекты на стадии тестирования
    Датчик качества воздуха на батарейках с e-paper экраном(аналогов не нашел)









    Мини датчик влажности почвы с e-paper дисплеем(аналогов не нашел)










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

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

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

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

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

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

      +8

      наконец-то реально годный контент на хабре
      хотелось бы ещё увидеть цены и ссылки на используемое

        +10
        ещё интересна возможность приобретения готового изделия…
        +1
        Круть.

        Если сделать из этого погодную станцию и заставить работать с выносным датчиком, а также сделать трэнды (история) + оно сможет работать без сети и показывать outside/inside — это был-бы киллер-продукт. Ибо на рынке нормальных погодных станция с нашими единицами измерения и нормальным функционалом в принципе нет (Ea2 разве что, но там все куцо).

        Я бы купил.
          +3
          Вот тоже не понял — если это датчик с экраном — то зачем?
          А, если это станция без выносного датчика — то как?
            0
            Есть такое.

            Но судя по тому, что на некоторых фотках присутствует «качество воздуха» и показатель освещения, это, видимо, задумывалось только как inside-датчик с экраном.
              +1
              я, конечно, извиняюсь, нехорошо под таким постом подобное писать, но вот с этим предлагаемое сможет ли конкурировать?
              Ответ, впрочем, очевиден: нужен выносной датчик, тогда и с радиомодулями наиграешься по самое нехочу.
                0
                я подумал и решил что мне в основном интересно знать качество воздуха:
                1. температура
                2. влажность
                3. углекислый газ
                4. количество пыли (можно по отдельности PM1.0, PM2.5 и PM10 )
                5. давление
                6. выносные датчики
                7. графики по часам, дням, неделям, месяцам и годам
                Хотя подозреваю, что такой девайс будет стоить весьма не слабых денег даже для комнатных условий.
                Возможно проще будет набор датчиков для компа, а на нем уже реализовать всю функциональность. Все равно он круглосуточно работает
            0
            присоединяюсь, очень нужен внешний датчик
              0

              в данном проекте классическим способом это труднореализуемо, так как устройство батарейное. Из более менее вариантов могут подойти пожалуй несколько. 1. запрос информации по внешней температуре в УД. 2. синхронизация по времени этого девайса и другого батарейного температурника за окном.

                0
                Почему? Bme280 жрет очень мало
                  0

                  bme280 мало, а радио в режиме прослушивания много.

                    0
                    Зачем ему что-то прослушивать?
                    Вы реально думаете, что вы единственный в России, кто что-то делает на MYS? У меня bme280 на MYS живет уже три года на одной батарейке и, наверное, ещё столько же проживет.
                      0
                      1. при чем здесь майсенсор? физические законы еще не отменялись, что бы получить данные с другого устройства(за окном) нужно слушать. варианты как это обычно делается по другому я описал. Я же не виноват что вы не отдуплили и почему то начали писать про bme280. ....(facepalm). Сколько у меня живут я писать вам не буду, а то еще какая побочка проявится у вас.
                  0
                  в данном проекте классическим способом это труднореализуемо, так как устройство батарейное

                  Не очень понял, причем тут питание. Вы про потребление базой?

                  Реализуется очень просто:
                  1. раз в 5 минут ЦП просыпается и включает приемнику питание, затем уходит в сон
                  2. при приеме приемником синхроимпульса или начала передачи, он подает прерывание, что началась передача, и будет ЦП
                  3. ЦП считывает данные, отключает питание у приемника, обновляет дисплей (если нужно) и уходит в сон

                  Прикинуть потребление сможете, думаю.

                  Ну и приемник на 433Mhz в режиме приема потребляет по доке емнип 0.2uA, его вообще можно не гасить. Это если связь с датчиком делать не по WiFi, ибо WiFi для выносного датчика — бред.

                  База с орегноновским датчиком на 4 AAA живет таким способом от одного комплекта батареек 1.5-2 года минимум.
              +1

              Ещё бы уровень CO опционально добавить.

                +1

                сенсоры качества воздуха( особенно CO2) и батарейные девайсы это отдельная печальная тема

                  0
                  В статье Надёжина (который обычно про диодные лампы пишет, надеюсь, не ошибся с написанием фамилии по памяти) было про датчики: дешёвые меряют совсем не то, а те, что меряют именно СО2 — дороги и всё равно нуждаются в регулярном обслуживании, «продувке».
                    0
                    Вроде бы двухкамерные, в одной из камер которых образец — самокалибруются.
                    Но они очень дороги и не экономичны.
                0

                Приборк крутой и красивый, но не очень понятна область применения. Для какой-то домашней метеостанции удобнее несколько датчиков без экрана, которые можно установить в различные места интереса, а также на балкон/улицу/итп. А отображение данных либо на любом подключенным в сеть устройстве (компьютер, телефон), либо на отдельном устройстве отображения в сети, с тем же e-ink (уж больно приятный текст)

                  0
                  Как раз делаю для себя похожее устройство, с epaper, wifi и датчиком давления. Уже не молодой, слежу за давлением, чтоб знать, когда себя плохо чувствовать :), плюс синхронизация времени.
                    0
                    А где почитать про датчики артериального давления (если я вас правильно понял)?
                      0
                      Я про атмосферное давление, артериальное меряю медицинскими приборами.
                  +1
                  Вот всё вроде хорошо, но мне кажется немного размыто целевое назначение этого устройства.
                  Мы видим миниатюрное, носимое, батарейное устройство. Возможно каким-нибудь туристам такое нужно. Но зачем в нём нужна работа с сетью? Поддержка каких-то умных домов? Может стоило ещё упростить (удешевить) устройство?
                  Если же это устройство для дома, то какой смысл в маленьком e-paper экране в принципе? Маленький, без света ничего не видно. Не устройство отображения, а так — индикатор какой-то (ещё и дорогой наверное). Плюс с питанием от сети можно и другие датчики добавить.
                    +2
                    Выступлю в защиту: это не устройство для серии и продаж. Человек поигрался с радиомодулями, сумел запустить погодную программу, увязать всё это вместе — и сделать не отвратным на вид. Уже хорошо же.
                    0
                    Заглянул в исходники.
                    Код вывода цифр («EINK290_1.ino») точно вручную написан?
                    Уж очень много повторяющихся участков кода, слабо отличающихся друг от друга.
                      0

                      Мне понравился аппарат!
                      Думаю за 1.5-2 тр я бы купил (естественно законченное устройство)

                        0
                        Из готовых есть часы от Xiaomi
                          0

                          Почитал отзывы и прослезился
                          А так очень симпатичны, спасибо за наводку!

                            0
                            это часы с термометром, но никак не метеостанция. Как просто часы на батарейках они просто отличны, адекватных альтернатив на e-ink сейчас просто нет.
                        0
                        Шикарный вид!
                        • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Все красиво конечно..., но «за боротом» использовать нельзя — BME280 сдохнет быстро на улице и у него предел 80% влажности, если не ошибаюсь. Прогноз погоды интересно, но предсказывать осадки только по одному лишь падению давления это совсем «так-себе».
                            Я для своих целей выбрал DPS368 Infineon для давления и для влажности HDC2080 TI. Последний имеет внутренний нагревательный элемент и может осушать себя после работы в близи точки росы. Оба герметичны. Погодный алгоритм, а мне нужны были прежде всего осадки, что б лишний раз не поливать, рассчитывается по трем параметрам — CRHUDA — это пересечение графика падения давления по отношению к точке росы и ростом графика влажности воздуха.
                            Почти аналогичному графику падения давления, только более близко к классическому Замбретти и тем что пользуются пилоты — это разница между температурой воздуха и точкой росы. Все три в совокупности дают около 85-95% точности осадков. Но конечно время от и до это несколько часов.
                            И вот что я не понимаю совсем — если она вайрлесс — зачем там экран? Согласен экран очень няшный и не ест совсем, но смысл… все равно все с телефонами ходят.
                              +1

                              Кстати, прогноз погоды по 2 датчикам в одном месте vs прогноз от gismeteo, где используется 100500 наземных станций и информация из спутников — который точнее?

                                0
                                все зависит от целей… в моем прогнозе, например, я опираюсь только на локальную погоду в данный момент времени «до минус час» от осадков. Мне не нужно делать прогноз на неделю для покрытия в несколько тысяч квадратных километров, следовательно я не использую данные по циклонам, атмосферным фронтам, векторам их направлений, ветрам и тп. У меня локальная задача, включить полив или нет- это экономия пресной воды, а кое-где это существенный и дорогой ресурс. ))
                                Второй и очень важный момент — устройство не подключено к интернет и не зависит от него, пастит данные на локальный сервер.
                                Конечно важным делом в прогнозе является ветер…, но пока его контроль не реализован.
                                  0

                                  Полив с точностью до часа включать не обязательно. Обычно поливают утром или вечером — и тут достаточно прогноза осадков на ближайшие сутки.
                                  Но всё же, пробовали сравнить свой прогноз, gismeteo и реальную погоду?

                                    0
                                    полив включается в определенное время с утра, как правило связано с восходом солнца, до этого времени нужно принять решение. чем ближе час Х тем точнее решение, т.к. весовой коэффициент влажности воздуха и точки росы начинает играть определяющую роль.
                                    Гисметео обычно врет отчаянно в моем регионе (мало ориентиров), я точность %% прогноза считал по фактической погоде))
                                    но должен признать что от места очень многое зависит и настроившись как то на один регион, в другом можно получить полный фуфел…
                                    Гисметео полезен архивом погоды, по которому можно алгоритмы оттачивать.
                                0
                                Почему бме280 в герметичном корпусе должен сдохнуть?
                                  0
                                  ну корпус у него не может быть герметичным, иначе бы он не измерял влажность.
                                  Не могу ответить «почему», но факт — он дохнет, 3 сенсора у меня и полно у людей в интернете, почитайте обзоры. Бошевский родной держится подольше, китайский умирает за два месяца. Видимо он и не предназначен для работы во внешних условиях, об этом косвенно говорит диапазон измеряемой влажности.
                                    0
                                    Для влажности/давления можно сделать отверстие 0.1 мм
                                      0
                                      Кстати, а какие сенсоры кроме герметичного ds18b20 можно тогда использовать?
                                        0
                                        не понимаю где вы хотите отверстие делать… в боше есть отверстие

                                        сенсоров много всяких, я для себя выбрал см пост выше
                                  0

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

                                    +1

                                    Замыкать кнопкой конденсатор, это несовершенное техническое решение.

                                      0

                                      Давно терзаюсь мыслями о том, можно ли считать корочение конденсатора кнопкой за "очистку контакта" и в каком диапазоне напряжений и ёмкостей?

                                        +1

                                        У кнопки предназначение такое — замыкать контакты и пропускать ток. Если есть сомнения, их нужно подтверждать или опровергнуть цифрами из справочника.

                                          0

                                          Сомнения просты, КМК. Конденсатор — это почти идеальный источник напряжения.

                                            0

                                            Поскольку ещё ни один стабилизатор напряжения не сгорел из-за наличия конденсаторов в цепи питания (это же готовое КЗ в момент включения) — не все так идеально.

                                              0

                                              Чуть более чем все современные стабилизаторы имеют ограничение выходного тока.

                                                0

                                                Мостовой_выпрямитель_с_трансформатором_на_входе_и_конденсатором_на_выходе_из_журнала_радио_за_1970_год.png

                                        0
                                        Как быстро деградирует eink, интересно?
                                          +1
                                          На термометре-гигрометре Xiaomi за год отвалился один сегмент цифры.
                                          +3
                                          Делал подобный девайс с отображение погоды на базе модуля lilygo ttgo. Если кому интересно на thingiverse есть корпус и ссылка на реп.
                                          image
                                            0
                                            Выглядит офигенно круто!
                                            Лучше, чем многие «фирменные» погодные станции.
                                            Плюс в этой интеграция с умным домом, можно управлять отоплением, в зависимости от погоды, увлажнителем воздуха, или кондиционером.
                                              0
                                              Отличная штука!
                                              Немножко не понял по описанию, выводится ли динамика изменения давления? Ведь в предсказании осадков по барометру главное не давление, а его изменение. Недаром на механических барометрах всегда есть механическая стрелка, которую нужно выровнять по стрелке датчика для последующего отслеживания направления изменения показаний.
                                                0

                                                Сейчас этого нет, но я это добавлю в новом интерфейсе.

                                                  0
                                                  Я не понял, что вы хотели этим сказать. Но ЕСП-шка, как минимум, прожорливее сабжа. Кстати, автор статьи почему-то не упомянул самого главного для батарейного устройства — время жизни от батареек.

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

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