РадиоКот :: Метео монитор с беспроводными датчиками
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: МетеостанцияЧасыДобавить тег

Метео монитор с беспроводными датчиками

Автор: MOHCTEP
Опубликовано 13.09.2023
Создано при помощи КотоРед.

 

 

 

Монитор может отслеживать до 4 датчиков (2 внутренних и 2 наружных) одновременно. Благодаря ежеминутному отчету датчиков, на мониторе всегда свежие показания давления, температуры и влажности. Доступна также история усредненных почасовых показаний всех датчиков за полную неделю, в виде графиков. Кроме того, монитор, некоторым образом, "заботится" о зарегистрированных датчиках и если какой-то из датчиков молчит слишком долго (более 5 минут) или его состояние близко к анорексии, монитор об этом просигнализирует доступным ему способом.

Ну и часы, куда ж без них нынче. :) Кроме поразительной точности хода, имеется календарная месячная сетка, с возможностью перелистывания на предыдущий/следующий месяцы, куранты и 5 независимых будильников с разными режимами работы: однократный, ежедневный и по расписанию на неделю. В качестве "плюшек", на экране времени показана фаза Луны с текущим лунным днем, а на метео экране - температура точки росы для любого зарегистрированного датчика.

 СХЕМА

 

Правит балом тут ATMega128A, с рабочей частотой 16 МГц. Когда на трансивер NRF24L01, работающий приемником, приходит информация с одного из датчиков, он генерирует прерывание. ATMega, по шине SPI, забирает принятые данные, считает, преобразует и по 16-битной параллельной шине показывает их на 3.2 дюймовом диcплее с контроллером ILI9341. SPI обслуживает также и тач контроллер дисплея. Координаты прикосновения с него тоже берутся по прерыванию. RTC DS3231S общаются с контроллером уже по I2C. Каждую секунду контроллер синхронизирует с RTC отображаемые время и дату. Часы имеют будильники и куранты, за звуковые возможности которых отвечает mp3 DF Player, общающийся с контроллером по шине UART.

Монитор питается от 5 вольт, подаваемых на разъем JP1. Ток потребления у меня "допрыгивал" до 400 китайских мА, во время звучания будильника на полной громкости. JP2 это отладочный UART, он в релизных прошивках не задействован. JP3 - стандартный угловой коннектор к программатору. Площадки P1...P4 остались от предыдущей версии схемы и платы, для возможного развития. Некоторые из светодиодов у меня "переехали" с макетки в финальную схему. HL1 будет мигать, пока "звенит" один из будильников. HL2 секундной вспышкой покажет, что с какого-то датчика пришли данные. HL3 замигает, при потере связи с датчиком или если питание датчика стало экстремально низким. Если HL1 и HL2, по сути - рюшечки, необязательные к установке, то HL3 рекомендую впаять. Хорошо помогает найти нормальное место для датчика и монитора и оперативно увидеть проблему. Если решите установить фоторезистор R5, то R1 необходимо подобрать с сопротивлением, примерно равным сопротивлению R5, при среднем освещении. VD1 VD2 - развязка по питанию. Схема в PDF и список элементов имеются в архиве.

Печатная плата

Плата спроектирована в форм-факторе дисплея, за исключением трансивера. Его антенна выступает за обрез платы. Эксперименты показали гораздо лучший прием сигналов, сравнительно с полностью спрятанным трансивером. В архиве - герберы и *.lay6 файл, для 2 вариантов платы: самодельной и заказной.

Прошивка. 

 Шить контроллер необходимо, установив на программаторе - 3.3 вольта. Фьюзы на картинке. Контролька, на всякий случай: E - 0xFF, H - 0xD1, L - 0x8F. Не забудьте снять флажок совместимости с М103.

Кроме этого, на SD карточке для плеера нужно создать 2 папки, поименованные в диапазоне "16"..."99". В одну из папок поместите mp3 файлы мелодий будильника, в другую - курантов. Имена файлов в каждой папке должны быть в виде числовой последовательности - от "001.mp3" до "255.mp3". Имя папки и количество файлов в ней запишите, они потребуются для настроек монитора.

 Настройки и эксплуатация.

 После первой прошивки потребуется калибровка тач панели. Коснитесь стилусом центра зеленых перекрестий, в предлагаемом порядке. Если калибровка неудачна, можно повторить ее, вызвав 2 способами - на выбор. 1 - Перешить контроллер, со стиранием EEPRОM. 2 - Сбросить часы. Достаточно, при выключенном питании, кратковременно коротнуть батарейку СR2032 и сразу включить монитор. По завершении калибровки, монитор запустится в рабочем режиме.

