Просто так подключить гирлянду к ардуине и залить стандартные алгоритмы мне показалось слишком скучным. Потому, я решил привнести что-то новое, модное. Чтобы и самому интересно было и ребёнка порадовать.
Потому, было принято решение подключить эту гирлянду к умному дому. Умный дом у меня работает преимущественно на микроконтроллерах семейства ESP8266 с использованием библиотек ESP/arduino и blynk. Сервер blynk свой, локальный, развернут на RaspberryPi 3.
Как я писал выше, времени было у меня не много, потому я ограничился несколькими стандартными примерами из библиотеки NeoPixel. Переключение между режимами осуществляется с помощью смартфона. Ссылку на скетчи я помещу в конце статьи.
Подключается гирлянда к ESP8266 очень просто, но строго к определенным GPIO, в зависимости от модели модуля и нужной скорости передачи
// three element pixels, in different order and speeds
NeoPixelBus<NeoGrbFeature, Neo800KbpsMethod> strip(PixelCount, PixelPin);
//NeoPixelBus<NeoRgbFeature, Neo400KbpsMethod> 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<NeoGrbFeature, Neo800KbpsMethod> 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<NeoGrbFeature, NeoEsp8266Dma800KbpsMethod> strip(PixelCount, PixelPin);
//NeoPixelBus<NeoRgbFeature, NeoEsp8266Dma400KbpsMethod> 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<NeoGrbFeature, NeoEsp8266Uart800KbpsMethod> strip(PixelCount, PixelPin);
//NeoPixelBus<NeoRgbFeature, NeoEsp8266Uart400KbpsMethod> 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<NeoGrbFeature, NeoEsp8266BitBang800KbpsMethod> strip(PixelCount, PixelPin);
//NeoPixelBus<NeoRgbFeature, NeoEsp8266BitBang400KbpsMethod> strip(PixelCount, PixelPin);
Вот прошлогоднее видео, что из этого получилось.
Ребенок 6лет был в восторге, особенно от RGB-Зебры. Мне кажется, разработчики придумали этот элемент как раз для такого случая.
Елка долго стояла и радовала, аж до марта месяца (у ребенка в конце февраля день рождения и она хотела похвалиться перед друзьями).
Раз уж «корабль так удачно взлетел», в дальнейшем было решено добавить ещё огоньков. Была докуплена ещё одна гирлянда в 50 диодов. При подключении пришлось добавить 5В питания с противоположного конца гирлянды, т.к. она светила тускло и помаргивала. Кроме того, пару недель тому назад дочка вместе с мамой решили купить для ёлки звезду. Купили какую-то самую дешманскую китайскую в фикспрайсе, которая к тому же не работала. Вручили мне со словами «вот, папа, почини и повесь на ёлку!». Внутри звезды оказался один единственный диод, батарейка и выключатель, который оказался рабочий, но с замкнутыми контактами. Контакты я разомкнул, но это всё хозяйство уныло мигало разными цветами (такие встраивают в прыгающие силиконовые шарики). К стати, буду рад, если мне кто объяснит, как этот диод работает без резистора и какой либо схемы. Диод LED с виду самый обычный однокристальный, у него один катод и анод в прозрачной колбе. Выглядит примерно так.
В общем, было решено убрать штатный диод и взамен вставить 5шт. из гирлянды ws2811. Соответственно, скетч и профиль blynk были слегка доработаны для поддержки большего количества огней и звезды. Звезда получила персональную зебру и была исключена из всех алгоритмов анимации. С анимацией звезда не понравилась никому из домочадцев.
В следующем году добавлю координатную анимацию и может ещё кто-то из читателей что-то предложит.
Ссылка на библиотеку
Ссылки на скетчи:
раз
два
P.S.: Если будет интересно, то в следующих статьях расскажу про своё видение недорогого умного дома. На данный момент у меня настроено управление освещением, аквариумом, климатом, домашним кинотеатром при помощи смартфона, ИК-пульта, датчиков движения, настенных кнопок и голосом.
Комментарии (8)
safari2012 Автор
31.12.2017 10:04Точно, это он. Спасибо, интересно было почитать. У меня RGB-вариант.
Eeegrek
31.12.2017 11:20Могу пояснить только на счёт отсутствия ограничительного резистора. Китайцы сделали гениальный ход: они ставят совершенно хреновенько батарейку, которая выдает очень малый ток, меньше максимального прямого тока диода! Я до этого догадался после того, как решил на паре китайских поделок заменить фиговые батарейки на нормальные того же типоразмера.
tambovchanin
31.12.2017 20:58Было бы интересно посмотреть и почитать про автоматизацию аквариума.
safari2012 Автор
03.01.2018 01:41Обязательно будет статья про аквариум. А посмотреть на него краем глаза можно на моем канале в YouTube уже сейчас.
besitzeruf
01.01.2018 07:28Просто так подключить гирлянду к ардуине и залить стандартные алгоритмы мне показалось слишком скучным.
… ипотому я ограничился несколькими стандартными примерами из библиотеки NeoPixel.
… как так-то?Hellsy22
01.01.2018 21:27Вы не понимаете сути DiY. Автор же успешно подключил два провода к нужными выводам, подключил питание и все заработало. Это не магия, не мистика, а торжество науки и интеллекта! Подождите еще пару лет и будут вам не только стандартные шаблоны.
lopatoid
> буду рад, если мне кто объяснит, как этот диод работает без резистора и какой либо схемы.
geektimes.ru/post/258290