Есть такая система WLED. Это многофункциональный веб сервер на ESP8266 или ESP32, который позволяет управлять различными светильниками и гирляндами на основе адресных светодиодов. Надо отметить что обычными светодиодами тоже управляет посредством ШИМ. Многие пользуются этой системой, при этом практически ее не зная. На нашем портале есть несколько статей по этой теме: например несколько статей от ReD, статья от Kvazis. Проблема в отсутствии русскоязычного руководства пользователя. Данную проблему я решил исправить, буду писать руководство на основе англоязычного ресурса, ну и со своим богатым опытом в этой теме. Тема очень обширная, поэтому планирую не одну статью, а целый цикл.
Особенности системы:
- Интегрирована библиотека WS2812FX для более чем 100 спецэффектов.
- Шумовые эффекты FastLED и 50 палитр
- Современный пользовательский интерфейс с элементами управления цветом, эффектами и сегментами
- Сегменты для установки различных эффектов и цветов для частей светильников и гирлянд
- Страница настроек — конфигурация по сети
- Режим точки доступа и станции — автоматическая отказоустойчивая точка доступа
- Подключение до 3 каналов лент на экземпляр ESP8266 и 10 каналов на экземпляр ESP32
- Поддержка полос RGBW
- До 250 пользовательских пресетов для удобного сохранения и загрузки цветов/эффектов с поддержкой циклического переключения между ними.
- Предустановки можно использовать для автоматического выполнения вызовов API.
- Функция ночного освещения (постепенно тускнеет)
- Полная возможность обновления программного обеспечения OTA (HTTP + ArduinoOTA), защита паролем
- Настраиваемые аналоговые часы
- Настраиваемый предел автоматической яркости для более безопасной работы
- Конфигурация на основе файловой системы для упрощения резервного копирования пресетов и настроек
- Интеграция с сервером Home assistant
Поддерживаемые интерфейсы управления освещением
- Приложение WLED для Android и iOS
- API-интерфейсы JSON и HTTP-запросов
- MQTT
- Blynk IoT
- E1.31 , Art-Net , DDP и TPM2.net
- Hyperion
- UDP в реальном времени
- Голосовое управление Alexa (включая затемнение и цвет)
- Синхронизация с лампами Philips Hue
- Adalight (подсветка ПК через последовательный порт) и TPM2
- Синхронизация эффектов и цветов нескольких устройств WLED
- Инфракрасные пульты (24 клавиши RGB, требуется приемник)
- Простые таймеры/расписания (поддерживается время по NTP, часовые пояса/DST)
Начало работы
Я буду в примерах указывать светодиодную ленту. Выбираем нужный контроллер, например Wemos D1 mini. Подключаем к нему ленту, обычно рекомендуют GPIO2, на данной плате он обозначен как D4. При этом если у вас расстояние между ESP и лентой небольшое, то схема заработает сразу. При большей длине, может понадобиться конвертер уровней. Если не хотите задумываться об аппаратной части то лучше использовать готовое решение: GLED одноканальный на основе ESP8266, или GLED 4 ch четырехканальный на основе ESP32. Про них была статья.
Если лента WS2801 или APA102 то она подключается к двум выводам: синхронизации и данных. Ленты с обычными светодиодами подключаются через силовые mosfet транзисторы.
Если используется Wemos или другой контроллер, то необходимо скачать прошивку, и залить ее в контроллер. Способов много, я не буду подробно на этом останавливаться. Если берется GLED, то он прошит из коробки. При включении питания прошитая плата поднимает точку доступа WLED-AP, необходимо к ней подключиться с паролем wled1234, ну или отсканировав QR код:
Дальше я, для удобства, буду показывать скрины с компьютера.
Выбираем пункт Config и дальше переходим в пункт WiFi Setup
На данной вкладке вводим параметры своей сети: имя точки доступа, пароль, IP адрес при необходимости, адрес роутера, маску подсети. Так же на этой вкладке можно задать имя mDNS. Дальше идет IP адрес полученный устройством.Ниже в этой вкладке есть пункты настройки точки доступа. Можно задать свои имя и пароль, канал на котором она будет вещаться, и режим запуска точки доступа (запуск при отсутствии соединения при загрузке, отвал от сети, всегда включена, и выключена). В последних прошивках добавлена экспериментальная функция: Отключение спящего режима WiFi. При этом указано, что если нет проблем с подключением к сети, то лучше этот флажок не выставлять.После того как задали свои параметры нажимаем кнопку Save & Connect, при этом девайс перезагружается, и подключается к Вашей сети.
При нажатии на плюсик в правом верхнем углу, мы попадаем в меню подключения устройств. Есть функция автопоиска. Нажимаем кнопку Discover lights... при успехе ниже появляется надпись Found WLED! Так же можно ввести параметры устройства вручную. Затем нажимаем галочку, и устройство добавляется на главном экране. В левом верхнем углу значок корзины, с его помощью можно удалить ненужные девайсы. С этого экрана можно включать и выключать ленту, а так же регулировать яркость. При нажатии на девайс, проваливаемся в основное меню, показанное выше.
Для начала я рекомендую зайти в настройки LED preferences. На скриншоте видна часть отвечающая за настройки порта ленты. Выше я приводил в пример подключение ленты к порту GPIO2, количество светодиодов 50, тип WS281x, световая схема GRB. Так же здесь можно задать инверсию ленты, и начало не с первого светодиода. При этом начальные светодиоды светиться не будут, а просто будут ретранслировать сигнал дальше. Если вы подключаете несколько лент, то нажимаем плюсик ниже, и задаем нужные параметры.
Так же на этой странице можно задать общий максимальный ток всей ленты, ток и напряжение питания отдельного светодиода. Ниже есть индикатор занятой памяти светодиодами.
Пробежимся дальше по пунктам меню:
- Make a segment for each output -- Если у вас подключено несколько лент, то можно задать для каждой отдельный сегмент
- Custom bus start indices -- Пользовательские индексы шины (честно говоря пока не понял что это за параметр)
- Use global LED buffer -- использовать глобальный буфер для светодиодов
- Color order override -- переопределение порядка цветов на отдельных участках. При нажатии на плюсик открываются новые пункты: Стартовый светодиод, количество, цветовая схема
Дополнительные входы:
- Button 0 и Button 1 -- задаем GPIO и функцию входа (Без функции, Кнопка, Инверсная кнопка, Переключатель, Датчик движения, Датчик касания, Аналоговый вход, Инверсный аналоговый вход)
- Disable interval pull-up/down -- Отключение внутренних подтягивающих резисторов
- Touch treshold -- Чувствительность датчика касания
- IR GPIO -- Порт инфракрасного приемника, можно задать тип пульта
- Apply IR change to main segment only -- Управление пультом только основного сегмента
- Relay GPIO -- Порт реле, для отключения питания ленты
Настройки при включении:
- Turn LEDs on after power up/reset -- Выбираем должен ли свет включаться после включения питания или сброса
- Default brightness -- Яркость, при включении
- Apply preset at boot -- При установке этого параметра больше 0, выбирается пресет из памяти, который включится при загрузке девайса
- Use Gamma correction for color -- Использование гамма коррекции для цвета. (Настоятельно рекомендуется)
- Use Gamma correction for brightness -- Использование гамма коррекции яркости. (Не рекомендуется)
- Brightness factor -- Фактор яркости (Не знаю что это)
Плавный переход:
- Crossfade -- Включение плавного переходного эффекта затухания при изменении цветов/яркости
- Transition time -- Сколько миллисекунд длится переход
- Enable Palette transitions -- Включить переходы для палитр
Режим ночника:
- Default duration -- Время изменения ночника
- Default target brightness -- Яркость по истечении времени ночника
- Mode -- Режим (Ожидание установки, Затухание, Затухание цвета, Рассет)
Регулировка белого:
- White balance correction -- Коррекция баланса белого
Расширенные:
- Palette blending -- Режим смешивания палитры
- Target refresh rate -- Скорость обновления (кадры в секунду)
- Config template -- Загрузка файла с параметрами
Как видим только в одном пункте меню масса параметров, для большинства применений все эти параметры ни к чему. Я и сам мало чем пользуюсь. В следующих статьях подробно рассмотрим пресеты, синхронизацию нескольких устройств. Отдельной статьей рассмотрим список эффектов, палитры. Применение этих эффектов.