a1xb

На Пикабу
поставил 469 плюсов и 13 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
5 лет на Пикабу
2761 рейтинг 474 подписчика 6 подписок 2 поста 2 в горячем

Делюсь прошлогодней гирляндой, доработанной и улучшенной

Привет, пикабу! 370 дней назад я написал пост про свою гирлянду, срубил плюсцов и пропал на год и пообещал выложить все необходимое, чтобы ее самостоятельно собратьну и переписать все основательно, так как старая версия была ужасна. В общем, выполняю обещание, хоть и очень поздно уже, но, надеюсь, кому-нибудь это все-таки будет полезно. Итак, вот ссылка на скачивание прошивки. Внутри лежит образ прошивки и образ файловой системы. У меня все крутилось на ESP8266 Wemos D1 mini, проверить работоспособность я смог только на ней. Нашел способ быстро и "безболезненно" собирать прошивки пачками под разные девайсы, на днях опробую и выложу уже под больше плат.


Ютьюб почему-то заблокировал вчера мое видео, поэтому, очень надеюсь, что на vimeo все будет ок. Ёлка страшная, собиралась на скорую руку лишь бы успеть, поэтому не судите строго. Сейчас она уже красивее=)

Итак, нам понадобится:

-светодиодная лента с контроллерами WS2812

-контроллер на базе ESP8266, в идеале это Wemos D1 mini, как у меня

-блок питания под ленту и контроллер

-тактовая кнопка и резистор на 10к


Для начала, подключим кнопку, как показано в этом примере, только пин для кнопки будем использовать D1, в обозначениях Wemos D1 mini. Ленту подключаем к пину D2.

Затем зальем прошивку и файловую систему через эту софтину.


Внимание, так как настройки читаются из EEPROM, если вы на своем контроллере раньше в него что-то писали, то настоятельно рекомендую его предварительно очистить.


Итак, по порядку: гирлянда имеет 3 режима работы: как клиент-подключается к вашему роутеру по WiFi, как самостоятельная точка доступа и режим принудительной настройки.


1. Режим клиента

В режиме клиента гирлянда цепляется к вашей вайфай сети, получает адрес в сети роутера и поднимает на нем http сервер. Достучаться до нее можно по адресу, который ей выдал роутер. Например, если роутер выдал ей адрес 192.168.1.10 то адрес для доуступа к веб интерфейсу будет выглядеть как http://192.168.1.10

Первая загрузка веб интерфейса происходит очень долго, запаситесь терпением. Ждать придется около 20 секунд. После загрузки все кешируется (на 1 месяц) и уже работает очень шустро. Также, не знаю как на iOS, но на андроиде можно для веб приложений создавать ярлыки на рабочем столе, я сделал так, чтобы в этом режиме приложение венлядело и работало максимально приближенно к реальному приложению. Очень рекомендую так сделать. При работе в режиме клиента контроллер мигает 1 раз в 10 секунд.


Скриншоты веб-приложения:

Делюсь прошлогодней гирляндой, доработанной и улучшенной Самоделки, Гирлянда, Новый год, Ёлки, Программирование, Видео, Длиннопост
Делюсь прошлогодней гирляндой, доработанной и улучшенной Самоделки, Гирлянда, Новый год, Ёлки, Программирование, Видео, Длиннопост

2. Режим точки доступа

В этом режиме гирлянда сама создает точку доступа с параметрами, которые вы ей укажете. Светодиод контроллера мигает тоже 1 раз в 10 секунд.



3. Режим принудительной настройки.

В этом режиме недоступно управление, он должен использоваться только для перенастройки устройства или, скажем, если вы ввели неправильный пароль и гирлянда не может подключиться к вашей точке доступа.

В режим принудительной настройки можно попасть в 2 случаях:

-если была нажата кнопка прямо после запуска, когда контроллер мигает 2 раза в секунду и ждет в течение 3 секунд пока пользователь нажмет кнопку

-если не удалось прочитать настройки из памяти


Что бы я еще хотел дополнительно упомянуть:


-не все светодиодные ленты имеют светодиоды подключенные по схеме RGB, поэтому, если у вас именно такая лента, то некоторые цвета, например зеленый и красный, поменяются местами.

-максимальная длина ленты 510 светодиодов, можно сделать и больше, но мне пока не надо

-без кнопки устройство всегда будет грузиться в режим принудительно настройки (3)

-есть некоторые баги, о них, просьба, сообщать мне. Протестировать абсолютно все сценарии использования и настройки у меня не хватило сил и времени, так что очень надеюсь на обратную связь.


