![]() |
![]() |
|||||||||||||||||||||
Модернизация погодной станции
Автор: Сергей Безруков (akaSer60) На протяжении какого времени живут и используются Ваши любительские поделки? У кого-то это менее года до отправки в «ящик», у кого-то может почти всю жизнь. Я рассчитываю свои устройства на службу порядка нескольких лет, т.к. технология к тому времени наверняка изменится, что предоставит повод к их усовершенствованию. Конечно, предела для усовершенствования не существует даже на прежней элементной базе, но со времени публикации моей станции здесь прошло уже 10 лет. И хотя она всё ещё безотказно работает, узким её местом оказалось наличие сетевого адаптера у приёмной станции. После изменения места её установки дома свисающий сетевой провод оказался слишком заметным и неудобным. Единственным решением стало разработка нового аналогичного устройства с полностью автономным питанием. Здесь сразу хочу оговориться, поскольку в той старой конструкции был задействован аккумулятор, от которого устройство могло работать пару недель до подзарядки. Но пара недель и даже месяцев — это не срок. Я не люблю возиться с подзарядкой батарей и предпочитаю устройства, способные работать автономно от одного источника как минимум несколько лет. Как и прежде, мне нужен был большой дисплей, что оказалось главной проблемой из-за их высокого токопотребления. Перепробовав несколько вариантов, я остановился на технологии e-Paper. Переработке подверглись как внешний беспроводный датчик, так и сама приёмная станция. Поскольку речь о станции уже зашла, давайте с неё и начнём. Приёмная станция Внешний вид станции показан ниже. Я решил отказаться от графика изменения давления, поскольку практически он оказался неиспользуемым, и показывать давление, и влажность/температуру на улице сразу на одном экране.
Применение дисплея e-Paper позволило получить высокий контраст изображения и длительную работу от двух батарей типоразмера АА. Однако, такие дисплеи не лишены недостатков. Один из них – ограниченный ресурс, выражающийся в числе изменений содержимого дисплея порядка лишь одного миллиона раз. В связи с этим обновление дисплея производится с периодом 6 минут, что должно выработать его ресурс в течение 10–11 лет и для меня этого вполне достаточно. Хотя дисплей поддерживает обновление информации только на его части, рекомендуется делать его полное обновление после нескольких частичных. Я решил обновлять содержимое всего дисплея каждый раз, для чего в дисплей из памяти МК засылается буфер (bitmap) объёмом 5Кб. Как считается, e-Paper дисплеи потребляют энергию лишь в момент обновления дисплея, но на практике это не совсем так. Дело в том, что на плате модуля дисплея имеется драйвер и некая электроника, потребляющая несколько сотен микроампер между обновлениями, так что питание дисплея на период между обновлениями следует полностью отключать. Это также касается паразитной её запитки через линии интерфейса. В программе необходимо предусмотреть установку лог. нуля на всех линиях интерфейса данных по окончании вывода информации. Наконец, e-Paper дисплеи чувствительны к напряжению питания, которое при работе от батарей следует стабилизировать. Всё это учтено в схеме ниже. Коммутация питания дисплея осуществляется микросхемой IC2. По сравнению с ключами на дискретных транзисторах в ней имеется встроенный узел автоматического разряда конденсаторов в выходных цепях при отключении, что во многих случаях (но не в нашем) существенно. Это копеечная микросхема, решил попробовать её в первый раз, очень удобно, буду делать это впредь. Состояние ключа определяется управляющим напряжением на выводе 3, а входное напряжение подаётся на вывод 1 с DC/DC конвертера IC3, повышающего напряжение батарей до 3.3В. Конвертер включается сигналом на выводе 3 только на время вывода информации на дисплей. В остальное время напряжение на его выходе 5 равно напряжению батареи, а потребление IC2 и IC3 в неактивном состоянии находится в наноамперном диапазоне. Напряжения двух AA батарей, даже с учётом их разряда, вполне достаточно для функционирования схемы в период между обновлениями дисплея, поскольку минимальное рабочее напряжение IC1, IC4, и IC5 не менее 1.7В. Сердцем устройства является Bluetooth модуль IC1 китайской фирмы RF-star, основанный на чипе семейства EFR32BG22 фирмы Silicon Labs. Модуль обеспечивает приём данных от внешнего радио-датчика и управляет всеми процессами в схеме. Измерение атмосферного давления производится сенсором IC5, о котором более подробно рассказано в моей отдельной статье. Этот сенсор способен также измерять относительную влажность окружающего воздуха (дома), что в данном устройстве не используется и зарезервировано для возможного расширения функционала устройства в будущем. Далее, необходимо учесть, что изменение информации на дисплеях e-Paper происходит не мгновенно, а спустя примерно 3–5 секунд после загрузки новых данных, в течение которых на дисплее видно мерцание в соответствии с алгоритмом работы его драйвера. В это время нельзя отключать питание дисплея во избежание его необратимого повреждения. Всё это приводит к дополнительному расходу энергии батареи, особенно в ночное время, когда на дисплей всё равно никто не смотрит. В данном устройстве помимо отключения питания дисплея принято несколько дополнительных мер по экономии энергии. Так, перед каждым обновлением информации производится проверка уровня освещённости датчиком IC4. При недостаточном его уровне ниже некоего порога вывод новой информации на дисплей не производится. В отличии от дискретных фотоэлементов подобные датчики откалиброваны на фабрике, обеспечивают более надёжные, предсказуемые, и повторяемые от экземпляра к экземпляру измерения, и выдают уровень освещённости непосредственно в люксах, что упрощает их использование. Датчик освещённости установлен на той же I2C шине, что и датчик давления. Для минимизации потребления датчиков в интервале между обновлениями дисплея их питание отключается с вывода 21 модуля. Более того, перед каждым обновлением дисплея производится сравнение новых данных с отображаемыми в данный момент на дисплее и при их совпадении обновление дисплея не производится. Все эти меры помимо экономии энергии батарей также существенно продлевают ресурс дисплея, как минимум удваивая его и, соответственно, уменьшают среднее токопотребление за сутки также в 2 и более раз. Поскольку в тёмное время дисплей не обновляется, то если пользователь зажёг бы свет, то увидел бы неактуальные данные. Для устранения описанной неурядицы при падении уровня освещённости ниже порога производится стирание всех данных с дисплея, оставляя его полностью белым. Однако, приём новых данных от внешнего датчика производится каждые 6 минут даже при выключенном дисплее, оставляя в памяти МК актуальные данные. Для форсированного отображения текущего атмосферного давления и последних принятых данных от внешнего датчика по желанию пользователя служит кнопка K1. При нажатии на неё происходит принудительное включение дисплея и отображение актуальной информации на нём вне зависимости от уровня освещённости. Этот функционал полезен, например, ночью, если кому-то вдруг захочется посмотреть температуру на улице. Также приняты меры по устранению коллизий между форсированными и плановыми обновлениями дисплея в светлое время. Всеми этими процессами управляет конечный автомат в программе, и я отсылаю читателей за подробностями к прилагаемому исходному коду. Здесь я лишь кратко словами обрисовал проблемы, с которыми столкнулся, и методы их решения. В программе приёмной станции реализован Bluetooth сканер, который производит поиск внешнего датчика по его MAC адресу с периодом в 6 минут. Поскольку внешний датчик передаёт в эфир последние измеренные данные с периодом 5 секунд, сканеру может потребоваться, соответственно, от 0 до 5 секунд на его поиск. После приёма данных от внешнего датчика ещё 3–5 секунд требуется для обновления дисплея. В результате после описанных выше мер среднее потребление за период обновления (в светлое время) варьируется от 20 до 43 мкА. В тёмное время этот параметр примерно в 2 раза меньше. В промежутках между обновлениями дисплея токопотребление схемы составляет пару микроампер. При ёмкости AA батареи 2500 мАч получаем время непрерывной работы приёмной станции на протяжении не менее 5 лет даже с учётом её саморазряда. Внешний беспроводный датчик В старой версии датчика погодной станции использовался передатчик в диапазоне 915 МГц, который включался раз в минуту для измерения и передачи новых данных температуры и влажности на улице. В новой версии я использовал Bluetooth протокол и датчик, выполненный как маяк (beacon) с периодом вещания 5 секунд в диапазоне 2.4 ГГц при мощности 0 dBm и длиной информационного пакета 4 байта. У радио-тракта в этом МК имеется 2 оконечных усилителя, в проекте задействован самый маломощный, следовательно самый экономичный. С выбранными параметрами радио-тракта обеспечивается надёжная связь с приёмной станцией на расстоянии в несколько десятков метров (на открытой местности), что в моих условиях более чем достаточно. Новые данные измеряются сенсором с периодом 1 мин, как и в старом проекте. При этом радио-тракт датчика работает лишь на передачу, что уменьшает токопотребление. Датчик выполнен по следующей схеме. Моей целью было питать датчик лишь от одной пальчиковой батарейки типоразмера ААА. Поскольку её напряжения недостаточно для работы МК и сенсора, нужен повышающий бустер. Передатчик выполнен на относительно новой модели МК семейства BG27, уже содержащей бустер в составе чипа, так что ему требуется только внешний дроссель L3 и конденсаторы C7 и C9. Ориентированный на микропотребление бустер повышает напряжение батареи до 1.8В для питания ядра МК и его передатчика и предназначен в основном только для этого. Однако, от него можно с успехом питать также внешние малопотребляющие цепи, например сенсор IC2. Потребление этого сенсора за период измерения настолько мало, что я не счёл нужным коммутировать его питание. Измеренное среднее потребление от батареи (по цепи 1.5В!) не превышает 7–8 мкА, что меньше её тока саморазряда. К сожалению, промышленностью (пока?) не выпускаются модули на основе этого чипа, так что пришлось собрать модуль самому, добавив в схему необходимую обвязку на дискретных компонентах. Это прежде всего касается чип-антенны Q1 и выходного фильтра C1-C3 и L1-L2. Для удобства разводки платы (но не её ручного монтажа) в фильтре применены пассивные детали в корпусах 0201, как и на отладочных платах фирмы. Остальные пассивные элементы в корпусах размера как минимум 0402 и выше.
Детали схемы распаяны на 2-сторонней плате толщиной 0.8мм. Все соединения реализованы на её верхней стороне, тыльная сторона использована в качестве общего провода. Датчик размещён в корпусе с размерами 61×36×25мм. В противоположных стенках корпуса просверлены отверстия для циркуляции воздуха. Отверстия прикрыты изнутри мелкой пластиковой сеткой для предотвращения попадания в корпус насекомых, а также частично пыли. Файлы плат для системы Eagle, а также полные исходные коды проектов прилагаются. Заключение В заключении покажу пример ещё одной погодной станции, которую собрал для семьи сына несколько лет назад. Собственно, сама «станция» состоит лишь из беспроводного датчика на основе BME280, управляемого Bluetooth модулем BGM13. В качестве приёмного устройства используется смартфон, который современное поколение всегда носит в кармане. Специально разработанное Android приложение соединяется за один клик с датчиком и моментально показывает текущие параметры окружающей среды.
Датчик питается от двух батарей типоразмера АА и установлен в корпус подходящих размеров. Подробности опускаю, поскольку это уже совсем другая история.
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |