![]() |
![]() |
|||||||||||||||
Метеодатчик с возможностью передачи показаний
Автор: GoldenAndy В рамках реализации часов с TFT-дисплеем потребовался внешний метеодатчик. Сначала хотелось обойтись DS18B20 на трех проводках... Но в результате бурных обсуждений метеодатчик получил Bosch-евский модуль измерения температуры-влажности-давления, радиоканал передачи данных и перерос в самостоятельное устройство, о котором и хочется промяукать. Метеодатчик поддерживает один термометр DS18B20 и один модуль BME280 (температура, влажность, давление) / BMP280 (температура, давление). Измеренные показания (2 температуры, влажность и давление), а так же напряжение питания батарейки могут выводиться на ЖК-дисплей "от Nokia5110" и каждую минуту могут отправляться по последовательному каналу (UART 9600 8,n,1). Последовательный канал может быть как проводной, так и с использованием UART-радиомодуля JDY-40. Данный датчик - попытка сделать нечто универсальное. Т.е. датчик может работать автономно, только отображая показания на дисплее, может работать без дисплея, только отправляя данные по радио- или проводному каналу. Ну или быть "всё-в-одном". Внешний вид Авторское исполнение. Данный вариант исполнения предусматривает размещение датчика под навесом, с защитой от прямых солнечных лучей и где невозможно попадание брызг дождя. (Увы, пока без декоративной наклейки) Что датчик умеет:
Схема электрическая принципиальная.
Метеодатчик построен на базе "народного" контроллера ATMega8A. Контроллер тактируется от 4 МГц кварцевого резонатора. Применение кварца обусловлено необходимостью стабильной частоты для передачи данных по UART. Для остальных компонентов, по большому счету, стабильная частота не нужна. Обмен по i2c с BME/BMP280 абсолютно не зависит от стабильности тактовой частоты контроллера. Обмен с DS18B20 по 1Wire более критичен к стабильности частоты, но с гораздо большими допусками, нежели нестабильность внутреннего RC-генератора микроконтроллера. Соответственно, если датчик предусматривается автономным, без передачи данных - кварц можно не ставить, а сконфигурировать контроллер на тактирование от внутреннего генератора 4 МГц и время ожидания после старта - 4мс. Микроконтроллер опрашивает датчики раз в минуту. Все остальное время МК находится в режиме сна. В качестве таймера, периодически пробуждающего МК ото сна использован "собачий таймер" - WatchDog. Поскольку максимальная выдержка этого таймера - около 2 секунд, контроллер подсчитывает число пробуждений. Каждое тридцатое пробуждение запускается цикл опроса датчиков, вывод информации на дисплей и отправка данных по последовательному каналу, после чего контроллер опять уходит в глубокий сон. При промежуточных пробуждениях контроллер сразу уходит в сон. Промежуточное пробуждение длится около 7 мс, ток потребления при этом в районе 5 мА. В режиме сна потребление без дисплея - около 15 мкА, с дисплеем - 150-250 мкА (потребление дисплея зависит от настроенной контрастности и числа включеных пикселей). Питание датчика - через клеммы Х1, Х2. Программирование МК осуществляется через контактные площадки JP1. К данным площадкам необходимо припаяться на время программирования (поскольку операция эта одноразовая). При использовании передачи данных Тх по проводам (выход типа Открытый сток) или через JDY-40 необходимо установить элементы R1,R3,R4,Q1,Q2. Встроенный LDO IC2 управляется по входу EN, в дежурном режиме он выключен. Подключение ВМЕ Применимы датчики ВМЕ280 (или ВМР280 - тогда влажность не будет отображаться) в виде китайских модулей как в 4-контактном (со встроенным LDO), так и в 6-контактном исполнении (без встроенного LDO). В случае применения ВМЕ со встроенным LDO, что бы этот LDO не жрал батарею, земля ВМЕшки заводится на транзистор Q3 - для этого перемычку SJ4 необходимо поставить в положение 1-2. Подключение DS18B20 Подключение датчика температуры выполнено по классической трехпроводной схеме. Единственное ограничение - согласно даташиту, DS18B20 работоспособен при питании от 3 до 5 вольт. Подключение трансивера JDY-40 Трансивер JDY-40 - несложный удлинитель uart, его можно конфигурировать на разные каналы, разную скорость передачи данных, разные режимы работы. Можно из пары таких модулей, соответствующим образом их сконфигурировав, получить "Пульт ДУ" на 8 команд без применения других контроллеров и т.д. Для применения в нашем датчике используется конфигурация модуля по умолчанию, режим удлинителя UART, 9600 8N1. При использовании трансивера, в дополнение к R1,R3,R4,Q1,Q2 необходимо так же установить элементы R8,R14,Q4,C11. Если использование трансивера не предполагается - данные элементы не устанавливаются. При питании трансивера JDY-40 через LDO (при питании модуля напряжением выше 3.6 вольта) следует учесть, что JDE-40 "просыпается" после включения питания где то через 320 мс после подачи питания. Соответственно, в случае использования питания выше 3.6вольт (и, соответственно, использовании набортного LDO, который отключается и включается по сигналу от МК) для использования JDE-40 необходима прошивка с увеличенным временем питания трансивера перед началом отправки данных. Установка JDY-40. Он ставится на обратной стороне, антенная часть выходит за пределы платы и дисплея. Светодиод LED1 светится в моменты, когда производятся измерения температуры, давления , влажности и идет отправка данных. Кнопки SW1, SW2 регулируют контрастность дисплея*, так же при помощи этих кнопок производится первоначальная калибровка внутреннего источника опорного напряжения. *Зависит от дисплея, см.ниже Кнопки применены вот такие. Кнопки регулировки контрастности продублированы контактными площадками на обратной стороне платы. Дисплей. Применен "народный" дисплей от Nokia 3310/5110. Такие дисплеи китайцы массово продают уже установленные на переходные платы. Удобнее применять дисплей на "красной" плате - у него контактные отверстия сверху и снизу. Подключение дисплея к плате модуля осуществляется через нижний ряд отверстий. Так же на плате модуля предусмотрены три пары отверстий для крепления дисплея за два крайних контактных отверстия верхнего ряда. Почему три пары ? У меня было три разных китайских дисплея "от Нокии" - и у каждого был свой размер печатной платы. Подсветка дисплея. В авторском варианте кнопки контраста и кнопка подсветки выведены через толкатели на боковые стенки корпуса. Пример работы подсветки Измерение напряжения питания, калибровка измерителя. Напряжение питания проверяется раз в минуту, после включения питания передатчика, но до начала передачи данных, т.е. батарея нагружается передатчиком в режиме ожидания. Измерение напряжения питания реализовано с использованием внутреннего ИОН контроллера. Поскольку напряжение данного ИОН может меняться от экземпляра к экземпляру МК, то реализована программная калибровка.
Подбор элементов и перемычек С учетом того, что датчик можно собрать в нескольких конфигурациях, в табличку сведены типовые примеры конфигураций и перечни устанавливаемых элементов для этих конфигураций. Эскизы печатной платы Печатная плата разработана в двух версиях - с оптимизацией под ЛУТ и с оптимизацией под заказ на производстве. Герберы для ЛУТ Конфигурация фьюзов Для использования МК с кварцем 4 МГц конфигурация фьюзов следующая Для использования внутреннего RC-генератора на 4 МГц: Отправка данных по UART Данные об измеренных величинах отправляются в текстовом виде. Каждая величина - в отдельной строке. Температуры от датчиков 1 и 2, значение - два знака до и два после десятичного разделителя, возможны отрицательные значения Давление - целое число миллиметров ртутного столба, три знака Влажность - целое значение процентов, от одного до трех знаков Напряжение питания датчика, вольты, один знак до и один знак после десятичного разделителя. Если установлено 2 датчика - DS18B20 и ВМЕ280 - Т1 - температура с DS-ки, Т2 - с ВМЕ. Пример тестовой отправки данных, напряжение питания 3.3 В, температуры -19.75°С и - 66.25°С, давление 432 мм.рт.с., влажность 146%. Почти погода на Марсе.
Подключение радиомодуля JDY-40 через USB-UART переходник Для контроля отправки данных по радиоканалу можно второй трансивер JDY-40 подключить через преобразователь USB-UART к ПК.
Прошивка для контроллера. В приложенных к статье файлах архив с прошивками. Прошивок четыре: Замены элементов: Транзисторы Q2,Q3,Q4 - в принципе, подойдут любые N-канальные мосфеты в корпусе SOT23. BSS123, BSS138, IRML2502 и т.д.. Тысячи их.... Побдирать замену лучше по минимальному напряжению затвор-исток. LDO IC2 - Применен LDO LP2985-3.3. Можно применить аналогичный по расположению выводов и с напряжением стабилизации 3.0-3.3 вольта. Например, NCP551SN33 (для него, кстати, С9 не нужен). Вместо JDY-40 можно, теоретически, применить модули HC-11 или HC-12 - uart удлинители на 433 МГц.... Первый обещает дальность до 200 метров, второй до 1500.... Но подключать к датчику их придется уже на проводах.
Отладочная версия датчика выглядела вот так:
Из опыта эксплуатации датчика с радиомодулем и дисплеем - размышления о питании модуля. Датчик с дисплеем и радиомодулем прожил на дешевых солевых ААА батарейках 29 суток. После этого радиомодуль перестал отправлять данные, хотя сам датчик продолжает работать и отображать информацию. Анализ питания показал, что в режиме сна датчика напряжение на батарейках держится на уровне 4 вольт. При включении питания передатчика (до начала передачи) напряжение проседает до 2.4 вольта, что и отображается на дисплее. Но при начале передачи напряжение проседает до 1.8-1.9 вольт, что и приводит к сбою передачи данных. Подключение параллельно батарейкам конденсатора 3300мкФ 6.3 вольт данную проблему решило. С учетом того, что АА-батарейки имеют до 2.5 раз большую емкость относительно ААА-батареек, а щелочные элементы ёмче солевых в 1.5-2 раза, целесообразно применение в качестве питания датчика (в конфигурации с дисплеем и радиомодулем) трех щелочных (алкалиновых) батареек АА-типоразмера. Так же возможно питание от литиевых аккумуляторов с двумя "но":
Файлы: Все вопросы в Форум.
Эти статьи вам тоже могут пригодиться: |
|
|||||||||||||||
![]() |
![]() |


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