Пару слов о разработке и технологиях. Хоть у меня и был в запасе целый год, делать гирлянду я начал только в середине нобря, поделал буквально пару дней и закрутился в круговороте дел до середины декабря, с этого момента возобновил разработку и вот вчера, 28 декабря, все доделал. Итого примерно 2 недели по вечерам и ночам, около 60 часов времени. Клиентская часть написана на Angular 5 + прикручены контролы и темы https://material.angular.io/. Обновление параметров сделано через вебсокеты в режиме реального времени. Архитектура приложения построена таким образом, чтобы можно было легко и быстро добавлять новые режимы и параметры к уже существующим режимам. Веб приложение абсолютно всю информацию о режимах, параметрах и типах параметров берет из контроллера, в зависимости от типа параметра рендерит соответствующий ему контрол и привязывает данные. Таким образом, добавление новых режимов в прошивку вызовет автоматическое обновление веб-интерфейса под них. Режиов пока мало, но широкие возможности кастомизации каждого из них на первое время устроят большинство пользователей. Режимы буду добавлять, конечно же, через год=)


Немного картинок по внутрянке, как добавлены режимы:

Делюсь прошлогодней гирляндой, доработанной и улучшенной Самоделки, Гирлянда, Новый год, Ёлки, Программирование, Видео, Длиннопост

и параметры:

Делюсь прошлогодней гирляндой, доработанной и улучшенной Самоделки, Гирлянда, Новый год, Ёлки, Программирование, Видео, Длиннопост

Вот, собственно, и вся магия.

От всей души поздравляю всех с Наступающим новым годом. До новых встреч!


P.S. может кому-то покажется, очень сумбурно написано или слишком много воды или что-то еще - прошу простить, чукча не писатель, чукча программист

Показать полностью 4

Сделал гирлянду на 125 светодиодах с WiFi и...

Привет, пикабу. Давно хотел запилить пост, и предновогодняя волна подсказала мне нужную тему:) Это мой первый пост, поэтому прошу сильно не пинать.

Итак, поехали...

Года 4 назад я задался выбором гирлянды, с детства неровно дышу к этому элементу украшения елки, поэтому покупать абы что не хотелось, но ничего из того, что было представлено на рынке, меня не устроило, поэтому было решено вспомнить о том, что я вроде бы тыжпрограммист и знаю с какой стороны паяльник держать, поэтому было принято решение сделать свою гирлянду с блекджеком кучей разных режимов и цветов. Она уже третий год радует мою семью и всех наших новогодних гостей, но буквально сегодня утром она была знатно модернизирована, о чем я собственно и хотел бы написать.

Сделал гирлянду на 125 светодиодах с WiFi и... Рукожоп, Своими руками, 2017, Гирлянда, Ёлки, Моё, Новый Год, Длиннопост

Построена она на базе 125 RGB светодиодов с независимой адресацией (то есть каждым светодиодом можно управлять отдельно). Цвета каждого диода можно задать в диапазоне от 0 до 255, что дает нам 16 миллионов цветов и оттенков. Первая версия гирлянды была построена на базе ардуины нано, имела на борту 4 кнопки и экран для выбора режима, настройки скорости анимации, яркости и тд и тп. Также был запилен режим спектроанализатора, когда гирлянда реагировала на звуки и каждый отдельно взятый светодиод отображал пиковые значения на определенных частотах.

Сделал гирлянду на 125 светодиодах с WiFi и... Рукожоп, Своими руками, 2017, Гирлянда, Ёлки, Моё, Новый Год, Длиннопост

В этом году я решил, что управление через кнопочки это не тру и переписал все на новую платформу: ESP8266.

Сделал гирлянду на 125 светодиодах с WiFi и... Рукожоп, Своими руками, 2017, Гирлянда, Ёлки, Моё, Новый Год, Длиннопост

Она намного мощнее ардуины (что несомненный плюс в плане преобразования Фурье для спектроанализатора) и имеет встроенный WiFi модуль на борту. Для управления гирляндой я написал мобильное приложение. В нем можно в удобном виде выбрать режим анимации, настроить скорость, яркость цвет и прочие параметры, многие из которых уникальны для отдельно взятого режима. Пока приложение очень сырое, как и код прошивки модуля, но как только все будет допилено до ума, я все выложу в открытый доступ.


Думаю, достаточно слов, хотелось бы добавить видео, но рейтинга не хватает, поэтому ссылку на него оставлю в комментах (С названий режимов просьба не угорать, напряг с фантазией у меня :D).


P.S. если наберется достаточно желающих, могу написать еще по этой теме парочку статей, в слеующем году:)

Показать полностью 3
Отличная работа, все прочитано!