Погодная станция с беспроводным датчиком температуры и влажности
Автор: Сергей Безруков (aka Ser60), sergeilb60@mail.ru Возможно, название «погодная станция» слишком громкое для этого устройства, поскольку оно предназначено лишь для измерения температуры и относительной влажности воздуха на улице и атмосферного давления. Показания отображаются попеременно на графическом ЖКИ с периодом 5 сек. Температура и влажность измеряется сенсором, находящимся во внешнем передающем модуле, а датчик давления установлен на приёмном конце в базовой станции. Мне нужно было устройство именно с описанным выше функционалом, поскольку часы, обычно встраиваемые в метеостанции, у нас уже есть, и не одни, и в каждой комнате дома установлены измерители внутренней температуры и влажности. Как показала практика эксплуатации моих предыдущих моделей метеостанций, я практически никогда не просматриваю историю изменения температуры и влажности на улице, которая и так легко предсказуема, но часто поглядываю на график изменения давления. Временной аспект последнего можно оценить по часовым рискам в верхней и нижней частях графика, перемещаемого справа налево с течением времени, и дополняемого новыми показаниями на правом конце каждые 15 минут. Таким образом, на дисплее отображаются показания давления за последние 25 часов. Но самое главное, мне нужен был большой дисплей, который я мог-бы читать без очков на значительном расстоянии, и при этом выглядящий достаточно эстетично. Эти требования реализованы путём применения больших и жирных шрифтов в 64 пикселя и высотой 2 см, легко читаемых с нескольких метров даже при умеренном освещении и без подсветки дисплея. Модуль передатчика Передатчик собран на основе микросхемы Si4060 фирмы Silicon Labs. Его выходной каскад сконфигурирован на работу в классе Е с излучаемой мощностью +10 dBm (10 мВт), что в 2 раза ниже максимальной для этой модели, но более чем достаточной для уверенного приёма сигналов на расстоянии как минимум 100м. Помимо нашего дома передатчик обслуживает подобное описанному ниже приёмное устройство в доме соседей. В указанном режиме максимальное потребление передатчика составляет примерно 19 мА. Однако, измерение и передача параметров среды производится за очень короткое время и с периодом в одну минуту, поэтому среднее токопотребление всей схемы за период не превышает 10 мкА. Схема увеличивается при кликании. Передача данных происходит на частоте 903 мгц в режиме модуляции 2-FSK с разносом частот ±5.15 кгц относительно центральной и на скорости 1.2 kBd. Информационная часть передаваемого пакета состоит из 5 байт: байт длины пакета, идентификатор передатчика, байт значения температуры, байт со значением влажности, и байт с напряжением батареи. Последнее измеряется встроенным в микросхему передатчика АЦП, передается раз в 10 минут, и символически отображается на дисплее между показаниями температуры и влажности. К передаваемым данным передатчик автоматически добавляет 2-бaйтную преамбулу, 2-байтное синхрослово, а также 2 байта контрольной суммы на основе полинома CRC-16. Передатчик работает на укороченную whip-антенну ANT-916-JJB-RA фирмы Linx и управляется микроконтроллером IC2 по интерфейсу SPI. Работа с подобным передатчиком и его конфигурирование подробно описаны в [1]. Микроконтроллер принадлежит семейству Kinetis KL0 фирмы Freescale [2]. Это семейство ARM-CM0+ контроллеров ориентировано на работу с низким токопотреблением. В придачу к этому МК работает в экономных режимax VLPR/VLPS (Very Low Power Run/Sleep) при тактировании ядра от внутреннего RC-генератора на частотe 4 мгц. Пробуждение системы раз в минуту осуществляется таймером LPTMR0, тактируемым от часового кристалла Q2. Сенсор температуры и влажности IC3 (подробнее про него см. в [3]) смонтирован на отдельной маленькой плате, установленной на отрезках провода на высоте 1 см над основной платой. Эти проводники также используются для передачи питания и данных. Такое конструктивное решение позволяет при необходимости легко адаптировать устройство под другую модель I2C сенсора, а также уменьшает подогрев последнего через корпус и плату. Питание схемы производится от литиевой батареи Xeno XL-050F напряжением 3.6В, ёмкостью 1200 мАч, и работоспособной в температурном диапазоне от -55 до 85 °C. Ранее разработанный передатчик для другой погодной станции (на чипе CC1101) работает от такой батареи уже более двух лет, пережив две суровые зимы. В боковых стенках верхней части корпуса напротив сенсора просверлены отверстия, улучшающие его теплообмен с внешней средой. Горизонтальная перегородка над батареей предназначена для защиты её от влаги, проникающей через отверстия корпуса. Однако, при моём способе установки передатчика на улице её можно и не ставить. После распайки деталей плата с обоих сторон покрыта водоскойким лаком. Короб передатчика помещён внутрь отрезка белой 4-дюймовой PVC трубы длиной 30 см. Труба препятствует проникновению атмосферных осадков внутрь короба, а также защищает его от нагрева солнцем. Труба установлена в преимущественно теневом месте участка. В нижней части трубы просверлено несколько отверстий для стока воды. Такую конструкцию я уже использовал ранее в другом подобном проекте и она зарекомендовала себя с положительной стороны.
Приёмная станция Радиотракт приёмника выполнен на основе микросхемы Si4362 фирмы Silicon Labs. Приём производится на такую-же антенну, как и в передатчике. Факт получения пакета данных и успешной проверки его контрольной суммы индицируется приёмником установкой низкого уровня на выводе IRQ. МК читает принятые данные по интерфейсу SPI и посылает их через интерфейс I2C на дисплей. Помимо этого каждые 15 минут МК подаёт команду в сенсор давления IC3 для производства нового измерения. Подробнее о работе с таким сенсором см. в [4]. В активном режиме МК тактируется на частоте 24 мгц от внутреннего генератора с FLL. Эта схема также увеличивается при кликании. В устройстве применён графический LCD COG дисплей фирмы Electronic Assembly с разрешением 240×64 точек, установленный на трёх разъёмах (female socket) на высоте 8 мм над платой. Дисплей сконфигурирован на получение данных через интерфейс I2C, но также может работать и с интерфейсом SPI. Управление дисплеем производится аппаратным модулем I2C1 в МК на тактовой частоте 1.2 мгц, благодаря чему обновление дисплея происходит буквально в мгновение ока. Сенсор давления также поддерживает оба интерфейса, но подключён к МК через интерфейс I2C и управляется вторым аппаратным модулем I2C0 в МК на частоте 150 кгц. Использование разных каналов I2C объясняется тем, что максимальная скорость тактирования сенсора давления составляет 400 кгц и он не всегда ведет себя адекватно при подключении к быстрому I2C каналу связи с дисплеем. Можно, конечно, было-бы поместить дисплей, приёмник, и сенсор на общую шину SPI, но я решил использовать различные интерфейсы и, соответственно, выводы корпуса МК для связи с периферией в целях упрощения разводки платы.
Питание базовой станции производится от литиевого аккумулятора ёмкостью 950 мАч, расположенного между дисплеем и платой, и заряжаемого микросхемoй IC5 от внешнего сетевого адаптера с выходным напряжением 5В. Ток зарядки батареи ограничен величиной 100 мА и процесс зарядки индицируется светодиодом. Применение аккумулятора позволяет сохранить в памяти RAM МК историю изменения атмосфетного давления при пропадании сетевого напряжения. Приёмник переводится в активный режим перед началом предполагаемого приёма данных и выключается сразу по их получению. Токопотребление базовой станции определяется микросхемой приёмника и составляет около 14 мА во время приёма данных и около 0.7 мА в паузах, включая портебление ЖКИ. Это даёт возможность прибору работать автономно на протяжении около двух недель. Прибор не содержит элементов защиты батареи от глубокого разряда помимо выключателя питания, т.к. сетевое напряжение в наших краях пропадает не более 1-2 раза в год и то на несколько минут. Программа МК отлажена в среде Keil µVision, версия 5.12. Размер загрузочных модулей программ передатчика и приёмника составляет примерно 2Kb и 7.6Kb, соответственно, так что при необходимости можно использовать модели МК с меньшим объёмом флеш-памяти. Исходные тексты программ и файлы плат для Eagle прилагаются. Литература
Файлы: Все вопросы в Форум.
Эти статьи вам тоже могут пригодиться: |
|
||||||||||||||||||
|
||||