Управление адресными светодиодами WS2812B с помощью ESP8266 и WLED
Как бы вы их ни называли — индивидуально адресуемые RGB-светодиоды, WS2812B или NeoPixels — нельзя отрицать, что они чрезвычайно популярны и являются обязательным компонентом для любого светящегося и мигающего проекта.
Написать код для управления адресными светодиодами не так уж сложно, но что, если вы просто хотите добавить немного фоновой подсветки в свою гостиную или офис и управлять всем со смартфона? На данный момент лучший вариант, без сомнений, — это WLED — бесплатное, многофункциональное мобильное приложение с открытым исходным кодом, которое дает нам полный контроль над широким спектром RGB-светодиодов.
Приложение WLED делает управление индивидуально адресуемыми светодиодами гораздо проще, удобнее и — что самое важное — веселее. Это приложение слишком крутое, чтобы его не попробовать.
В этом руководстве мы узнаем, как установить WLED на плату ESP8266 и использовать его для управления цепочкой адресных светодиодов.
Установка WLED на плату ESP8266
Первый шаг — загрузить инструмент ESPHome-Flasher. Откройте браузер на странице ESPHome-Flasher на GitHub и найдите установщик для вашей операционной системы, затем загрузите его.
Вам также нужно скачать скомпилированный бинарный файл WLED. Перейдите на страницу WLED на GitHub и скачайте файл WLED_0.x.x_ESP8266.bin.
Подключите плату ESP8266 к компьютеру с помощью USB-кабеля. Убедитесь, что используемый USB-кабель поддерживает передачу данных.
Запустите инструмент ESPHome-Flasher.
Выберите COM-порт, к которому подключен ваш ESP8266. Если в выпадающем списке последовательного порта ничего не отображается, возможно, вам нужно обновить драйверы USB-to-serial, или вы используете USB-кабель, который не поддерживает передачу данных.
Нажмите кнопку «Browse» и выберите бинарный файл WLED, который вы только что скачали.
Нажмите «Flash ESP», чтобы прошить прошивку на плату. Это не должно занять больше нескольких минут.
Как только появится надпись «Done! Flashing is complete!», вы можете закрыть программу.
Нажмите на значок сети на панели задач. Вы должны увидеть новую беспроводную точку доступа с именем WLED-AP.
Подключитесь к ней и введите wled1234, когда будет запрошен пароль.
Когда вы подключитесь к сети, ваш браузер по умолчанию автоматически запустится и загрузит домашнюю страницу WLED. Если по какой-то причине он не запустится, откройте новый браузер и перейдите по адресу http://4.3.2.1, который должен привести вас к той же странице.
Выберите WIFI Settings. Откроется раздел настройки WIFI.
Измените Network Name и Network Password на имя и пароль вашей WiFi-сети. Прокрутите вниз до mDNS address и установите адрес по своему желанию. Я назвал свой http://mylights.local/ — с этого момента именно это я буду вводить в веб-браузере в моей WiFi-сети для подключения к своим огням.
Нажмите Save and Connect. Ваш ESP8266 перезагрузится и подключится к вашей WiFi-сети. Тем не менее, рекомендуется сбросить ESP8266, нажав кнопку RST.
Наконец, убедитесь, что вы переподключились к домашней сети.
Теперь перейдите по вашему mDNS-адресу (в моем случае это http://mylights.local/), чтобы получить доступ к пользовательскому интерфейсу (UI) WLED.
Краткий обзор интерфейса WLED
Интерфейс WLED простой, но на первый взгляд может показаться перегруженным. Интерфейс можно разделить на пять секций.
Веб-интерфейс WLED
Приложение WLED
Configuration (Конфигурация): Здесь вы найдете кнопки, такие как Power (для включения и выключения подсветки), Timer (для организации включения и выключения подсветки в определенное время в течение дня), Sync (для синхронизации нескольких устройств WLED в вашей сети), Peek (для просмотра предварительной анимации ваших огней), Config (для настройки количества светодиодов и порта GPIO), а также ползунок Brightness (для управления общей яркостью).
Color Picker (Выбор цвета): Этот раздел позволяет изменять цвет светодиодов, будь то статические или анимированные. Если прокрутить этот раздел вниз, вы получите доступ к различным цветовым палитрам для использования в эффектах.
Effects/Animation (Эффекты/Анимация): Здесь вы найдете библиотеку готовых анимаций для ваших огней. Хотя каждый эффект имеет свою собственную цветовую схему, вы можете легко настроить её в разделе Color Picker.
Segment (Сегмент): Если у вас большой массив или матрица светодиодов, вы можете разделить их на сегменты и назначить каждому сегменту свой цвет, анимацию или цветовую схему.
Presets (Пресеты): Здесь вы можете создавать пресеты для вашего индивидуального светового шоу, а также плейлист для циклического переключения между множеством доступных анимаций.
Настройка WLED
После завершения установки рекомендуется перейти на экран LED Preferences и настроить параметры LED-подсветки.
Нажмите Config и выберите LED Preferences.
Прокрутите вниз до Hardware Setup и выберите тип вашей светодиодной ленты.
Установите «Length» в соответствии с количеством светодиодов. У нас всего 12 светодиодов, поэтому я изменил длину на 12.
Запишите номер GPIO-пина. Этот пин будет использоваться для отправки данных на светодиоды. По умолчанию используется GPIO2 (D4).
Прокрутите вниз до конца и нажмите Save.
Нажмите Back, чтобы вернуться на главный экран.
Подключение адресной LED-ленты WS2812x к ESP8266
После завершения настройки WLED отключите ESP8266 от USB-порта. Давайте подключим адресную LED-ленту к ESP8266.
Подключение довольно простое. Нужно подключить всего три провода: два для питания и один для передачи данных.
Подключите красный провод (+5V/VCC) адресной LED-ленты к пину VIN ESP8266, а белый/жёлтый провод (GND) — к пину GND ESP8266.
Наконец, подключите зелёный провод (DIN) LED-ленты к GPIO2 (D4) ESP8266 через резистор 330 Ом. Этот последовательный резистор предназначен для защиты пина данных. Подойдет резистор от 220 до 470 Ом. Постарайтесь разместить резистор как можно ближе к вашим адресным светодиодам.
Если у вас немного светодиодов, вы можете подключить ESP8266 к компьютеру через USB-кабель и питать ленту напрямую через плату.
Если у вас более крупный проект, требующий большего количества светодиодов, питания от USB будет недостаточно. Вместо этого следует подать питание на ленту от внешнего источника. Имейте в виду, что каждый RGB-светодиод потребляет около 60 мА (20 мА на каждый цветовой канал) при максимальной яркости. Это означает, что на каждые 30 светодиодов ваша LED-лента может потреблять до 1,8 Ампер.
После завершения подключения светодиоды должны загореться мягким жёлтым светом. Если этого не произошло, перепроверьте проводку, прежде чем продолжать.
Отсюда всё остальное можно делать через приложение WLED.
Использование мобильного приложения WLED
Скачайте приложение WLED из Google Play Store или Apple App Store на свой смартфон или планшет.
Откройте приложение и нажмите на значок плюса в правом верхнем углу, чтобы открыть страницу обнаружения.
Нажмите Discover Lights. Это запустит поиск всех подключенных плат с прошивкой WLED в вашей WiFi-сети.
Когда появится надпись Found WLED!, нажмите на значок галочки в правом верхнем углу. Это вернет вас на главную страницу, где будет список всех устройств WLED в вашей сети.
Нажмите на вновь обнаруженное устройство, чтобы открыть панель управления.
Выберите цвет с помощью цветового колеса. И вуаля — у вас теперь есть полностью работающие, дистанционно управляемые адресные светодиоды!
Если цвет светодиодов не совпадает с цветом, который вы выбрали в приложении, перейдите в Config > LED Preferences и измените настройку Color Order в разделе Hardware Setup, пока цвета не совпадут.
Если у вас несколько устройств WLED, возможно, вы захотите изменить имя, отображаемое в приложении, чтобы различать их. Перейдите в Config > User Interface и назовите его как угодно, затем нажмите Save.
Изменение эффектов
WLED предлагает более 180 различных эффектов. Вот тут и начинается настоящее веселье.
Перейдите на вкладку Effects и выберите эффект. Светодиоды отреагируют мгновенно.
Вы можете изменить скорость и интенсивность эффекта. Чем дальше вы перемещаете ползунок, тем быстрее и интенсивнее будет эффект.
Каждый эффект имеет свою собственную цветовую схему, которую вы можете легко изменить в разделе Color Picker. Это сохранит анимационный эффект, но заменит цвета.
Советы и рекомендации
Есть несколько советов и рекомендаций, которые следует учитывать при проектировании вашей установки с ESP8266:
ESP8266 может работать одновременно с тремя лентами.
Хотя большинство типов лент ещё не были протестированы, следующие, как известно, работают: WS281x, SK6812 RGBW, PWM white.
Сразу после завершения установки выберите тип светодиодов, номера пинов, длину и порядок цветов ваших LED-лент на странице настроек LED.
Частоту кадров можно значительно увеличить, выбрав подходящий блок питания для установки и отключив настройку ограничителя яркости WLED.
Настоятельно рекомендуется использовать два LED-пина, GPIO1 (TX) и GPIO2 (D4), так как они поддерживают аппаратное управление.
Когда используется GPIO1, последовательная отладка отключается. Если она вам не нужна, вы можете использовать ленту на этом пине.
GPIO3 — это третий пин на ESP8266, который поддерживает аппаратное управление. Однако он потребляет в 5 раз больше памяти на один светодиод по сравнению с GPIO 1 и 2, поэтому его следует использовать только при небольшом количестве светодиодов (рекомендуется <50).
Можно использовать любой другой пин, но для него будет использоваться метод bitbang, что не рекомендуется с точки зрения надёжности. Лучше всего придерживаться GPIO 1, 2 и, при необходимости, 3.
Производительность определяется тем, сколько светодиодов вы управляете с помощью ESP8266 и сколько выходных пинов ESP8266 вы используете.
Для отличной производительности рекомендуется использовать 512 светодиодов/пин с 2 выходами, всего 1024 светодиода.
Для приемлемой производительности можно использовать 800 светодиодов/пин с 2 выходами, всего 1600 светодиодов.
ESP8266 способен обрабатывать примерно 15 000 светодиодов в секунду (это 250 светодиодов при ~60 кадрах/с, 500 светодиодов при ~30 кадрах/с, 1000 светодиодов при ~15 кадрах/с).