Найти в Дзене

Просто контроллер гирлянды для Home Assistant

Как-то пару лет назад я решил взять на пробу очередную гирлянду на WS2812B- просто посмотреть как оно работает и как выглядит в деле. Опыт применения подобных у меня уже был, и был, увы, печальным. Первой была гирлянда, где светодиоды были запаяны на маленьких платках, а платы соединены между собой проводами. Она померла очень быстро- провода изнашивались (усталость металла от изгибов) и рвались прямо у плат, это все надо было постоянно паять, за этим надо следить.. В общем, никакого удовольствия. Для инсталляции или использовании в рекламе- да, для дома с детьми- точно нет. Вторая была в виде лакированных проводников, которые были зачищены небольшими участками через определенные интервалы (около 10 см), и прямо на эти зачищенные участки паялись SMD светодиоды и заливались клеем, после чего на расстояние примерно 2.5 см провода скручивались, образуя такую себе "каплю" с залитым светодиодом на кончике. Провода были тонкие и такого странного серебристого цвета- малозаметные почти везде,
Оглавление

Как-то пару лет назад я решил взять на пробу очередную гирлянду на WS2812B- просто посмотреть как оно работает и как выглядит в деле. Опыт применения подобных у меня уже был, и был, увы, печальным.

Первой была гирлянда, где светодиоды были запаяны на маленьких платках, а платы соединены между собой проводами. Она померла очень быстро- провода изнашивались (усталость металла от изгибов) и рвались прямо у плат, это все надо было постоянно паять, за этим надо следить.. В общем, никакого удовольствия. Для инсталляции или использовании в рекламе- да, для дома с детьми- точно нет.

Вторая была в виде лакированных проводников, которые были зачищены небольшими участками через определенные интервалы (около 10 см), и прямо на эти зачищенные участки паялись SMD светодиоды и заливались клеем, после чего на расстояние примерно 2.5 см провода скручивались, образуя такую себе "каплю" с залитым светодиодом на кончике. Провода были тонкие и такого странного серебристого цвета- малозаметные почти везде, но при этом довольно жесткие, благодаря чему гирлянда не висела безвольной соплей, а держала какую-никакую форму. Минус был один- было легко содрать лак с проводов, после чего провода обязательно замыкались. Вооружившись токовыми клещами, я провел много времени в поисках мест замыканий. В общем- не торт.

И вот появилась она, рыба моей мечты:

Достойный вариант гирлянды
Достойный вариант гирлянды

И все переменилось :) Заказывал вот здесь, кстати: https://s.click.aliexpress.com/e/_DljtTf1

Почему переменилось? Много почему. Здесь весьма яркие светодиоды, да, это WS2812B, но не как в капельном варианте гирлянды, светят реально хорошо. Кабель в прозрачной оболочке, не броский и при этом оболочкой удерживается расстояние между проводниками, что гарантирует отсутствие КЗ при повреждении изоляции. Заливка светодиодов широкая, так что у основания припайки провод не оборвется. Последнее- разъемы и вначале гирлянды, и в конце! Так что если потребуется гирлянда длиннее- просто покупаешь еще и цепляешь дальше, красота!

Лепота!
Лепота!

Есть и минусы, конечно, а самый большой- это то, что кабель однопроволочный, так что если гнуть кабель с особым усердием, или согнуть с малым радиусом (да еще и тапочкой придавить), то проволоки обязательно лопнут. Для честности должен сказать, что за эти пару лет (этот новый год будет уже третьим) моя гирлянда пережила форму елочки, сердца, валялась в углу, висела как растяжка и вот повисла на карнизе, при этом не получив ни одного повреждения. Но опасность излома проволок висит вместе с гирляндой, как Дамоклов меч, все же знают, как ненадежны однопроволочные кабели. Кстати, я сомневаюсь, что проволоки вообще из меди, кабель довольно жесткий, вполне может быть, что это алюминий с каким-то покрытием, что только увеличивает риск перелома проволок.

И еще моментик: выше я написал, что возможно просто цеплять гирлянды друг к другу и будет красота, однако, сейчас, внимательно почитав описание продавца, обнаружил надпись: "Этот продукт не поддерживает последовательное соединение, его можно подключить только отдельно. (Клиенты также могут сваривать самостоятельно)". То есть, вроде как, разъемов не будет. Но у меня же есть! Возможно, в разных комплектациях (с контроллером или без) или для разной длины этот момент разный, но все же..

Ладно, проехали, суть не в гирлянде, ведь, так-то, вариантов реально куча, и вот эти 3, с которыми сталкивался лично я- вообще не предел, тот же алик просто разрывается от подобного добра: там и типа дюралайта есть, и под гибкий неон, и еще непонятно что. Вопрос в том, чем все это рулить.

А рулить все это я как раз буду своей поделкой, на которую возлагаю определенные надежды, вполне возможно, что зря :) Суть в том, что мне захотелось иметь некую универсальную платку, которую можно использовать по принципу "подключил и алга", при том обязательно подключаемый к HomeAssistant, а это значит, что тут и ESP8266, и стабилизатор питания, и преобразователь уровней, и кнопку надо не забыть.

Схема

Покумекав, может быть не в лучшем виде, получилось вот это:

Схема
Схема

Коротко о схеме. Основой устройства является модуль ESP-01s, обозначенный на схеме как U3. Для ручного управления им подключены кнопки SW1-SW3, но тут вот какое дело: если SW1 может работать без ограничений, то SW3 при подаче питания переводит модуль в режим загрузчика по UART, а уже после вполне работает как обычная кнопка. А вот зачем я сделал кнопку SW2- я не помню. Она контролирует вывод Chip Enable, который должен быть притянут к 3.3 вольта для работы ESP8226 на модуле, и нажатием на эту кнопку подобное не позволяется. Зачем такое в гирлянде, да и с какой целью я вообще туда что-то подключил- не помню, помню, что считал это важным и что-то читал по этому поводу, а вот зачем реализовал... В общем- есть и есть, не паяйте, если нет уверенности, что это нужно и все.

