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
Планируемые доработки:
разработка корпуса
приведение показаний с датчиков температуры и влажности к референсным
Датчики очень чувствительны к шумам и нагреву от других компонентов. В следующей ревизии будет изменен дизайн front-платы. Будет разделена «земля» на аналоговую и цифровую, полигоны GND будут отведены от датчиков, сами датчики будут разнесены по-другому, будет улучшена фрезеровка.
На этом все, большое спасибо что прочитали, если у вас есть вопросы и замечания по проекту буду рад ответить в комментариях.
Ссылка на проект с gerber-файлом, принципиальной схемой и прошивкой находится здесь.