nettips.ru

Управление несколькими GyverLamp

На главную Cisco Systems Arduino VoIP Android Умный сетевой хаос дом маршрутизатор Беларусь Asterisk коммутатор Nateks Alcatel MTS Velcom Python Gigaset ZTE Grandstream Huawei админы шутят о сайте Zelax Allied Telesis D-Link Штрихкоды HP
Телефонные номера доступа sip операторов VitebskPets - инфопомощь животным в Витебске Телефонные коды городов и стран мира.

Рейтинг статьи: 3.750/5 Рейтинг 3.75 из 5Рейтинг 3.75 из 5Рейтинг 3.75 из 5Рейтинг 3.75 из 5Рейтинг 3.75 из 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 сервера и присвойте лампе-источнику 0-й номер

Для закачки на 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.zip

Android 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 :

          Спасибо. добавлю в архив.


Ваши отзывы и предложения по работе сайта направляйте на форму обратной связи.

Яндекс.Метрика