Я не являюсь экспертом в схемотехнике и разработке печатных плат, это был мой первый опыт в этой области, и, конечно, я ожидал, что мой путь будет долгим и тернистым. Но я был решительно настроен, так как конечный результат должен быть использован в моем доме как полноценно работающее устройство.
Задачи:
-
передача показаний температуры, влажности, CO2, качества воздуха, уровня освещенности, а также данные с датчика присутствия человека на сервер Home Assistant
-
передача данных по Ethernet
-
питание устройства по PoE
-
устройство должно подходить к китайскому подрозетнику
Для разработки принципиальной схемы и разводки печатной платы я использовал бесплатную он-лайн версию EasyEDA. Как мне кажется, она неплохо подходит для новичков, а для профессионалов есть более сложные программы.
По окончании проектирования встал вопрос, где заказывать сами платы и компоненты к ним. Из раскрученных сервисов, к которым есть доступ из РФ я выбрал NextPCB, там все тоже самое, что и у всем известной JLCPCB. Дополнительная задача стояла в максимальной экономии. У данного сервиса есть акция, где напайка компонентов стоит всего 20 долларов, но есть ряд существенных ограничений:
-
плата должна быть не более 100x100 мм
-
не более 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++.
Планируемые доработки:
-
разработка корпуса
-
приведение показаний с датчиков температуры и влажности к референсным
Датчики очень чувствительны к шумам и нагреву от других компонентов. В следующей ревизии будет изменен дизайн front-платы. Будет разделена “земля” на аналоговую и цифровую, полигоны GND будут отведены от датчиков, сами датчики будут разнесены по-другому, будет улучшена фрезеровка.
На этом все, большое спасибо что прочитали, если у вас есть вопросы и замечания по проекту буду рад ответить в комментариях.
Ссылка на проект с gerber-файлом, принципиальной схемой и прошивкой находится здесь.
Автор: alaltitov