DIY устройство в подрозетник с датчиками окружающей среды в комнате

Готовое к работе устройство без корпуса

Готовое к работе устройство без корпуса

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

Задачи:

  • передача показаний температуры, влажности, CO2, качества воздуха, уровня освещенности, а также данные с датчика присутствия человека на сервер Home Assistant

  • передача данных по Ethernet

  • питание устройства по PoE

  • устройство должно подходить к китайскому подрозетнику

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


По окончании проектирования встал вопрос, где заказывать сами платы и компоненты к ним. Из раскрученных сервисов, к которым есть доступ из РФ я выбрал NextPCB, там все тоже самое, что и у всем известной JLCPCB. Дополнительная задача стояла в максимальной экономии. У данного сервиса есть акция, где напайка компонентов стоит всего 20 долларов, но есть ряд существенных ограничений:

  • плата должна быть не более 100×100 мм

  • не более 100 компонентов в сумме

  • не более 30 уникальных компонентов.

Однако, благодаря разделению платы на две части, эта проблема была решена. В итоге получилась следующая ревизия первого опытного образца:

Фронтальная и тыльная части устройства

Фронтальная и тыльная части устройства

Функционал:

  • Питание PoE (модуль SDAPO DP1435)

  • Ethernet (Wiznet W5500)

  • Встроенные датчики:

    • Датчик температуры и влажности (ENS210)

    • Датчик температуры, влажности и качества воздуха (Bosch BME680)

    • Датчик температуры, влажности и CO2 (Sensirion SCD40)

    • Датчик освещенности (BH1750FVI)

  • Контактный разъем под впайку датчика присутствия (HLK-LD2410c)

  • Пищалка (buzzer)

  • Выходы на пять GPIO, вторую шину I2C, GND, 3V3A и 3V3D для тестов

В качестве прошивки я пробовал CircuitPython, но столкнулся с рядом трудностей, таких как отсутствие библиотек (пришлось переписывать Python-библиотеку LD2410c под CircuitPython) и скорость работы (от момента включения устройства до загрузки прошивки пищалка начинает издавать звуки, что можно исправить дополнительным резистором).

Для тестов CircuitPython вполне сойдет, но для полноценной работы больше подойдет ESPHome, в виду простоты, широкой поддержки различных библиотек, и то, что конечный код компилируется в C++.

Показания датчиков с устройства в Home Assistant

Показания датчиков с устройства в Home Assistant

Планируемые доработки:

  • разработка корпуса

  • приведение показаний с датчиков температуры и влажности к референсным

Датчики очень чувствительны к шумам и нагреву от других компонентов. В следующей ревизии будет изменен дизайн front-платы. Будет разделена «земля» на аналоговую и цифровую, полигоны GND будут отведены от датчиков, сами датчики будут разнесены по-другому, будет улучшена фрезеровка.

На этом все, большое спасибо что прочитали, если у вас есть вопросы и замечания по проекту буду рад ответить в комментариях.

Ссылка на проект с gerber-файлом, принципиальной схемой и прошивкой находится здесь.

© Habrahabr.ru