РадиоКот :: Малогабаритный измеритель температуры и влажности
Например TDA7294

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

Теги статьи: Добавить тег

Малогабаритный измеритель температуры и влажности

Автор: Сергей Безруков (aka Ser60)
Опубликовано 17.02.2025
Создано при помощи КотоРед.

 

Измерителям всевозможных параметров окружающей среды посвящено немало проектов как здесь на сайте, так и за его пределами. Видимо, одной из причин продолжающихся разработок подобных устройств является стремление авторов оснастить свои устройства желаемыми особенностями, отсутствующими в других проектах. Отличительными чертами предлагаемого устройства являются малые размеры, работа от одной батарейки типоразмера ААА, использование OLED дисплея, и специальные меры продления срока службы батареи. Как известно, подсветка OLED дисплеев потребляет довольно много энергии, что при постоянном её включении делает невозможным сколь-нибудь длительную работу без смены батарей. С другой стороны, никто не собирается целый день не отрываясь смотреть на дисплей. Как правило, температурой воздуха в жилом помещении интересуются лишь несколько раз в день. Уменьшить энергозатраты можно включением дисплея на пару секунд, например, нажатием кнопки на измерителе. В настоящем устройстве вместо кнопки использован акселерометр, включающий дисплей лёгким ударом кистью руки вблизи места установки прибора на мебели, или даже посредством хлопка в ладоши, см. демонстрационное видео в конце статьи. Подобное решение я уже использовал в часах и многих других конструкциях, здесь пока не опубликованных.

В устройстве применён широко распространённый OLED дисплей с драйвером SSD1306 и разрешением 128×32. Применение графического дисплея позволило задействовать красивый шрифт, который на мой вкус выглядит симпатичнее чем шрифт на символьных индикаторах. Схема устройства приведена ниже.

Повышение напряжения батареи от 1.5В до 3В производится конвертером IC1. На выводе VMAIN повышенное конвертером напряжение присутствует постоянно и используется для питания акселерометра IC2 и микроконтроллера IC3. Напряжение для питания дисплея и сенсора температуры и влажности IC4 снимается с вывода VSUB конвертера и коммутируется встроенным в IC1 ключом. Управление этим ключом производится микроконтроллером через вывод MODE. Большую часть времени микроконтроллер находится в режиме глубокого сна с потреблением около 1 мкА и пробуждается запросом на прерывание, генерируемым акселерометром на его выводе INT1. В последнем реализован алгоритм определения одиночного толчка/касания, что устойчиво работает даже при ODR (output data rate) 50 Гц. При этом потребление самого акселерометра составляет около 3 мкА. Резистор R2 необходим при конфигурировании вывода INT1 акселерометра на работу в режиме открытого стока, поскольку на выводе P200 МК, куда он подключён для удобства разводки платы, почему-то отсутствует внутренний подтягивающий резистор. Резистор R2 можно исключить, сконфигурировав вывод INT1 акселерометра на режим push-pull – правильное решение часто приходит слишком поздно. В результате потребление от батареи при неработающем дисплее даже с при невысоком КПД преобразователя напряжения на малом токе составляет около 19 мкА. Учитывая ёмкость ААА батареи 1000 мА/ч получаем непрерывную работу в режиме сна порядка нескольких лет. В реальности срок службы батарей зависит от частоты включения дисплея, но всё равно не менее пары лет.

При детектировании толчка/хлопка акселерометром через ключ в IC1 подаётся напряжение на дисплей и датчик IC4, в который посылается команда измерения параметров среды, а в дисплей посылаются коды инициализации по интерфейсу I2C с тактирующей частотой 400 кГц. Подтягивающие резисторы для I2C интерфейса находятся на плате дисплея, а регулятор напряжения на его плате удалён для минимизации токопотребления. По окончании измерения датчиком параметров среды производится их отображение на дисплее. Датчику нужно не более 10мс для завершения измерений и ещё примерно столько же требуется для коммуникации с дисплеем, в результате чего показания на дисплее появляются практически мгновенно после хлопка и отображаются в течение 2 сек. По истечение 2 секунд питание дисплея и датчика отключается через IC1. Оказалось, что дисплей устойчиво работает от 3В и потребление от батареи при работающем дисплее оказалось около 20мА. КПД конвертера на таких токах заметно выше.

Ещё одной целью создания данного устройства являлось желание попробовать в деле новые МК семейства RA0 фирмы Renesas. Для многих моих поделок требуются МК с малым числом выводов и желательно в корпусах QFN16. Ранее я интенсивно использовал такие МК семейств MLK02/03 и PSOC4 фирм Freescale и Cypress (в последствии NXP и Infineon, соответственно) с архитектурой Cortex-M0/M0+, но время идёт и прогресс не стоит на месте. Производители постоянно совершенствуют свои изделия, и ARM микроконтроллеры, удовлетворяющие моим требованиям, сейчас имеются, например, у NXP (новое семейство MCX), TI (MSPM0) и др. В микроконтроллерах начального уровня наблюдается тенденция постепенного перехода к новым технологическим процессам и архитектуре Cortex-M23, чем и объясняется мой выбор в пользу RA0. Этому же способствовала и очень удобная среда разработки, с которой я уже был знаком ранее, см., например, мою предыдущую статью здесь. К сожалению, по сравнению с МК фирмы Silicon Labs у этих не такой гибкий мультиплексор функций порта, и для каждого интерфейса (I2C, SPI, UART, …) имеется всего по 2–4 комбинации выводов, в то время как у Silicon Labs каждый сигнал интерфейса можно независимо вывести практически на любой вывод корпуса. Да, к хорошему привыкаешь быстро, однако указанные ограничения присутствуют в подавляющем большинстве микроконтроллеров.

Программа МК разработана в Eclipse среде e2 фирмы с FSP (Flexible Software Package) версии 5.7.0. Полный проект устройства, включающий исходники, прилагается. Среда наряду с API функциями пакета реально позволяет сконфигурировать периферию буквально за несколько кликов мышкой и комфортно работать с ней, даже не заглядывая в ДШ. Однако, у меня заняло время разобраться как переключаться между различными режимами сна. Я так и не понял, как это делать, пользуясь лишь предлагаемыми функциями API пакета FSP. Пришлось всё-таки засучить рукава, залезть в ДШ, и разобраться с регистрами конфигурации периферии. Всё оказалось просто и логично.

Печатная плата разработана в системе Eagle и имеет размер 50×13мм, определяемый габаритами держателя батареи ААА. Поскольку устройство наполовину экспериментальное, я не стал заморачиваться с фабричным изготовлением двусторонней платы и несколько неразведённых соединений реализованы проволочными перемычками. Файл платы прилагается.

Плата смонтирована на задней стенке держателя батареи, который фактически является корпусом или каркасом устройства. Плата дисплея установлена поверх деталей на основной плате и приклеена к последней через прокладки толщиной 2мм. Удобно, что высота держателя практически такая же как высота дисплея. Датчик IC4 установлен на основной плате вне дисплея для улучшения контакта с окружающей средой.

Ниже прилагаю короткое видео работы устройства. В нём продемонстрировано практически мгновенное отображение показаний после лёгкого удара фалангами пальцев по столу, а также включение устройства хлопком в ладоши в непосредственной близости от него. Максимальное расстояние до прибора при включении хлопком во многом зависит от свойств поверхности, на которой он установлен.


Файлы:
Файлы проекта


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




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

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

11 4 1