Сразу, после включения, монитор ничего не знает о датчиках, однако, после первого приема данных, датчик "прописывается" в системе. Показываются его текущие данные, ведется метео история и становятся доступными корректировочные константы. Монитор следит за его состоянием и при потере связи с датчиком более 5 минут, будет мигать аварийным светодиодом и перечеркнутым значком радиосвязи. Если же питание датчика станет слишком низким, замигает и значок батарейки. Датчики на мониторе разделяются по признакам: наружный или внутренний и основной (первичный) или дополнительный (вторичный).

   Метео экран сверху имеет блок даты/времени, тап, по которому, откроет экран с календарем и доступом к будильникам. Над секундами могут располагаться значки "заведенного" будильника и режима работы подсветки (дневной / ночной). Ниже - панели наружного и внутреннего датчиков, а между ними - строка атмосферного давления. Кроме значений температуры и влажности, на панели датчика сверху имеется служебная информация. Значок радиосвязи, который перекрашивается на 2-3 секунды, в момент приема данных с соответствующего датчика. Цифровой идентификатор датчика, где 1 - основной датчик, а 2 - дополнительный. Надпись "TEST", если датчик работает в режиме отладки. В этом режиме метео история не ведется. Напряжение питания, символический уровень заряда источника и символ лития, если датчик питается от оного. Тап по панели переключает видимость датчика с основного на дополнительный и обратно. Под блоками датчиков отображается температура точки росы для "тапнутого" датчика или датчика с самыми свежими данными. Справа - 2 кнопки: кнопка показа графиков метео истории и кнопка настроек.

 

 

 

 

История метеоданных доступна за одну полную неделю. Каждая точка на графиках - усредненные данные за 1 час. Отображаются данные тех датчиков, которые были видны на метео экране, перед нажатием кнопки вывода графиков.

 

Экран времени, кроме панели часов, имеет месячную календарную сетку. Тап по ее левой / правой части листает месяцы на предыдущий / следующий. Внизу расположены: кнопка возврата в метео экран, символическая фаза Луны с датой лунного месяца и кнопка вызова меню будильников. Если есть хоть один включенный будильник, то иконка на его кнопке подсвечена, а в блоке часов появится значок будильника. Когда будильник сработает, этот значок сменится на изображение колокольчика, запустится плеер и будет мигать светодиод HL1.

Будильник может быть одноразовым, ежедневным и запускаться в определенные дни недели. Тап по кнопке "Звук" вызовет плеер, в котором можно выбрать (или не выбрать :) )  любимую мелодию звонка, отрегулировать ее громкость и зациклить воспроизведение до тех пор, пока не будет нажата кнопка отключения сработавшего будильника. Иконка кнопки "Звук" станет зеленой, если включена мелодия звонка или белой, если звук выключен.

 

 

 

 

 

 

 По кнопке настроек в метео экране, станет доступным меню установок из 3 пунктов.

1  ОБЩИЕ НАСТРОЙКИ.

Здесь табуляторами выбираются настройки подсветки дисплея и настройки плеера.

Можно активировать отключение подсветки, через заданное время бездействия тач контроллера. Выключенная подсветка включится, после прикосновения к экрану. Если включено управление яркостью, то станут доступны дополнительные настройки и на блоке часов появится значок, отображающий режим работы подсветки: день / ночь. Отрегулируйте уровень ночной яркости подсветки, коснувшись нужного места на слайдере, либо кнопками слева и справа от слайдера. Ниже, выбирается алгоритм переключения яркости, либо в заданный час, либо от уровня освещенности. В последнем варианте можно задать порог переключения яркости слайдером. Красная полоса, это текущий уровень освещенности, а ширина ползунка - гистерезис.

В настройках плеера запоминаются папки и количество мелодий для будильников и боя часов. 

2 ЧАСЫ, КАЛЕНДАРЬ.

 Сверху здесь, установки часов реального времени: дата - месяц - год, а ниже часы : минуты и кнопка запуска хода по нулевой секунде эталонных часов.
Можно включить автоматический перевод часов на зимнее / летнее время и бой курантов в ЧЧ:00:00. Для курантов  можно выбрать суточный период их работы и мелодию звучания. По кнопке "ОК" запоминаются все настройки, кроме установок RTC.  

3 КОРРЕКЦИЯ ИЗМЕРЕНИЙ.

 Здесь корректируются показания датчиков к более-менее естественному виду :), также можно скомпенсировать разницу атмосферного давления (в паскалях), если датчики расположены на разной высоте. 

БЕСПРОВОДНОЙ ДАТЧИК 

  • Поддерживает ВМЕ280 (атмосферное давление + температура + относительная влажность) или ВМР280 (атмосферное давление + температура).
  • OLED дисплей показывает информацию с датчика, напряжение источника питания и примерный уровень его остаточного заряда, заполнением иконки.
  • Отображение информации по нажатию кнопки.
  • Датчик конфигурируется перемычками, как внутренний / наружный и основной(первичный) / дополнительный(вторичный). Допустима одновременная работа до 4-х разно-сконфигурированных датчиков.
  • Питание 1.8 ... 5 вольт. Потребление во сне 5...8мкА. 
  • Программная калибровка "вольтметра" эталонным напряжением 3.3 в.

