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

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

Задачи:

  • передача показаний температуры, влажности, 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++.

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

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

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

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

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

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

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

Комментарии (4)


  1. Pyku_He_oTTyda
    07.09.2024 10:36

    А как устройство, спрятанное в стене, будет корректно считывать параметры воздуха в комнате?


    1. alaltitov Автор
      07.09.2024 10:36
      +1

      В стене будет по факту только задняя часть с PoE. Сами датчики будут находиться снаружи. Как пример, Вы можете посмотреть Wi-Fi точку для подрозетника или дисплей в подрозетник.


  1. alaltitov Автор
    07.09.2024 10:36

    Если платы между собой подключать по проводам, а не пинам, то датчик SCD40 уже будет показывать данные, близие к референсным. Разница меньше одного градуса по сравнению с ртутным градусником. По-хорошему, тут нужно использовать не модуль ESP32-S3, а сам чип, так как wi-fi и bt тут не нужны. Разнести датчики ближе к краям платы, а плату использовать 4-х слойную.


  1. little-brother
    07.09.2024 10:36

    А в чем смысл использовать провода Ethernet/PoE, если ничего важного датчики не передают? Я бы смотрел в сторону Bluetooth с питанием от батарейки или аккумулятора, для подзарядки которого можно просто вывести usb-разъем. Если уменьшить частоту передачи данных, отправляя их не сразу после опроса, а собранным пакетом за пару минут, то одного заряда будет хватать надолго.