Адресная светодиодная лента ws281xx. Управление с помощью ESP8266 и умного дома.

Всем привет! Порывшись на просторах интернетах я достаточно быстро выяснил, что не хватает готовых проектов, заточенных под нужды умного дома в области декоративной и релаксационной подсветки или, если хотите, ambient light по-научному. Задача очень простая - получить управляемую светодиодную ленту, в которой управлять будем каждым светодиодом по отдельности. Система управления может использоваться любая, я в своем примере покажу как это делается с помощью HomeAssistant. Современные адресные светодиодные ленты, такие как WS2812b и пр., позволяют создавать уникальные параметры освещения - миллионы оттенков различных цветов, и, что очень важно, могут изменять яркость свечения,без использования диммеров. Диммеры я вообще считаю пережитком прошлого, и везде где только можно стараюсь от них избавляться в своих проектах. В качестве микроконтроллера используем ESP8266 в виде готового модуля версии 12E.

esp8266

Саму светодиодную ленту возьмём версии WS2812b. 60 светодиодов на 1 метр будет достаточно, хотя можно использовать и другие - с более высокой плотностью пикселей - всё зависит от ваших предпочтений.

ws2812b

Здесь сразу же возникает один нюанс. Дело в том, что логика работы этой адресной ленты находится около значения в 5 вольт. Логика работы ESP8266 - 3.3 вольта. Напряму управлять лентой не получится. Поэтому нам потребуется конверсия логических уровней. Причем конвертор должен работать достаточно быстро, чтобы успевать обрабатывать поступающие сигналы от ESP. Был выбран приёмо-передатчик 74HCT245. Он очень хорошо подходит для этой задачи!

74HCT245

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

Прикинул как будет выглядеть собранное устройство. Получилось так.

готовое устройство

Электрическая схема устройства. Добавил в схему мониторинг питания на MAX809TEUR+T. Он будет контроллировать питающее напряжение и в случае просадки отправит сигнал на перезагрузку ESP. Получился аппаратный Watchdog. Очень надежно.

electric scheme

Сразу поясню - большое количество выводов изначально было нужно для других целей и нам в данном проекте не понадобится. Однако вы всегда можете найти им своё применение если захотите :)

Развёл плату. Пока ждал её, закупил все необходимые детали. В итоге в собранном виде получилось как то так.

собранная плата_а.JPG

собранная плата_б.JPG

На лицевой стороне устройства предусмотрен debug разъем, подключенный к Rx Tx входам модуля ESp8266 соответственно. Также предусмотрел возможность выбора напряжения питания на каждом разъеме, что видно на обратной стороне платы. Через debug разъем будем заливать прошивку. К слову, прошивок для ESP8266 сейчас великое множество. Все их можно с легкостью найти в интернете. Как уже было сказано, я использую прошивку esphome с целью дальнейшей интеграции в умный дом на базе HomeAssistant. Набор команд будет ограничиваться описанием самого устройства с указанием того, к какому из пинов ESP оно подключено, а также добавлением нескольких визуальных эффектов.

esphome.jpg

После этого добавляем интеграцию в HomeAssistant и подключаем тестовый кусок ленты к нашему устройству. Также не забываем всё уместить в заранее подготовленный корпус и подключаем блок питания на 5 вольт.

Положили в корпус.jpg

В полностью собранном и подключенном виде выглядит так. Ленту подключаем согласно полярности. Выход из устройства подключаем ко входу ленты с обозначением DI (digital input)

Подключили ленту.jpg

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

красный.jpg

розовый.jpg

синий.jpg

Так выглядят спецэффекты. Например, радуга

радуга.jpg

Итак. С тестовым куском ленты всё получилось. Теперь посмотрим как всё будет выглядеть в реальной жизни.

реальное фото оранж.jpg

реальное фото зел.jpg

реальное фото роз.jpg

И демонстрация в формате видео

И напоследок несколько рекомендаций вам, если вы решитесь повторить подобный проект.

  1. Лента WS2812b и аналогичные потребляют большой ток. Поэтому расчитывайте их питание исходя из длины ленты. Как правило, питание лент осуществляется через отдельный блок. Соединяйте GND всех дополнительных блоков питания и модуля ESP8266.
  2. Между + и - каждого блока питания следует установить конденсатор емкостью 1000 µF, 6.3V и выше. Это нужно чтобы предотвратить резкие скачки напряжения.
  3. Перед самым входом DI светодиодной ленты необходимо припаять резистор номиналом от 300 до 500 Ом. Таким образом, управляющий сигнал на ленту будет проходить через этот резистор. Это предотвратит выгорание схемы управления первого диода и последующий выход из строя всей ленты.
  4. Расстояние между входом ленты и выходом из нашего с вами устройства должно быть минимизировано с целью исключения помех. Расстояние в 1-2 метра гарантирует бесперебойную работу. Всё что больше - тоже будет работать, но могут быть помехи.
  5. Рекомендуется все дополнительные блоки питания ленты подключать через реле с тем, чтобы после выключения подсветки лента полностью обесточивалась. Если будет интерес к этой теме, расскажу как это можно реализовать в esphome и нарисую еще одну плату для этого, чтобы было удобно подключать реле.

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

В комментариях можете задавать вопросы.

Файлы на изготовление платы

BOM список компонентов со ссылками на продавцов Aliexpress

Где купить этот корпус

Всем добра!

Оставить комментарий