[DIY или Сделай сам, Беспроводные технологии, Разработка под Arduino, Умный дом] Мини Термометр & гигрометр с E-PAPER на nRF52 — или о том, что пока не выпустили производители

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
10-Сен-2020 07:30

Приветствую всех читателей Habr! Хочу поделится с вами своим новым опенсорс проектом. Из названия статьи понятно что речь пойдет о датчике температуры и влажности с дисплеем на электронных чернилах. Уже достаточно давно я попробовал сделать проект датчика температуры с такими дисплеями в виде ардуино модуля. С тех пор тема e-ink дисплеев меня заинтересовала.
Целью данного проекта была разрабока миниатюрного датчика, сравнимого по размерам с обычными беспроводными датчиками температуры, но при этом получить еще и вывод данных на самом устройсве. И при всех этих условиях что бы устройство работало от небольшой батарейки достаточно долго. Что из этого получилось, прошу оценить и не скупится на комментарии.

Датчик работает на чипах nRF52, для данного проекта был выбран модуль от компании MINEW. Модуль небольшого размера, имеет 18 выводов, 13 из которых gpio, два варианта антен, печатная и керамическая, так же на модуль устанавливается несколько вариантов чипов, nRF52810 и nRF52832, а после непродолжительного общения с менеджментом компании мне без вопросов поставили на эти модули чипы nRF52811. Так я кстати получил свои первые 811-ые и к тому же по цене в полтора раза ниже чем мог бы купить у дистрибьютеров просто чипы, но это уже другая история. На модуле разведен вариант схема DC-DC и часовым кварцем. Размеры модуля 12мм х 15мм. Присутствует металлический экран.

Из линейки e-ink дисплеев выбор естественно пал на достаточно новую модель м размером экрана 1.02 дюйма. Стоимость одного дюйма электронных чернил составила 500 рублей, что мне показалось приемлемо. Небольшие трудности с разработкой платы под этот дисплей вызвал его разъем, 30 пиновый FPC c шагом в 0.5мм. Ширина FPC разъема намного больше ширины самого дисплея, что вызвало неудобство при проектировании. Но зато было проше с объвязкой дисплея, она проще чем на других моделях (даташит GDEW0102T4).

Из цифровых сенсоров температуры и влажности решил остановится на sht20, их и в достаточном колличестве было у меня, простой достаточно, хорошая цена, удобный размер. Так же одним из плюсов можно назвать то что вместо sht20 при желании легко установить sht21, si7020, si7021, htu20d, htu21d и hdc1080, но последний вариант не самый очень ;).
Под датчик проектировалось 2 платы, одна под экран и его объвязку, вторая под радиомодуль, сенсор температуры и влажности и батарейку. Ключевыми параметрами размеров плат были размеры экрана и батарейки. На плате c экраном были заложены отверстия под винты (1.4 х 3) для крепления платы к корпусу, на второй плате были сделаны вырезы для удобной установки винтов. Так как это DIY устройство я мог себе позволить поставить «вкусную» батарейку CR2450. Ну а если мне покажется когда то что устройство толстовато, то я всегда смогу напаять держатель под батарейку CR2430. В итоге получилось две платы размерами 36мм на 26мм.

Корпус проектировался в СолидВоркс, модели плат были экспортированны из DipTrace в формате DXF, которые уже в СолидВоркс были преобразованы в 3D модели. Корпус состоит из двух частей и кнопки, Крепления половинок корпуса друг к другу сделано так же винтами(1.4 х 4) с одной стороны и выступающим «зацепом» c другой стороны. Сделаны два отверстия для циркуляции воздуха для сенсора температуры и влажности.

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

Примерно так происходила разработка железа, постарался описать все этапы и некоторые нюансы, если она вам показалась трудоемкой, то то это не так, трудоемким на самом деле было ПО. Как и прежде я свои проекты делаю под MySensors, хотя признаюсь что уже не с тем энтузиазмом что прежде. В какие то моменты реализации стал упиратся, каких то вещей не хватает, какие то просто невозможны. Альтернативой на данный момент для себя я вижу Open Thread, по крайней мере он кажется достаточно привлекательным.

