УМНЫЙ ДОМ Модульная сеть хаос дома.

Shaitan

★★★✩✩✩✩
17 Фев 2020
190
171
Обновил прошивку до 3-й версии
оптимизирована работа с вычислениями
Все пользовательские настройки вынесены в _user.h
в модуле WS2812 добавлена возможность настраивать матрицу и указывать, на какие гирлянды передавать изменения (включение, эффект, цвет...)
Рисование подключается при желании
1734284409430.png

Например, китайская гирлянда на 200 маленьких светодиодов у меня отлично попадает в размер 18x11
А 4 старых блоками по 50 светодиодов, отлично вешается 25х8.
Вешать гирлянду помогает функция подсказка, которая подсвечивает верхний,нижний и средний ряды
У меня одна гирлянда висит с права налево, а вторая наоборот. что бы синхронизировать эффекты, на одной включена Flip X
 
Изменено:
  • Лойс +1
Реакции: Burai

Burai

✩✩✩✩✩✩✩
12 Янв 2020
50
4
@Shaitan, Доброго времени суток. Обновил. Спасибо. Всё работает, но есть вопросы. Модуль module_WS2812_1D.ino больше не поддерживается? Как в "Цикле" изменить интервал смены цвета? И ещё, можно по подробней как правильно подключить gyver hub на компе? А то у меня это отдельный квест. На https не находит устройства, и в огл0браузере http исправляет на https. Подключаюсь так: запускаю old версию huba по http, находит устройства, запускаю новую версию huba https меняю на http и в настройках по ip добавляю устройства. После перезагрузки в компа приходиться всё повторять. С телелефона, приложением всё вроде находит в автомате. Вот как то так, не уверен, что всё понятно описал.
В скетче есть ограничение на ток потребления? Лента на 300 диодов ws2811 потребляет на белом свете и полной яркости максимум 3 ампера, не маловато? Поддержки микрофона нет в планах? И ещё, можно сделать отдельно эффект ¨белый свет¨ что бы можно было использовать как дополнительное освещение? Алисой или датчиком движения к примеру.
 
Изменено:

Shaitan

★★★✩✩✩✩
17 Фев 2020
190
171
я пытался максимально убрать String, и получается надо поддерживать 2 почти одинаковых модуля.

обращение к модулю таймер по умолчанию раз в секунду. можно исправить.
module_Timer.ino:
void loop_TIMER(){
  EVERY_MS(1000) {
про частоту выполнения команды при активности подумаю. может добавлю параметр

на компе я захожу на сайт http://hub.gyver.ru/ (можно https://hub.gyver.ru/)
в настройках прописал значения mqtt сервера (имя, пароль, порт из WebSocket TLS )
Далее поиск с плюсиком.
Список сохраняется.

Про ограничение тока... добавлю, там пару строчек.

Микрофон думал. получается дополнительный эффект, который без микрофона надо делать заглушкой.
У меня сейчас 5 гирлянд работают синхронно, и если на одной добавить микрофон, то как передавать на соседние.

Белый цвет прекрасно выбирается если загнать насыщенность (SCA) в 0 (у меня получается холодный)
или, если надо теплый
CLR 40
SCA 150
или
SET 0 50 128 150 40
50 - яркость
128 - скорость

Алиса к стати прекрасно меняет цвет.
1735392278269.png
 
Изменено:

Burai

✩✩✩✩✩✩✩
12 Янв 2020
50
4
@Shaitan, Добра. Спасибо за ответы.
поддерживать 2 почти одинаковых модуля.
Хорошо. Я просто хотел посмотреть.
По https вообще не заходит.... Ладно ещё по наблюдаю.
Про ограничение тока
Сейчас ограничение есть или нет?
Ну нет микрофона, значит нет.
Белый цвет прекрасно
Я знаю как включить белый цвет и Алиса у меня умеет переключать цвета. Как сделать, что бы жена сказала: Алиса включи канал.. и включился белый цвет? По датчику движения я вроде придумал как. Спаяю напишу.
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
190
171
Ограничений нет.
Завтра выложу свежую (залью на все свои, посмотрю, как себя ведет.)

на главном экране добавилось поле CMD для приема любых команд (как по сети) и их можно отправлять с wqtt

у меня сейчас
1-я программа включает любимый эффект
2-я программа включает смену случайного выбора канала
3-я программа включает смену следующего канала
можно придумывать свои режимы
1735415821873.png
первая команда P_OFF выключает все запущенные циклы


1735416495906.png

1735415963446.png

1735415992094.png
 
  • Лойс +1
Реакции: Burai

Shaitan

★★★✩✩✩✩
17 Фев 2020
190
171
Добавил ограничение на на ток потребления
добавить в
_user.h:
// лимит по току в миллиамперах, автоматически управляет яркостью (пожалей свой блок питания!) 0 - выключить лимит
#define CURRENT_LIMIT        (2000U)
// Напряжение ленты/матрицы 5V или 12V
#define CURRENT_VOLT         5
К стати. Если на включение/выключение привязывать sw_EFF, то при работающем цикле сложно выключить, так как цикл включит снова.
есть 2 варианта.
1) простой. использовать CMD с командами P_ON и P_OFF. Используется если не критично сообщать Алисе состояние.
2) создается таймер, у меня, например, 4-й. и он уже используется для включения/отключения
отправлением P_ON и P_OFF на ленту и в таймер
включается на сутки.
1735460430090.png

