Просто так подключить гирлянду к ардуине и залить стандартные алгоритмы мне показалось слишком скучным. Потому, я решил привнести что-то новое, модное. Чтобы и самому интересно было и ребёнка порадовать.
Потому, было принято решение подключить эту гирлянду к умному дому. Умный дом у меня работает преимущественно на микроконтроллерах семейства ESP8266 с использованием библиотек ESP/arduino и blynk. Сервер blynk свой, локальный, развернут на RaspberryPi 3.
Как я писал выше, времени было у меня не много, потому я ограничился несколькими стандартными примерами из библиотеки NeoPixel. Переключение между режимами осуществляется с помощью смартфона. Ссылку на скетчи я помещу в конце статьи.
Подключается гирлянда к ESP8266 очень просто, но строго к определенным GPIO, в зависимости от модели модуля и нужной скорости передачи
// three element pixels, in different order and speeds NeoPixelBus strip(PixelCount, PixelPin); //NeoPixelBus strip(PixelCount, PixelPin); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use. // There are other Esp8266 alternative methods that provide more pin options, but also have // other side effects. //NeoPixelBus strip(PixelCount); // // NeoEsp8266Uart800KbpsMethod uses GPI02 instead // You can also use one of these for Esp8266, // each having their own restrictions // // These two are the same as above as the DMA method is the default // NOTE: These will ignore the PIN and use GPI03 pin //NeoPixelBus strip(PixelCount, PixelPin); //NeoPixelBus strip(PixelCount, PixelPin); // Uart method is good for the Esp-01 or other pin restricted modules // NOTE: These will ignore the PIN and use GPI02 pin //NeoPixelBus strip(PixelCount, PixelPin); //NeoPixelBus strip(PixelCount, PixelPin); // The bitbang method is really only good if you are not using WiFi features of the ESP // It works with all but pin 16 //NeoPixelBus strip(PixelCount, PixelPin); //NeoPixelBus strip(PixelCount, PixelPin);
Вот прошлогоднее видео, что из этого получилось.
Ребенок 6лет был в восторге, особенно от RGB-Зебры. Мне кажется, разработчики придумали этот элемент как раз для такого случая.
Елка долго стояла и радовала, аж до марта месяца (у ребенка в конце февраля день рождения и она хотела похвалиться перед друзьями).
Раз уж «корабль так удачно взлетел», в дальнейшем было решено добавить ещё огоньков. Была докуплена ещё одна гирлянда в 50 диодов. При подключении пришлось добавить 5В питания с противоположного конца гирлянды, т.к. она светила тускло и помаргивала. Кроме того, пару недель тому назад дочка вместе с мамой решили купить для ёлки звезду. Купили какую-то самую дешманскую китайскую в фикспрайсе, которая к тому же не работала. Вручили мне со словами «вот, папа, почини и повесь на ёлку!». Внутри звезды оказался один единственный диод, батарейка и выключатель, который оказался рабочий, но с замкнутыми контактами. Контакты я разомкнул, но это всё хозяйство уныло мигало разными цветами (такие встраивают в прыгающие силиконовые шарики). К стати, буду рад, если мне кто объяснит, как этот диод работает без резистора и какой либо схемы. Диод LED с виду самый обычный однокристальный, у него один катод и анод в прозрачной колбе. Выглядит примерно так.
В общем, было решено убрать штатный диод и взамен вставить 5шт. из гирлянды ws2811. Соответственно, скетч и профиль blynk были слегка доработаны для поддержки большего количества огней и звезды. Звезда получила персональную зебру и была исключена из всех алгоритмов анимации. С анимацией звезда не понравилась никому из домочадцев.
В следующем году добавлю координатную анимацию и может ещё кто-то из читателей что-то предложит.
P.S.: Если будет интересно, то в следующих статьях расскажу про своё видение недорогого умного дома. На данный момент у меня настроено управление освещением, аквариумом, климатом, домашним кинотеатром при помощи смартфона, ИК-пульта, датчиков движения, настенных кнопок и голосом.
Источник