Світильник з WLED: Розумна лампа своїми руками!

Опубліковано 03.06.2025, 23:50 в категорії YouTube

"Світильник на Aliexpress"

В інтернеті, за приблизно 300 гривень, ви можете купити ось такий світильник. За свою доволі невелику ціну, він може запропонувати дуже багато прикольних речей:

  • Дистанційне керування пультом
  • Приємне біле світіння
  • Керування дотиком
  • Живлення по Type-C
  • Акумулятор всередині і так далі.

Але не дивлячись на все це, це все ще просто звичайний китайський світильник - в ньому немає нічого особливого, що сильно б виділяло його на фоні інших доступних рішень. Тому в даній статті займемось його переробкою, і зробимо з нього світильник, який точно не залишить вас байдужими.

"WLED"

Осовою цього проєкту є WLED. Це Open Source прошивка для мікроконтролерів ESP8266 та ESP32, яка дозволяє керувати світлодіодними стрічками. Дана прошивка має настільки багатий функціонал, що цілком заслуговує на окреме відео. Ця ж стаття буде більше сфокусована саме на переробці світильника, але трішки і про WLED поговоримо.

Тут вам купа різних ефектів, можливість керування з будь якого пристрою в якому є браузер, керування через API, і навіть можливість зробити повноцінну Ambilight підсвітку для вашого телевізора чи монітора. Дуже гарне відео на цю тему було на каналі Іван RIO - ось посилання.

Компоненти

"Компоненти"

Ітак, для переробки нам знадобиться:

  • Сам світильник
  • Мікроконтролер ESP8266 - Wemos D1 mini
  • Метр адресної світлодіодної стрічки - WS2812B (60 світлодіодів на метр)
  • модуль для сенсорної кнопки - TTP223 Mini

Від світильника нам знадобиться лише корпус та шматочок плати. Тобто якщо у вас є матеріали та прямі руки, можна взагалі з нуля зробити унікальний світильник. Але в мене на жаль ні того ні іншого немає, тому буду переробляти готовий.

Стосовно мікроконтролера - підійде будь який модуль ESP32 або ESP8266. Конкретно цей, Wemos D1 mini, є недорогим, поширеним, та доволі маленьким, тому я обрав саме його.

А стосовно стрічки - потрібна обов'язково п'яти вольтова світлодіодна стрічка з адресацією. Такі світлодіодні стрічки відрізняються від звичайних тим, що кожний світлодіод тут по суті являє собою цілу мікросхему з драйвером.

"Макро фото світлодіода WS2812B"

Ця мікросхема приймає в себе дані, і на основі цих даних виставляє необхідний колір. А якщо даних виявилось більше ніж потрібно, то мікросхема починає пропускати їх через себе, тим самим передаючи дані в наступні світлодіоди.

Таким чином можна керувати дуже великою кількістю світлодіодів всього лише одним GPIO піном мікроконтролера, і відтворювати дуже круті ефекти, які неможливо відтворити на звичайній RGB стрічці.

Замість неї, в теорії можна використати готову матрицю з адресованих світлодіодів, але коштує вона немало, ще й споживає дууже багато струму, ну і без переробки вона не влізе в цей світильник, тому цю ідею я відкинув.

Переробка

Перш за все, необхідно розібрати світильник. Треба відклеїти м'яку ніжку знизу, бо під нею ховаються 4 саморізи які тримають нижню частину світильника. Прибравши її, нам відкривається доступ до плати та акумулятора. Плату тримають 3 саморізи. Але відкрутивши їх, прибрати плату нам заважає дротик, який йде до верхньої ємнісної кнопки. Всередині також є ще один саморіз, який тримає дві частини корпусу разом. Від'єднуємо дріт, і тепер час відкрутити саморіз - для цього треба шестигранник на 2.5 мм. Світильник повністю розібраний.

"Розбирання світильника"

Наступна наша задача - підготувати циліндр, на якому ми розташуємо матрицю зі світлодіодної стрічки. Для цих задач бажано використати якусь алюмінієву трубку, але в мене як завжди такого під рукою немає, тому буде колхозинг. Точніше імпровізація))0