На фотографии - датчик без корпуса. Правда сейчас BME280 я посадил на небольшой шлейф, отодвинув его от платы. Практически все время датчик спит. Через заданный промежуток времени, датчик просыпается, будит периферию, меряет, что умеет, отправляет данные в воздух и снова засыпает. В нормальном режиме работы, данные отсылаются ежеминутно, в режиме отладки, через каждые 6-8 секунд. Нажав и удерживая кнопку можно увидеть на дисплее последние атмосферные измерения и состояние питания.

 СХЕМА

 Контроллер ATMega88A понравился низким порогом питания = 1.8 вольт, что и стало одной из причин его использования в этой схеме. По I2C контроллер общается с датчиком BME280 или BMP280 и OLED дисплеем SSD1306, диагональю 0.96 дюйма. SPI используется для управления трансивером NRF24L01, работающем передатчиком, без подтверждения. Питание NRF24L01 сделано либо через LDO стабилизатор, либо напрямую от источника питания, в зависимости от максимального напряжения этого самого источника. При нажатии и удержании тактовой кнопки SW1 на дисплей выводится актуальная информация: атмосферное давление, температура, относительная влажность, если используется BME280 и напряжение источника питания. Светодиод D1 индицирует передачу данных. В схеме есть несколько конфигурационных перемычек. Их назначение:

  • JP1 - тип источника питания. При замкнутой перемычке, подразумевается питание от литиевого аккумулятора. В блоке соответствующего датчика на мониторе, возле значка батарейки будет видна надпись "Li". С разомкнутой перемычкой питаемся от 2-3 щелочных или солевых элементов.
  • JP2 - место расположения. Замкнута - внутренний (комнатный) датчик, разомкнута - датчик наружный (уличный).
  • JP3 - приоритет. Замкнута - датчик становится дополнительным (вторичным), разомкнута - датчик основной (первичный). Это состояние датчика обозначается цифрой 1 или 2 возле значка радиосвязи в блоке соответствующего датчика на мониторе и на графиках.
  • JP4 - дубликат кнопки.
  • JP5 - тест. При замыкании датчик работает в режиме отладки. Данные передаются, каждые 8 секунд и не запоминаются в метео истории. В блоке соответствующего датчика на мониторе видна надпись "TEST". В этом режиме калибруется вольтметр питания.
  • JP6 - режим питания NRF24L01. При замыкании выводов 1 и 2, LDO будет постоянно включен, 2 и 3 - LDO включается по команде контроллера, во время передачи данных.
  • JP7 - замыкание этой перемычки подает питание на NRF24L01 в обход LDO, напрямую.

Благодаря различным состояниям перемычек JP2 и JP3 получаются 4 независимых датчика. JP4 мне пригодилась в бездисплейном и соответственно бескнопочном уличном датчике единожды, для калибровки вольтметра. Значит без нее можно вполне обойтись. Перемычки будут работать после сброса датчика.  Если планируете питаться от 2 щелочных элементов (3 вольта), то можно обойтись и без LDO, замкнув перемычку JP7. При питании от 3 элементов или лития, наличие LDO обязательно. Емкость конденсатора C6 - чем больше, тем лучше и дольше проработает датчик с подсаженной батарейкой.

 ПРОШИВКА

Шить контроллер необходимо, установив на программаторе - 3.3 вольта. Фьюзы для версии с кварцем 4 МГц, E - 0xF9, H - 0xD7, L - 0xCD. Без кварца, E - 0xF9, H - 0xD7, L - 0xE2. Оба хекса есть в архиве. Кварцевая версия чуть меньше потребляет, но и отрисовка у нее не фатально, но помедленнее.

КАЛИБРОВКА

 После прошивки нужно откалибровать вольтметр датчика. Для этого, с замкнутой перемычкой JP5 - тест и нажатой кнопкой, либо замкнутой перемычкой JP4, запитайте датчик от эталонного напряжения 3.3 вольта. Когда замигает светодиод и на дисплее появится значок батарейки и надпись "100%", калибровка закончена. Отпаяйте ненужные перемычки и датчик готов к работе.

 Архивы содержат файлы прошивки, схемы и ВОМ, рисунок печатной платы в 6 спринте и герберы с фотовидом плат, для контроля заказа.

 Ну и на десерт самое приятное, это сердечное спасибо всем, кто помог мудрыми советами и моральной поддержкой в осуществлении этого проекта!

  


Файлы:
Монитор. Схема, плата, прошивка v. 3.07
Датчик. Схема, плата, прошивка.


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

44 2 2
4 0 1

Эти статьи вам тоже могут пригодиться: