WS2812 (updated: 03 Feb 2017, 13:33:45)

Поддержка RGB светодиодов WS2812

Подключение:

Питание WS2812 5 вольт. Требуется обеспечить соответствующий ток в зависимости от количества светодиодов. Цвета передаются в формате GRB !

Вход WS2812 необходимо подключить к GPIO 3(RX). Во избежание выхода из строя входа первого GRB светодиода вывод данных подключаем после подключения GND и VDD. Светодиоды боятся статики.

Отправка GET команды

http://[ip_adr]/rgbsend?data=XXXXXX , где XXXXXX - данные в hex в формате 255 уровней яркости(8 бит) каждого из 3 цветов. По 3 байта каждый LED.

Пример: 0000FF00FF00FF0000 - такая команда зажжёт три первых светодиода разными цветами: синим, зеленым, красным.

http://[ip_adr]/rgb16send?data=XXX , где XXX - данные в hex в формате 15 уровней яркости(4 бита)  каждого из 3 цветов.

Пример: 00F0F0F00 - такая команда зажжёт три первых светодиода разными цветами: синим, зеленым, красным.

Управление через MQTT

Топик login/hostname/rgbsend - аналогично GET команде установки 255 уровней.

Топик login/hostname/rgb16send - аналогично GET команде установки 15 уровней.

Управление через UDP

Экспериментальная функция. Отправляем на порт 1234 данные в hex или в бинарном формате.

Режим UDP управления выбирается в дополнительных настройках (в шестеренке): 0 - выключен UDP. 1 - 8 битный hex режим(2 буквы на 1 цвет). 2 - 4 битный hex режим(1 буква на цвет). 3 - бинарный режим.

Управление из конструктора кода

Имеется возможность обратится напрямую к функции ws2812_push(массив данных, длина массива)  для формирования своих цветовых эффектов.

Пример:

static uint8_t data[]={
255,0,0,
0,255,0,
0,0,255
};
ws2812_push(data, 9);
Данный пример зажжет 3 первых светодиода разным цветом: синим, зеленым, красным


Для развития опции принимаю предложения по формированию функций эффектов и других возможных применений опции. Если у вас есть наработки кода для данной опции, то рассмотрю варианты интеграции их в проект.