Cхема устройства

SPL




В итоге все свои требования к функционалу реализовать получилось. Устройство может работать с контроллером УД, так же устройсво может работать напрямую с каким либо устройством в сети МySensor. Привязка устройст для прямого обмена может происходить как посредством конфигурации устройств через контроллер УД, внешними командами, так и без участия контроллера УД с помошью простого нажатия кнопки для активации режима привязки(binding). Датчик температуры и другое устройство к которому привязан датчик могут нормально поддерживать обмен даже без работающего шлюза MySensors или работающего контроллера УД, что безусловно повышает отказоустойчивость. Отдельная проблема была с драйверами eink дисплея, вероятно потому что дисплей достаточно новый, на сайте производителя и сайте WaveShare(предлагающий eink экраны Good Display под своим брендом) реализации библиотек достаточно сырые. Пришлось что то переделать, что то дописать. В датчике реализовано поддержка нескольких языков, инверсия цвета по внешнец команде в режиме конфигугрирования устройства, несколько вариантов шрифтов так же меняемые по внешней команде пв режиме конфигурации устройства. Датчик выводит на экран показания температуры и влажности, заряд батареи и уровень сигнала. Интервал замеров температуры и влажности, интервал замера уровня батарейки можно задать так же внешней командой. Для температуры и влажности в минутах, для уровня заряда батарейки в часах. Передает датчик в УД следующие данные: температура, влажность, уровень заряда в %, напряжение, уровень сигнала, причину перезагрузки.

Посмотреть как это выглядит можно в небольшом видеоролике
Извините, данный ресурс не поддреживается. :(
таймстампы интересных моментов:
3.10 — Конфигурирование (смена шрифта, инверсия цвета)
5.10 — Замер потребления, работа WTD
Если кому то интересны мои разработки то после прочтения статьи рекомендую перейти на канал и подписатся, там информацию по новым разработкам я публикую в первую очередь.
В спящем режиме датчик потребляет 2мкА, сброс WTD кажные 5 секунд, потребление в момент сброса 4-5мкА. в режиме работы с экраном и сенсором температуры и влажности 2-3мА, в режиме передачи 5-8мА(такой диапозон в 3 мА связан с тем что датчик сам регулирует мощность передачи на основе данных по уровню сигнала.

Под спойлером фотографии датчика

SPL







На этом хочу откланяться, если вам интересно все что связано с DIY, вы являетесть DIY разработчиком, или хотите только начать, вам интересно использование DIY девайсов приглашаю всех заинтересованных в телеграм чат — DIYDEV
Всех кто хочет делать устройства, начать стороить автоматизацию своего дома предлагаю познакомиться с простым в освоении протоколом Mysensors — телеграм чат MySensors
А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм чат Open Thread.
Мой GitHub этого проекта, схема, гербер файлы, зд модели корпуса, bom, ПО
Всем как всегда Добра!
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_diy_ili_sdelaj_sam (DIY или Сделай сам), #_besprovodnye_tehnologii (Беспроводные технологии), #_razrabotka_pod_arduino (Разработка под Arduino), #_umnyj_dom (Умный дом), #_eink, #_epaper, #_nrf52810, #_nrf52811, #_nrf52832, #_datchik_temperatury_i_vlazhnosti (датчик температуры и влажности), #_besprovodnoj_datchik_temperatury (беспроводной датчик температуры), #_diy_ili_sdelaj_sam (
DIY или Сделай сам
)
, #_besprovodnye_tehnologii (
Беспроводные технологии
)
, #_razrabotka_pod_arduino (
Разработка под Arduino
)
, #_umnyj_dom (
Умный дом
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 18:06
Часовой пояс: UTC + 5