Рейтинг статьи: 3.750/5 (12 голосов).
Используя прошивку от Gyver Lamp сделал несколько оконных гирлянд, после чего возникло желание включать/выключать их по времени и что бы эффекты менялись одновременно.Спонсор этой страницы:
Используя прошивку от Gyver Lamp сделал несколько оконных гирлянд, после чего возникло желание включать/выключать их по времени и что бы эффекты менялись одновременно.Материалы
Из материалов только одна esp8266. Я использовал esp-01, но так как я использую только WiFi можно брать любую.
Для гирлянд можно использовать новые WS2812 гирлянды. Если с Китая уже не успеваете, на ягодках поищите "умная гирлянда 20 м" (правда там китайский модуль с управлением по BT), но никто не мешает заменить его на ESP8266 WEMOS.
Настройка
Настрока спартанская.
При первом запуске появится точка доступа с именем "ESP Config", где указываются SSID и пароль.
В define.h статический IP адрес (при необходимости), шлюз, и
строку для ответа приложению от GyverLamp (класическому, Koteyka и т.д.)
#define MAX_IP 14 - Максимальное планируемое количество ламп в сети, не больше 16.
У меня на смартфоне выглядят красиво кратно 7
#define MAX_ALARMS 25 - Максимальное количество запланированных событий.
//#define IP_STATIC - Если нужен статический IP, раскоментируйте
Управление со смартфона
На Android есть приложение GyverHub
Установив приложение можно управлять всеми устройствами.
При включенном режиме "Копировать" раз в 10 секунд происходит опрос первой лампы из списка и
синхронизирует номер эффекта с другими лампами.
Лучше установить режим цикла на 1-й лампе сколько необходимо, например 2 минуты, а на остальных
лампах максимальный - 60 минут.
Для примера, включить гирлянды в 6:30 (как будильник в рабочие дни) в случайном режиме, в 8:00 (когда вы уже ушли) выключить.
Перед Вашим приходом в 18:00 включить, поздно вечером 20:00 включить эффект огонь, и ночью 23:00 все выключить.
Можно принимать команды с других устройств, например с датчика движения принять P_ON, и передавать их на выбранные лампы/гирлянды.
void Get_Status() {
EVERY_MS(10000) {
P_ON - Включить лампы
P_OFF - Выключить лампы
EFFnn - Номер эффекта
EFFRND - Случайный номер эффекта*
Случайный выбор на лампе
TXT-fav on
TXT-fav off
Прошивка
Текущая прошивка 13.01.2024 (Версия 2)
lamp_hub.zip
Изменение в версии 25/12/2023
Появилась возможность:
Включать/выключать любые лампы
Выбирать эффект для нулевой лампы (при включенном режиме синхронизации, остальные возьмут пример с нулевой)
В событиях команды транслировать на выбранные лампы
Добавился скрипт на Python для загрузки списка событий на сервер управления
Появилась возможность управлять Умной розеткой
Так же есть скрипт на Python для отсылки команд на лампы
Изменение в версии 29/12/2023
Появилась возможность:
Указывать какими лампами управлять, и какие параметры (EFF,BRI,SPD,SCA) синхронизировать.
Оптимизирована работа с сетью. Опрос устройств стал стабильным)
Появилась возможность управлять Кристальной гирляндой
Добавлена возможность загрузки python скриптом списка будильников и списка IP устройств.
Добавлен python скрипт для сканирования сети в поисках устройств
Изменение в версии 07/01/2024
Переведено хранение данных из EEProm в файловую систему ESP8266 Вместо EEManager используется FSManager Добавлена возможность сменить сеть (данные сети сохраняются в файл "wifi.dat") Добавлена возможность принимать он других команды и пересылать их устройствам (добавлено для обслуживания датчиков движения, модулей температуры и влажности). В закладке PULT высвечиваются имена ламп из DISCOVERY.Изменение в версии 13/01/2024
Оптимизирована библиотека FSManager (Необходимо обновить из архива) Все переменные хранятся в файловой системе в папке /var/ в файле с именем переменной.dat Добавлена возможность синхронизации Вкл/Выкл В закладке PULT умные розетки с именем G220.... подсвечиваются другим цветом. Добавилась возможность обрабатывать ИК пульт
04.02.2024
Проект переехал в Хаос домНастройка ИК пульта
Количество обрабатываемых кнопок указываетя в #define MAX_IR 20 // Максимальное количество IR команд в файле IR_my.ino указывается PIN куда подключен IR приемник. #define IR_PIN 4 // D2 Пин, куда подключет IR
Значения кодов для удобства вносятся в 16-ричном виде Есть возможность вносить самостоятельно. Для внесения в автоматическом режиме необходимо активировать запись (переключатель active), обнулить при необходимости поле HEX code и нажать выбранную кнопку на пульте. Код запишется.
В поле акция можно вносить любые команды типа P_ON, EFF41, BRI50 Или встроенные команды, которые отрабатывают в зависимости от состояния ON_OFF, BRI-, EFF+
У некоторых пультов при удержании кнопки генеруется FFFFFFFF. Если вы используете кнопки изменения яркости, включите Повтор 0xFFFFFFFF.
Если вместо кода вписать FFFFFFFF (любой код) а в акции вписать IR или IRx, то код в виде команды, например IR 16715760 или IRx FF0FF0 уйдет на лампу, или другое устройство, принимающее команды.
Python
*Данные действия совсем не обязательны. Вы можете настроить все из приложения.
Для поиска устройств предусмотрен discovery.py в котором надо в случае необходимости указать свою сеть. (например вместо 192.168.100.0/24 192.168.0.0/24)
Скрипт сoздаст файл IP.txt
Поля:
IP;1;192.168.100.30;1111
# SETIP - Команда
# 1 - Номер объекта
# 192.168.100.30 - IP объекта
# 1111 - EFF,BRI,SPD,SCA
Для закачки на ESP сервер управления send_ip.py составлен список событий для примера
Для закачки событий файле alarms.txt составлен список событий для примера
# Включить лампы с 0 по 3 Пн-Пт
ALARM;0;1;06:31;0111110;1111000;P_ON
# Выключить таймеры отключения
ALARM;1;1;06:40;0111110;1111000;TMR_SET 0 1 0
# Включить режим цикла для лампы 0 все дни недели
ALARM;2;1;07:00;1111111;1000000;TXT-fav on
# Выключить лампы с 0 по 3 во все дни недели
ALARM;3;1;08:00;1111111;1111000;P_OFF
Отредактируйте скрипт send_alarm.py, указав IP адрес ESP сервера
Для примера посылки команд на лампу скрипт send_udp.py
Иногда лампа при потере WiFi Router становится точкой доступа, но при этом продолжает быть в сети, и отзывается как 192.168.4.1
Для исправления
испотзьзуйте скрипт send_udp_esp_mode.py
Идеи для реализации приветствуются.
Хорошего нового года.
Оказалось, что для проекта нужна еще библиотека PubSubClient
PubSubClient.zipAndroid Arduino Программирование Python
Комментарии к статье:
-
2024-01-03 17:00:24, Гость :
У меня не собирается.
-
2024-01-03 18:28:42, Гость :
У меня не собирается.
-
2024-01-03 20:31:47, 123 :
А чего не хватает, на что ругается?
-
2024-01-03 20:53:50, Гость :
А как сюда лог сборки прикреппить?
-
2024-01-03 21:31:19, Гость :
Arduino: 1.8.19 (Windows 7), Плата:"Generic ESP8266 Module, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 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, Only Sketch, 115200"
In file included from C:Program Files (x86)ArduinolibrariesGyverHub-mainsrc/GyverHub.h:59,
from C:lamp_hublamp_hub_2lamp_hub_2.ino:3:
C:Program Files (x86)ArduinolibrariesGyverHub-mainsrc/sync/mqtt.h:14:10: fatal error: PubSubClient.h: No such file or directory
14 | #include
| ^~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Ну вот как то так.
-
-
-
2024-01-03 21:29:29, Гость :
У меня не собирается.
-
2024-01-03 22:34:44, 123 :
C:Program Files (x86)ArduinolibrariesGyverHub-mainsrc/sync/mqtt.h:14:10: fatal error: PubSubClient.h: No such file or directory
Не хватало библиотеки PubSubClient.zip
Я ее на прямую не использовал.
Все добавил-
2024-01-04 19:06:29, Гость :
Да спасибо. Всё получилось. Правда пршлось ещё добавит библиотеку WebSockets, что тоже не очевидно.
-
2024-01-04 19:53:02, 123 :
Спасибо. добавлю в архив.
-
-
-