Управление адресными светодиодами WS2812B с помощью ESP32 и WLED
Независимо от того, называете ли вы их индивидуально адресуемыми RGB-светодиодами, WS2812B или NeoPixels, нельзя отрицать, что они чрезвычайно популярны и являются обязательным компонентом для любого светящегося и мигающего проекта.
Написание кода для управления адресными светодиодами не является сложной задачей, но что если вы просто хотите добавить немного фоновой подсветки в гостиную или офис и управлять всем этим со смартфона? В настоящее время лучший вариант, без сомнения, — это WLED — бесплатное, многофункциональное мобильное приложение с открытым исходным кодом, которое даёт нам полный контроль над широким спектром RGB-светодиодов.
Приложение WLED делает управление индивидуально адресуемыми светодиодами гораздо проще, удобнее и, что самое важное, веселее. Это приложение слишком крутое, чтобы не попробовать.
В этом руководстве мы узнаем, как установить WLED на плату ESP32 и использовать его для управления цепочкой адресных светодиодов.
Установка WLED на плату ESP32
WLED сделал установку этой пользовательской прошивки на плату ESP32 невероятно простой. Мы просто подключаем ESP32 и нажимаем несколько кнопок, а установщик делает всё остальное.
Подключите плату ESP32 к компьютеру с помощью USB-кабеля. Убедитесь, что используемый USB-кабель поддерживает передачу данных.
Откройте веб-браузер и перейдите на install.wled.me. Этот URL приведёт вас на веб-сайт, показанный ниже.
Примечание
Убедитесь, что браузер поддерживает Web Serial. На момент написания это означает «настольные» браузеры, такие как Google Chrome, Microsoft Edge или Opera. Другие браузеры (Safari, Firefox, Explorer и мобильные) работать не будут.
Нажмите Install.
Выберите COM-порт, к которому подключён ваш ESP32, и нажмите Connect. WLED использует Web Serial API для открытия последовательных портов на вашем компьютере.
Если ничего не появляется, возможно, вам нужно обновить драйверы USB-to-serial, или вы используете USB-кабель, который не поддерживает передачу данных.
Нажмите „Install WLED“, чтобы начать процесс.
Подтвердите установку для прошивки платы. Этот дополнительный шаг служит последним предупреждением, после которого все данные на устройстве будут стёрты.
Важно отметить, что некоторые платы ESP32 требуют нажатия кнопки BOOT перед нажатием финальной кнопки установки.
Процесс установки должен начаться. Теперь вы можете отпустить кнопку BOOT, так как подключение было установлено. Установка займёт всего несколько минут.
Нажмите Next для завершения установки.
Введите учётные данные Wi-Fi и нажмите Connect. Это подключит ваш ESP32 к вашей сети Wi-Fi и сохранит данные для дальнейшего использования.
Примечание
Сеть WiFi должна быть 2,4 ГГц; ESP32 не поддерживает сети 5 ГГц.
Должно появиться сообщение «Device connected to the network!». Нажмите Visit Device, чтобы получить доступ к пользовательскому интерфейсу WLED (UI).
Запишите URL-адрес, так как он понадобится вам для доступа к интерфейсу WLED.
Краткий обзор интерфейса WLED
Интерфейс WLED прост, но поначалу может показаться перегруженным. Интерфейс можно разделить на пять разделов.
Веб-интерфейс WLED
Приложение WLED
Конфигурация: Здесь вы найдёте кнопки: Power (для включения и выключения подсветки), Timer (для настройки расписания включения и выключения подсветки в определённое время суток), Sync (для синхронизации нескольких устройств WLED в вашей сети), Peek (для просмотра анимации подсветки), Config (для настройки количества светодиодов и GPIO-порта) и ползунок Brightness (для управления общей яркостью).
Выбор цвета: Этот раздел позволяет изменять цвет светодиодов, будь то статический или анимированный. Если вы прокрутите этот раздел вниз, вы получите доступ к различным цветовым палитрам для использования в эффектах.
Эффекты/Анимация: Здесь вы найдёте библиотеку готовых анимаций для вашей подсветки. Хотя каждый эффект имеет собственную цветовую схему, вы можете легко настроить её в разделе «Выбор цвета».
Сегменты: Если у вас большой массив или матрица светодиодов, вы можете разделить их на сегменты и назначить каждому сегменту свой цвет, анимацию или цветовую схему.
Пресеты: Здесь вы можете создавать пресеты для вашего пользовательского светового шоу, а также плейлист для циклического воспроизведения множества доступных анимаций.
Настройка WLED
Изменение URL-адреса
После завершения настройки рекомендуется перейти на экран настройки WiFi и изменить адрес на что-нибудь запоминающееся, чтобы вы могли легко получить доступ к этому интерфейсу снова.
Нажмите на Config.
Выберите WiFi Setup.
Прокрутите вниз до mDNS address и задайте адрес по своему усмотрению. Я назвал свой http://mylights.local/ — с этого момента именно это я буду вводить в веб-браузере в моей сети WiFi для подключения к моей подсветке.
Прокрутите страницу вверх или вниз и нажмите Save & Connect.
Должно появиться сообщение „WiFi settings saved.“.
Теперь подключитесь по новому IP-адресу.
Настройка светодиодов
Нажмите на Config и выберите LED Preferences.
Прокрутите вниз до Hardware Setup и выберите тип вашей светодиодной ленты.
Установите значение «Length» в соответствии с количеством светодиодов. У нас всего 12 светодиодов, поэтому я изменил длину на 12.
Запишите номер GPIO-пина. Этот пин будет использоваться для передачи данных на светодиоды. По умолчанию используется GPIO16.
Прокрутите вниз и нажмите Save.
Нажмите Back, чтобы вернуться на главный экран.
Подключение адресной светодиодной ленты WS2812x к ESP32
После завершения настройки WLED отключите ESP32 от USB-порта. Давайте подключим адресную светодиодную ленту к ESP32.
Подключение довольно простое. Нужно соединить всего три провода: два для питания и один для передачи данных.
Подключите красный провод (+5V/VCC) адресной светодиодной ленты к пину VIN на ESP32, а белый/жёлтый провод (GND) — к пину GND на ESP32.
Наконец, подключите зелёный провод (DIN) светодиодной ленты к GPIO16 (RX2) ESP32 через резистор 330 Ом. Этот последовательный резистор предназначен для защиты линии данных. Подойдёт резистор номиналом от 220 до 470 Ом. Старайтесь разместить резистор как можно ближе к адресным светодиодам.
Если у вас немного светодиодов, вы можете подключить ESP32 к компьютеру через USB-кабель и запитать ленту непосредственно через плату.
Если у вас более крупный проект, требующий больше светодиодов, питания от USB будет недостаточно. Вместо этого следует подавать питание на ленту от внешнего источника. Имейте в виду, что каждый RGB-светодиод потребляет около 60 мА (20 мА на цветовой канал) при максимальной яркости. Это означает, что на каждые 30 светодиодов ваша лента может потреблять до 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 и выберите эффект. Светодиоды отреагируют немедленно.
Вы можете изменить скорость и интенсивность эффекта. Чем дальше вы перемещаете ползунок, тем быстрее и интенсивнее эффект.
Каждый эффект имеет свою собственную цветовую схему, которую вы можете легко изменить в разделе «Выбор цвета». Это сохранит анимационный эффект, но заменит цвета.
Советы и рекомендации
Вот несколько советов и рекомендаций, которые следует учитывать при проектировании вашей установки с ESP32:
ESP32 может обрабатывать до десяти лент одновременно.
Хотя большинство типов лент ещё не протестированы, следующие типы точно работают: WS281x, SK6812 RGBW, PWM white.
Сразу после завершения установки выберите тип светодиодов, номера пинов, длину и порядок цветов ваших светодиодных лент на странице настроек LED.
Частоту кадров можно значительно увеличить, выбрав подходящий источник питания для установки и отключив настройку ограничителя яркости WLED.
Ограничений по пинам нет; используйте любой свободный пин.
Производительность определяется тем, сколько светодиодов вы подключаете к ESP32 и сколько выходных пинов ESP32 вы используете.
Для отличной производительности рекомендуется использовать 512 светодиодов/пин с 4 выходами, всего 2048 светодиодов.
Для оптимальной производительности рекомендуется использовать 800 светодиодов/пин с 4 выходами, всего 3200 светодиодов.
Для хорошей производительности можно использовать 1000 светодиодов/пин с 4 выходами, всего 4000 светодиодов.
Для приемлемой производительности можно использовать 1000 светодиодов/пин с 5 выходами, всего 5000 светодиодов.
Для приемлемой производительности можно использовать 800 светодиодов/пин с 6 выходами, всего 4800 светодиодов.
ESP32 способен обрабатывать приблизительно 65–85 тысяч светодиодов в секунду (это 1000 светодиодов при ~70 кадрах/с, 2000 светодиодов при ~35 кадрах/с, 4000 светодиодов при ~18 кадрах/с).