- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

Задачи:

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

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

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

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

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

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

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

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

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

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

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

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

Функционал:

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

  • Ethernet (Wiznet W5500 [8])

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

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

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

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

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

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

  • Пищалка (buzzer)

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

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

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

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

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

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

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

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

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

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

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

Автор: alaltitov

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/sensors/395821

Ссылки в тексте:

[1] Home Assistant: https://www.home-assistant.io/

[2] PoE: https://ru.wikipedia.org/wiki/Power_over_Ethernet

[3] подрозетнику: https://aliexpress.ru/item/33040774717.html

[4] EasyEDA: http://www.easyeda.com

[5] NextPCB: https://www.nextpcb.com/

[6] JLCPCB: http://www.jlcpcb.com

[7] модуль SDAPO DP1435: https://www.lcsc.com/datasheet/lcsc_datasheet_2304031800_SDAPO-DP1435-5V_C5380097.pdf

[8] Wiznet W5500: https://www.lcsc.com/datasheet/lcsc_datasheet_2307141200_WIZNET-W5500_C32843.pdf

[9] ENS210: https://www.lcsc.com/datasheet/lcsc_datasheet_2204121130_AMS-ENS210-LQFM_C2991202.pdf

[10] Bosch BME680: https://www.lcsc.com/datasheet/lcsc_datasheet_1811141211_Bosch-Sensortec-BME680_C125972.pdf

[11] Sensirion SCD40: https://sensirion.com/media/documents/48C4B7FB/64C134E7/Sensirion_SCD4x_Datasheet.pdf

[12] BH1750FVI: https://www.lcsc.com/datasheet/lcsc_datasheet_1811081611_ROHM-Semicon-BH1750FVI-TR_C78960.pdf

[13] HLK-LD2410c: https://www.lcsc.com/datasheet/lcsc_datasheet_2312221750_HI-LINK-HLK-LD2410C-P_C19723500.pdf

[14] CircuitPython: https://circuitpython.org/

[15] ESPHome: https://esphome.io/

[16] здесь: https://github.com/alaltitov/little_eva

[17] Источник: https://habr.com/ru/articles/841532/?utm_source=habrahabr&utm_medium=rss&utm_campaign=841532