Я взяв картонну трубку з під паперових рушників, діаметром 41 мм. Для лампи потрібен відрізок довжиною 13 см.

"Трубка"

А тепер трішки математики. Знаючи діаметр циліндра, ми можемо знайти довжину його окружності:

$$ L = \pi \cdot d = 3,14 \cdot 41 = 128,7$$

А знаючи довжину та висоту, ми можемо уявити циліндр як площину, 128 на 130 мм, яку нам треба рівномірно заповнити світлодіодною стрічкою. Виходячи з геометричних даних площини, а також кількості світлодіодів, я знайшов два способи оптимально це зробити.

  • 10 відрізків по 6 світлодіодів.
  • 8 відрізків по 7 світлодіодів.

Перевагою першого способу є те, що він використовує всі світлодіоди зі стрічки, але відрізки виходять доволі короткі відносно висоти циліндра.

Другий спосіб, хоч і не використовує всі світлодіоди, але натомість заповнює висоту циліндра майже повністю, через що дифузор світильника буде світитись доволі рівномірно. Тому для себе я обрав саме його, і нарізав стрічку на 8 відрізків по 7 світлодіодів. Трубку я поділив на 8 рівних частин, але перш ніж ліпити стрічку на неї, я вирішив прикріпити до неї шматок алюмінієвої банки. Її внутрішня сторона буде працювати як свого роду рефлектор для світла, ще й на додачу можливо поліпшиться охолодження стрічки.

"Алюмінієва банка поверх трубки"

Такий собі Reduce, Reuse, Recycle вийшов.

Тепер можна ліпити світлодіодну стрічку, але це треба зробити правильним чином - серпантином. В стрічки є напрямок, і він повинен співпадати з паттерном який ви можете побачити на зображенні (не звертайте уваги на написи на стрічці, мені просто ліньки було її перевертати де це потрібно :Р)

"Напрямок стрічки"

Розміщення стрічки таким чином спростить подальшу її пайку. Трималось все це так собі, тому щоб в подальшому від нагріву стрічка не відвалилась, я додатково зафіксував її кабельними стяжками.

"Закріплена стрічка"

Пайка

Далі - довга і нудна пайка дротиків. Перш за все, необхідно відновити лінію даних ось таким чином.

"Лінія даних"

В цьому і заключається перевага такого розміщення стрічки - не треба тягнути дріт зверху вниз, і все можна спаяти маленькими шматочками дроту. Хоча натомість це трішки ускладнює софтварну роботу з матрицею, але, нам в цьому плані можна взагалі не перейматись, бо прошивка WLED зробить все за нас.

Тепер, коли лінія даних відновлена, треба кожний відрізок стрічки забезпечити живленням - +5в та земля. Це можна зробити так само як і у випадку з лінією даних, але на мою думку, зручнінше буде поступити іншим чином.

"Живлення"

А саме ось таким. Тобто спочатку з'єднати всі сусідні пади стрічок між собою, а потім за допомогою довших дротів, з'єднати все до купи. Після пайки треба обов'язково перевірити, чи немає там КЗ по живленню, ну і також впевнитись що земля та +5В присутні на кожному відрізку стрічки. Матриця світлодіодів готова.

"Готова матриця"

Прошиваємо мікроконтролер

Наступний етап - прошивка мікроконтролера. Є 3 способи це зробити.

Перший - прошити мікроконтролер прямо з браузера, схожим чином як це було в Meshtastic. Якщо ви на вінді, то для цього мусять бути встановлені драйвери для UART перетворювача наявного на платі обраного вами мікроконтролера. Якщо на Linux - то цього робити не треба, адже тут присутня підтримка цих чіпів на рівні ядра.

На жаль прошивку через браузер підтримують лише Chrome, Opear, та Microsoft Edge. Я цими браузерами не користуюсь, тому переходимо до інших способів.


Наступний спосіб - скомпілювати прошивку власноруч, використовуючи Visual Studio Code, та PlatformIO.

Тут все стандартно - клонуємо репозиторій, відкриваємо його в Platformio, редагуємо під себе файл platformio.ini, компілюємо і прошиваємо. Ось посилання на інструкцію.