Собственно, выводы модуля, на которых садятся кнопки, притянуты к 3.3 вольта резисторами R2-R4. Присутствует интегральный линейный стабилизатор U6, обеспечивающий питание 3.3 вольта для модуля, ведь сама гирлянда работает от 5 вольт, конденсаторы С6-С9 являются элементами фильтра стабилизатора, кроме того, конденсаторы C7 и C8 предотвращают возможное самовозбуждение стабилизатора, а диод D2 установлен для защиты от подключения источника с неправильной полярностью. Сам источник подключается к разъему J2.

На плате стоит адресный светодиод D1, позволяющий визуально узнать состояние модуля (если это реализовать, конечно, а это лямбда, C++, мрак и ужас...), С3 блокирует шину 5 вольт от появления помех из-за работы диода (наводит встроенный ШИМ) однако, работает диод от 5 вольт, в то время как модуль ESP-01S имеет сигналы уровня 3.3 вольта. Для согласования применен инвертор U2, резистор R1 ограничивает ток "на всякий случай", конденсаторы C1 и C2 блокируют появление помех на шинах 3.3 и 5 вольт соответственно от работы инверторов и обеспечивают дополнительную энергию инверторам при бросках тока во время их переключения. Но так, как сигнал хоть и будет согласован по уровню, но инвертирован, для возврата к нормальному состоянию дополнительно установлен инвертор U1. К контактам разъема J1 подключается гирлянда, к ней применена точно такая же схема согласования уровней из инверторов U4 и U5, блокирующих резисторов C4 и C5 и резистора R5. Под посадочными местами J1 и J2 подразумеваются винтовые клеммники с шагом 3.5 мм, но я решил их не паять, а подпаять провода сразу на плату. Таки все. Перечень элементов привожу ниже:

Список деталей
Список деталей

Конструкция

Я это все сделал на двусторонней печатной плате, предусмотрев вырез под модуль ESP-01S и специальные отверстия под кнопками- так еще до монтажа деталей можно просто прислонить плату к корпусу и сделать отверстия точно под кнопки. Корпус я взял из своих запасов, а в запасах лежала кучка Gainta G1015. Так плату видит KiCAD:

Плата, отрендеренная в KiCAD
Плата, отрендеренная в KiCAD

Честно говоря, можно было сделать все куда компактнее- реальная схема-то занимает места с гулькин нос, но раз уж корпус позволяет занять пространство- я его занял, вот так расточительно.

Конструкция собирается просто и быстро, и представляет из себя вот такое зрелище:

На что следует обратить внимание: для светодиода-индикатора состояния я использовал световод- специально устроенный кусок оргстекла, передающий свет от светодиода на поверхность корпуса. Модель точно не помню, увы, что-то типа FIX-LEM-135. Что же касается разъема, то этот разъем я взял из комплекта гирлянды. Не знаю, как сейчас обстоит дело, но когда я заказывал гирлянду без контроллера, то там шла сама гирлянда с припаянными разъемами в начале и в конце, а так же разъем для подключения с обжатыми проводами. Какая комплектация сейчас- не знаю, возможно, потребуется докупать разъемы самостоятельно. Но, как я понял, это что-то стандартное для подключения адресных светодиодных лент и гирлянд.

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

Готовый результат не успел сфоткать- младшая дочка потребовала срочно вешать гирлянду на законное место. Что-ж, потому вот фотография в деле:

В работе
В работе

Проект KiCAD 7 я, как всегда, прилагаю: https://disk.yandex.ru/d/Y2NFz4jEQPxbHA

Софт

Теперь что касается кода в ESPHome- тут все плохо. Некоторое время назад при отключении электричества я потерял нормальный код на гирлянду. Остался только демонстрационный образец, его и выкладываю. Постараюсь переписать все то, что было в полном объеме и выложу отдельной статьей или постом.

Все, что есть сейчас- вот YAML файл: https://disk.yandex.ru/d/qFT78UWALsUwow

То что есть позволяет проверить работоспособность контроллера и начать использовать гирлянду по прямому назначению. В HomeAssistant она будет виднеться как лампа, позволяет вытворять все те же штуки, что и лампа (цвет, яркость и т.д.), и как у лампы эффекты выбираются в карточке:

Карточка гирлянды
Карточка гирлянды

Все очевидно и просто, работает хорошо и без проблем. Почти.

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

Впрочем, не для этого создана гирлянда, потому считаю, что все удачно. Пользуйтесь конструкцией на свое усмотрение, если есть желание, ждите полной версии кода, если это нужно, ну а я на сегодня прощаюсь. Кстати, я запилил ролик с демонстрацией работы, прошу посмотреть. Да, я раскопал фотик и купил новый аккумулятор :)

Спасибо всем, кто дочитал до конца! Если понравилось- ставьте лайки и пользуйтесь на здоровье. Не понравилось, есть что поправить или добавить- добро пожаловать в комментарии! А для поддержки автора в это не простое время есть форма для доната ниже, но кидайте донаты только добровольно и не в ущерб себе любимому.

Спасибо всем, кто дочитал до конца! Если понравилось- ставьте лайки и пользуйтесь на здоровье. Не понравилось, есть что поправить или добавить- добро пожаловать в комментарии! А для поддержки автора в это не простое время теперь есть ссылка на форму для доната, но кидайте донаты только добровольно и не в ущерб себе любимому!