1735460544753.png

К стати. По датчику движения можно в зависимости от времени запускать подсветку с разным цветом и разной яркостью.
яркость днем - 80
яркость ночью - 20
Утром и вечером зависит от минут.
1735460802962.png
1735461086564.png
1735461135751.png1735460887800.png
 
Изменено:

Burai

✩✩✩✩✩✩✩
12 Янв 2020
50
4
@Shaitan,
Что то сломалось.
Arduino: 1.8.19 (Windows 10), Плата:"Generic ESP8266 Module, 80 MHz, Flash, Disabled (new can abort), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, All Flash Contents, 115200"

In file included from C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:80:0,

from D:\chous_home_3\chous_home_3.ino:17:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/fastspi.h:163:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output

# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"

In file included from D:\chous_home_3\chous_home_3.ino:14:0:

D:\chous_home_3\module_WS2812_2D.ino: In function 'void setup_WS2812()':

_user.h:91:31: error: 'D3' was not declared in this scope

#define WS2812_PIN (D3) // D3

^

D:\chous_home_3\module_WS2812_2D.ino:253:25: note: in expansion of macro 'WS2812_PIN'

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

^

module_WS2812_2D:253:64: error: no matching function for call to 'CFastLED::addLeds(CRGB [625], unsigned int)'

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

^

D:\chous_home_3\module_WS2812_2D.ino:253:64: note: candidates are:

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:384:130: note: template<ESPIChipsets CHIPSET, unsigned char DATA_PIN, unsigned char CLOCK_PIN, EOrder RGB_ORDER, unsigned int SPI_DATA_RATE> CLEDController& CFastLED::addLeds(CRGB*, int, int)

template<ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER, uint32_t SPI_DATA_RATE > CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:384:130: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: template argument 2 is invalid

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

^

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:402:95: note: template<ESPIChipsets CHIPSET, unsigned char DATA_PIN, unsigned char CLOCK_PIN> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

template<ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN > static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

^

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:402:95: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: template argument 2 is invalid

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

^

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:420:113: note: template<ESPIChipsets CHIPSET, unsigned char DATA_PIN, unsigned char CLOCK_PIN, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

template<ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER > static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

^

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:420:113: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: template argument 2 is invalid

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

^

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:477:25: note: template<template<unsigned char DATA_PIN, EOrder RGB_ORDER> class CHIPSET, unsigned char DATA_PIN, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

^

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:477:25: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: template argument 2 is invalid

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

^

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:484:25: note: template<template<unsigned char DATA_PIN, EOrder RGB_ORDER> class CHIPSET, unsigned char DATA_PIN> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

^

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:484:25: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: wrong number of template arguments (3, should be 2)

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

^

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:491:25: note: template<template<unsigned char DATA_PIN> class CHIPSET, unsigned char DATA_PIN> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

^

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:491:25: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: wrong number of template arguments (3, should be 2)

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:539:25: note: template<template<EOrder RGB_ORDER> class CHIPSET, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0)

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:539:25: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: wrong number of template arguments (3, should be 2)

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:546:25: note: template<template<EOrder RGB_ORDER> class CHIPSET> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:546:25: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: wrong number of template arguments (3, should be 1)

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:629:25: note: template<EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:629:25: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: template argument 2 is invalid

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

In file included from D:\chous_home_3\chous_home_3.ino:17:0:

C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:671:25: note: template<EBlockChipsets CHIPSET, int NUM_LANES> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {
C:\Users\Admin\Documents\Arduino\libraries\FastLED\src/FastLED.h:671:25: note: template argument deduction/substitution failed:

module_WS2812_2D:253:64: error: wrong number of template arguments (3, should be 2)

FastLED.addLeds<WS2812, WS2812_PIN, COLOR_ORDER>(leds, NUM_LEDS); // инициализация светодиодов (RGB,BRG - порядок цветов)

exit status 1

'D3' was not declared in this scope

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
190
171
мне кажется у тебя и прошлый раз D3 не понравился
попробуй вместо D3 прописать 0
#define WS2812_PIN 0 // D3

нумерация ног на Wemos D1 mini

А еще. ты точно ту плату указываешь?
Например с Generic ESP8266 module проект заработает, но там нет D3 и прочих D*
у меня так
1735656321375.png
 
  • Лойс +1
Реакции: Burai

Burai

✩✩✩✩✩✩✩
12 Янв 2020
50
4
Спасибо. Сейчас собралась на 2U. У меня в основном ESP-01. Сейчас вот собрал одну на ESP 32, работает. Блин как так то. Я же вроде всегда меняю. Ещё раз спасибо, ну и конечно с Наступающим, всех благ и т.д. и т.п. Удачи.

Попробовал. Собралось на D3, с платой D1 mini. Так, что всё работает. Опять моя невнимательность.
 
  • Лойс +1
Реакции: Shaitan

Shaitan

★★★✩✩✩✩
17 Фев 2020
190
171
Добавлен датчик присутствия LD2410. Он определяет не только движение , как SR501, но и присутствие, а так же указывает расстояние до объекта.

1738402241418.png1738402366463.png

Оптимизирована работа модуля module_PWM.ino для ESP32.
Добавлена возможность разделения потоков на два ядра, например ESP32S3.
 
  • Лойс +1
Реакции: Burai