І є ще третій спосіб - завантажити вже скомпільований бінарник, і залити його на мікроконтролер за допомогою esptool.py Для плати wemos D1 mini потрібен бінарник з "ESP8266" в назві, наприклад WLED_0.15.1.beta2_ESP8266.bin. Завантажити бінарник можна за ось цим посиланням. Завантажуємо його, підключаємо мікроконтролер, і прошиваємо за допомогою наступної команди:

esptool --port /dev/ttyUSB0 write flash 0x0 WLED_0.15.1.beta2_ESP8266.bin
  • WLED_0.15.1.beta2_ESP8266.bin - це назва завантаженого бінарника,
  • --port /dev/ttyUSB0 - це підключений мікроконтролер. Якщо підключено лише один мікроконтролер, то вказувати це не обов'язково.

Ось посилання на більш детальну інструкцію. Стосовно esptool - гугліть як встановити його на вашу ОС або ваш дистрибутив.

Живлення

Тепер, маючи світлодіодну матрицю, та прошитий мікроконтролер, світильник майже завершений. Щоб не вигадувати нічого в плані живлення та кнопки, я вирішив відрізати ось цей ось шматочок плати, попередньо відпаявши акумулятор.

"Шматочок плати"

Через велику кількість світлодіодів та прожерливий WiFi мікроконтролер, використовувати акумулятор я не бачу сенсу, тож можна використати його в якомусь іншому проєкті. Також слід відпаяти з плати все зайве, окрім юсб роз'єму та перемикача. Це можна зробити за допомогою паяльника, або паяльного фену, або як в моєму випадку - за допомогою нагрівального столика.

"Прибираємо зайве"

Недорога та дуже корисна річ.

"Живлення для мікроконтролера та стрічки"

Тепер, якщо кинути ось таку перемичку, то з цих місць можна буде взяти живлення, і використовувати штатний роз'єм та перемикач. Хоча звісно ніхто не забороняє вам просто встановити новий роз'єм та кнопку.

З іншої частини плати треба випаяти інфрачервоний приймач, якщо плануєте використовувати пульт. На ньому є плоска сторона, і коли вона дивиться вниз, приймач має наступну разпіновку:

"Піни ІЧ приймача"

Ну і тепер трішки про модуль ємнісної кнопки. Якщо зачистити доріжку яка йде до "кнопки", то до неї можна буде підпаяти кнопку з лампи. На платі також є 2 місця під перемички, нам необхідно закоротити перемичку А.

"Плата ємнісної кнопки з замкнутою перемичкою та підпаяною кнопкою"

Але через дуже велику ємність нової кнопки, чутливість модуля буде занадто висока, і буде купа хибних спрацювань. Щоб це виправити, треба з плати світильника також випаяти калібрувальний конденсатор C1. До речі тут стоїть така сама мікросхема, як і на нашому модулі.

"Калібрувальний конденсатор з плати світильника"

Випаяний конденсатор паяємо на місце С2 на модулі ємнісної кнопки:

"Запаяний конденсатор"

Через те що конденсатор більше ніж футпрінт на платі, гарно впаяти його на жаль не вийде, але з ним тепер все працює як слід. За бажанням також можна випаяти світлодіод, бо він постійно світиться, і буде просвічуватись крізь корпус. Залишилось тепер лише зібрати все до купи за ось цією схемою:

"Схема"

Між мікроконтролером та стрічкою бажано також встановити струмообмежувальний резистор, який вбереже GPIO мікроконтролера, якщо щось станеться зі стрічкою.

Стосовно живлення - модуль кнопки та інфрачервоний приймач живиться від 3.3В, матриця живиться від 5В.

А стосовно GPIO - їх взагалі можна обрати довільно, бо потім в прошивці WLED можна налаштувати, що куди підключено. За замовчуванням стрічка підключається до піну D4, кнопку я повісив на D2, а приймач на D1.

Інфрачервоний приймач слід спрямувати вгору, в дифузор світильника, щоб він міг бачити команди з пульта. Після того як все було з'єднано по схемі - подаємо живлення, і впевнюємось що він світиться.

"Світиться лише половина"

