Проект «Wi-Fi LED контроллер»
Задача
Создание контроллера, управляющего индивидуально-адресуемой светодиодной лентой на умных светодиодах WS2812B, известных также как Neopixel. Поддержка множества одиночных и групповых эффектов, управление контроллером как при помощи GET запросов по сети, так и через веб-интерфейс, работа по Wi-Fi. Возможность интеграции с оборудованием умного дома.
Оборудование
- Модуль ESP8266 (WeMos D1 mini)
- Arduino Pro Mini 3,3 В
- Светодиодная лента на светодиодах WS2812B
Светодиодные эффекты
Лента на умных светодиодах WS2812B это не обычная светодиодная лента, которая светится одним цветом или может просто менять цвет своего свечения, это нечто большее. Благодаря индивидуальной адресации каждого светодиода, лена способна создавать удивительно красивые динамические эффекты. Это трудно описать словами — это нужно просто видеть.
Кроме того, светодиоды могут располагаться не линейно, а полностью заполнять какое-нибудь пространство, например нишу в стене и в этом случае можно создавать разноцветные световые картины.
В данном проекте система поддерживает несколько десятков очень красивых эффектов — этого достаточно для любого разумного применения, но при желании можно добавить и новые эффекты.
Поддержка библиотек
В данном проекте «из коробки» поддерживаются две библиотеки эффектов — Neopixel и FastLED. Этого уже более чем достаточно — каждая содержит десятки эффектов и возможность модификации их и добавления новых. Опять же, при желании можно подключить и другие библиотеки.
Список эффектов
Здесь приведён список эффектов, поддерживаемых системой. Названия соответствуют стандартным названиям эффектов в используемых библиотеках. Если в названии эффекта присутствует пометка «all», это значит, что это не одиночный эффект, а множество эффектов, объединённых в одну последовательность и плавно перетекающих один в другой.
- StrandTest (all)
- ColorWipes
- TheaterChases
- Rainbow
- RainbowCycle
- theaterChaseRainbow
- RGBWstrandTest (all)
- RGBWcolorWipes
- RGBWwhiteOverRainbow
- RGBWpulseWhite
- RGBWrainbowFade2White
- colorPalette (all)
- RainbowColors_p / LINEARBLEND
- RainbowStripeColors_p / NOBLEND
- RainbowStripeColors_p / LINEARBLEND
- SetupPurpleAndGreenPalette
- SetupTotallyRandomPalette
- SetupBlackAndWhiteStripedPalette
- SetupBlackAndWhiteStripedPalette
- CloudColors_p / LINEARBLEND
- PartyColors_p / LINEARBLEND
- myRedWhiteBluePalette_p / NOBLEND
- myRedWhiteBluePalette_p / LINEARBLEND
- colorTemperature
- cylon
- demoReel100 (all)
- demoReel100 / gPatterns[0]
- demoReel100 / gPatterns[1]
- demoReel100 / gPatterns[2]
- demoReel100 / gPatterns[3]
- demoReel100 / gPatterns[4]
- demoReel100 / gPatterns[5]
- fire2012WithPalette
- FirstLight
Конфигурация
В данном проекте применены два контроллера: основной управляющий на ESP8266 (конкретно WeMos D1 mini, но это может быть почти любой другой из семейства ESP8266) и дополнительный на Arduino Pro Mini для управления непосредственно светодиодной лентой. Такое решение применено для разгрузки основного контроллера и обеспечения плавной работы эффектов.
Примечание. Некоторые эффекты требуют постоянной работы контроллера и при малейших задержках эффекты начинают дёргаться и «замораживаться», что совершенно неприемлемо
В тандемном режиме система работает прекрасно — все эффекты идут абсолютно плавно и веб-сервер тоже не отвлекается на стороннюю работу и может спокойно выполнять свои функции.
Управление эффектами
Управлять эффектами можно двумя способами: либо из веб-интерфейса, либо через сеть, посылая GET запросы на AMS сервер. Это позволяет интегрировать контроллер в любую систему домашней или промышленной автоматизации. Любое ваше оборудование может с лёгкостью управлять работой эффектов и по сети и через Wi-Fi.
Управление по сети
Управление контроллером по сети производится при помощи посылки простых GET запросов. Просто указывается номер эффекта и он практически мгновенно включается.
http://IP адрес/?effect=1 http://IP адрес/?effect=2 http://IP адрес/?effect=3
Для остановки работающего эффекта и выключения ленты посылается GET запрос вида:
http://IP адрес/?effect=0
Для того, чтобы узнать какой эффект работает в данный момент, нужно послать запрос вида:
http://IP адрес/?status
и контроллер ответит:
Status: effect: 1
где «1» — это номер текущего эффекта. При необходимости этот набор команд можно дополнить любыми другими нужными командами.
Управление через веб-интерфейс
Управлять эффектами из веб-интерфейса можно, просто выбирая из выпадающего списка нужный эффект и нажимая кнопку «Включить». Рядом крупно пишется название текущего эффекта.
Различные эффекты могут применяться просто для красоты или для индикации каких-либо параметров, например, температуры, охранных функций и т. п. в вашем умном доме, офисе, для рекламы или уличной иллюминации
Реализованные функции
- Управление умными светодиодами WS2812B (Neopixel)
- Поддержка десятков одиночных и групповых эффектов
- Поддержка разных библиотек эффектов
- Управление контроллером по сети
- Управление контроллером через веб-интерфейс
- Беспроводная работа через Wi-Fi
- Выдача статуса устройства по запросу
- Возможность интеграции с оборудованием умного дома
Заказать проект
Для того, чтобы заказать проект, пришлите письмо с описанием задачи на адрес info@hi-lab.ru