Але світиться лише половина світильника. Насправді так і повинно бути, бо WLED не знає шо ми там до нього підключили, і за замовчуванням включає лише 30 світлодіодів. Тож тепер час налаштувати його. При подачі живлення, WLED підіймає свій Access Point, тобто WiFi мережу. Приєднуємось до неї, вводячи пароль - wled1234

Нас одразу ж перекидає на сторінку налаштування. Якщо у вас цього не відбулось, то відкрийте браузер, і перейдіть за айпішником 4.3.2.1, також слід впевнитись що відключено мобільний інтернет.

Пропоную одразу приєднати світильник до нашої мережі - вводимо назву мережі, її пароль і приєднуємось. Тепер попасти в налаштування світильника можна за виданою йому IP адресою. Подивитись її можна в налаштуваннях роутера, або, якщо не знаєте як це зробити, можете просто скачати додаток WLED. Він просканує вашу мережу, і знайде там WLED. Можно прямо тут налаштовувати та керувати світильником.

Налаштування

Тепер час налаштувати матрицю та кнопки. Переходимо в налаштування, та обираємо Led Preferences. Перш за все вводимо тут кількість світлодіодів в поле Lendth.

"Налаштування стрічки"

Далі скролимо вниз, та обираємо тут пін до якого приєднували модуль кнопки. Я приєднував до піна D2, а отже обираю четвертий пін. Обираємо також тип кнопки - pushbutton. Трохи нижче треба обрати пін для інфрачервоного приймача, я приєднував до піна D1, отже обираю п'ятий пін. Також треба обрати тип пульта. Для нашого пульта підходить RGB пульт на 24 кнопки. Обираємо його.

"Налаштування кнопки та пульта"

Також не забуваємо за потреби обмежити струм.

"Обмеження струму"

Зберігаємо налаштування, і відкриваємо 2D Configuration. Тут треба налаштувати матрицю. Обираємо замість 1D Strip - 2D Matrix, і налаштовуємо її наступним чином:

  • Першим світлодіодом ставимо лівий нижній.
  • Далі обираємо тип орієнтації - вертикальний.
  • Вказуємо розмірність матриці, в моєму випадку це було 8 відрізків по 7 світлодіодів, тобто 8 на 7.
  • Ну і також не забуваємо вказати що в нас матриця серпантин.

"Налаштування матриці"

На цьому налаштування світильника завершені.

Світильник

"Світильник"

Як бачите, світильник тепер світиться повністю. Реагує на кнопку, а також реагує на пульт. Щоправда якщо відкрити документацію WLED, то можна побачити, що цей пульт який ми обрали не повністю співпадає з нашим. Тому деякі кнопки ведуть себе не так як повинні. Виправити це можна, якщо написати JSON конфігурацію для пульта, і обрати її. В них на сайті є інструкція. Так можна хоч всі кнопки перебіндити на пульті.

Щож, світильник можна вважати повністю завершеним. Ним можна керувати з пульта, з телефона, або навіть з комп'ютера. Можна налаштовувати розклад, синхронізувати з іншими WLED стрічками якщо такі є в мережі, і так далі. Він доволі непогано виглядає, та має 56 світлодіодів всередині, кожним з яких прошивка може керувати окремо, завдяки чому може відтворювати просто неймовірні ефекти. Камера звісно цього не передасть, але вживу все виглядає дуже гарно. Таким чином, за 578 грн ми зробили просто крутезний світильник, з купою ефектів, купою різних палітр для них, доволі яскравим світінням, і купою інших приколів.

Як я вже й казав, прошивка має дуже багатий функціонал. Чого лише вартує можливість встановити по розкладу ефект Sunrise, який поступово наповнить вашу кімнату світлом, імітуючи схід сонця.

"Ефект Sunrise"

Так можна наприклад допомогти організму прокинутись зимніми ранками, коли немає сонця.

А стосовно інших можливостей - раджу перейти на сайт WLED, і почитати самостійно. В них дуже гарна документація, і я впевнений, ви точно знайдете там щось, що вас зацікавить. А на цьому в мене все.

Post Scriptum

Це текстова версія мого відео. Його можна переглянути за посиланням. Дуже раджу це зробити, адже там можна більш детально побачити процес переробки та налаштування, ну і само собою побачити добірку деяких ефектів, доступних на цьому світильнику.

diy