ESP, IoT WiFi лампа-будильник. Обсуждение проекта

Сообщение изъято на правах администрации
ВНИМАНИЕ !!!
те кто живой и хочет увидеть ссылку на свое исполнение, прошу централизовать все свои доработки и сообщения. Далее в теме пишем сообщение с ссылкой на ваше сообщение (с проектом), с пометкой @mechanic .


В данной ветке обсуждаются только сия проект. Общие вопросы, доработки и проблемы, не относящиеся к конкретным прошивкам!. Вопросы по прошивкам решаем в темах самих прошивок. Здесь такие разговоры оффтоп.
Всякий любой вопрос не по теме сразу удаляется БЕЗ объяснения причины!
Для этого есть соответствующие ветки форума. Вопрос почему удалили мой пост? также удаляется.

  • Общаясь на форуме будьте взаимно вежливы!
  • Обратите внимание на то, что у нас принято говорить Спасибо путём повышения репутации, нажав на кнопочку
    .
  • Если есть претензии то нажмите кнопку .
  • Запрещено писать красным цветом в ваших постах - этот цвет только для Модераторов .
  • Вопросы, ответ на которые есть в шапке или в FAQ, будут удаляться. За повторный вопрос пользователь может быть наказан.
  • Убедительная просьба придерживаться тематики ветки, избегать флуда и оффтопа!
Очень часто при первом запуске лампы, при подключении к сети лампы не открывается менеджер сетей WIFI.
Помогает комментирование строки #define ESP_USE_BUTTON (отключение кнопки) и заливка скетча выставив Erase flash в All Flash Content
После того, как вы подключили лампу к сети эту строку можно раскомментировать и залить скетч с параметром Erase flash установленным в Only Sketh
Наш участник собрал много полезной информации по блокам питания для лампы. Качественное питание - необходимое условие надёжной работы любого устройства. Изучаем: https://community.alexgyver.ru/threads/nebolshoj-opus-po-bp-dlja-gyverlamp-wifi-lampa-budilnik.3523/

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 

Комментарии

recoshet

★✩✩✩✩✩✩
15 Июн 2019
1
14
Сообщение изъято на правах администрации
ВНИМАНИЕ !!!
те кто живой и хочет увидеть ссылку на свое исполнение, прошу централизовать все свои доработки и сообщения. Далее в теме пишем сообщение с ссылкой на ваше сообщение (с проектом), с пометкой @mechanic .


В данной ветке обсуждаются только сия проект. Общие вопросы, доработки и проблемы, не относящиеся к конкретным прошивкам!. Вопросы по прошивкам решаем в темах самих прошивок. Здесь такие разговоры оффтоп.
Всякий любой вопрос не по теме сразу удаляется БЕЗ объяснения причины!
Для этого есть соответствующие ветки форума. Вопрос почему удалили мой пост? также удаляется.

  • Общаясь на форуме будьте взаимно вежливы!
  • Обратите внимание на то, что у нас принято говорить Спасибо путём повышения репутации, нажав на кнопочку
    .
  • Если есть претензии то нажмите кнопку .
  • Запрещено писать красным цветом в ваших постах - этот цвет только для Модераторов .
  • Вопросы, ответ на которые есть в шапке или в FAQ, будут удаляться. За повторный вопрос пользователь может быть наказан.
  • Убедительная просьба придерживаться тематики ветки, избегать флуда и оффтопа!
Очень часто при первом запуске лампы, при подключении к сети лампы не открывается менеджер сетей WIFI.
Помогает комментирование строки #define ESP_USE_BUTTON (отключение кнопки) и заливка скетча выставив Erase flash в All Flash Content
После того, как вы подключили лампу к сети эту строку можно раскомментировать и залить скетч с параметром Erase flash установленным в Only Sketh
Наш участник собрал много полезной информации по блокам питания для лампы. Качественное питание - необходимое условие надёжной работы любого устройства. Изучаем: https://community.alexgyver.ru/threads/nebolshoj-opus-po-bp-dlja-gyverlamp-wifi-lampa-budilnik.3523/

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 

Techer

✩✩✩✩✩✩✩
24 Июл 2019
2
0
Доброго времени суток, дамы и господа. Сразу к вопросу, где в старой технике можно выпаять резистор на 300 Ом, 0,25 Вт, может в мышке или фене. В этой сфере я полный профан. Всем спасибо.
 

Andre128

✩✩✩✩✩✩✩
21 Июл 2019
8
2
Доброго времени суток, дамы и господа. Сразу к вопросу, где в старой технике можно выпаять резистор на 300 Ом, 0,25 Вт, может в мышке или фене. В этой сфере я полный профан. Всем спасибо.
проще в магазин радиодеталей сходить
 

ntrl

✩✩✩✩✩✩✩
17 Июл 2019
5
6
всем привет.
мало ли кому пригодится - "подружил" home assistant с оригинальной лампой гайвера v4.

C++:
switch:
  - platform: command_line
    switches:
      gyverlamp:
        command_on: "echo -n P_ON | nc -w 1 -u 192.168.0.156 8888"
        command_off: "echo -n P_OFF | nc -w 1 -u 192.168.0.156 8888"
        command_state: "echo -n GET | nc -w 1 -u 192.168.0.156 8888 | awk {'print $6'}"
        value_template: '{{ value == "1" }}'
192.168.0.156 меняем на свой адрес лампы.
после этого в HA появится включение и выключение нашей лампы.

Еще сделал "защиту" от перегрева. Лампу выключает HA после 45 минут работы...

C++:
- alias: Control gyverlamp
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: switch.gyverlamp
    to: "on"
    for:
      minutes: 45
  action:
    service: homeassistant.turn_off
    entity_id: switch.gyverlamp
Пока не знаю как сделать переключение режимов и ползунки регулировок...
 

Kutuzoff

✩✩✩✩✩✩✩
12 Июл 2019
6
0
Ткните носом, где можно посмотреть список команд, которыми можно управлять get запросом?
 

АлЁха

✩✩✩✩✩✩✩
25 Июл 2019
2
0
Так себя ведёт модуль во время прошивки. После неё лампа должна засветиться, если всё успешно закончилось и правильно подключено.
Откройте монитор порта в Arduino IDE и посмотрите, какой текст туда выводится. Попробуйте другую прошивку.
монитор пишет sd и потом на абракадабре одну строчку и все ((( но сегодня при включении по всей плате отдельными загорелись светодиоды, попробовал все 4 прошивки с проекта - один и тот же результат...
 
Изменено:

gunner47

★★★★★✩✩
18 Июн 2019
253
393
  • Лойс +1
Реакции: malec

griganam

✩✩✩✩✩✩✩
28 Июн 2019
10
4
WqR128 Добрый вечер! А не пробовали у ЕСП-01 кнопку посадить на Gpio-0, или на RX TX, может прокатит. Тоже хочу завести на 01S
 

Arturus

✩✩✩✩✩✩✩
26 Июл 2019
5
1
29
Екатеринбург

Kutuzoff

✩✩✩✩✩✩✩
12 Июл 2019
6
0
В общем получилось подключить лампу к Majordomo. Правда пока с обратной связью не разобрался. Получается, что выбирать эффект, менять яркость, масштаб, скорость могу, а запросить текущие настройки лампы не знаю как.
Лампу практически уже готовую купил в Фикспрайсе за 200 р. Удалил внутренности, матрица получилась 6х6 диодов, при этом в качестве ночника и декоративной ламы смотрится офигенно. Ну и работать может просто от USB.
images.jpg
 
Изменено:

gunner47

★★★★★✩✩
18 Июн 2019
253
393
В общем получилось подключить лампу к Majordomo. Правда пока с обратной связью не разобрался. Получается, что выбирать эффект, менять яркость, масштаб, скорость могу, а запросить текущие настройки лампы не знаю как.
Если по UDP, то шлите лампе "GET". в ответ получите строку "CURR <число:текущий режим> <число:яркость> <число:скорость> <число:масштаб> <число:вкл/выкл>".
 

Kutuzoff

✩✩✩✩✩✩✩
12 Июл 2019
6
0
Если по UDP, то шлите лампе "GET". в ответ получите строку "CURR <число:текущий режим> <число:яркость> <число:скорость> <число:масштаб> <число:вкл/выкл>".
По http. Объясните, если можно, как с ней общаться по UDP?
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
По http. Объясните, если можно, как с ней общаться по UDP?
В файле parsing.ino есть список команд, ищите строки кода, начинающиеся на:
C++:
if (inputBuffer.startsWith(
Это те команды, которые она ждёт и обрабатывает. Дальше нужно сформировать UDP пакет, включающий строку с этой командой и отправить на ip: port лампы. В ответ придёт UDP пакет со строкой ответа, которую нужно будет распрарсить, там всё легко.
 

Kutuzoff

✩✩✩✩✩✩✩
12 Июл 2019
6
0
В файле parsing.ino есть список команд, ищите строки кода, начинающиеся на:
C++:
if (inputBuffer.startsWith(
Это те команды, которые она ждёт и обрабатывает. Дальше нужно сформировать UDP пакет, включающий строку с этой командой и отправить на ip: port лампы. В ответ придёт UDP пакет со строкой ответа, которую нужно будет распрарсить, там всё легко.
Пример такой строки очень бы мне помог.
 

Andrew Haronych

★✩✩✩✩✩✩
17 Июл 2019
64
37
Москва
Допилил полную интеграцию с сервером умного дома Domoticz!
Изменения в проекте довольно значительные ибо так как это первый опыт ошибок из за непонимания принципов было много!
Theme.png
Итак поехали
Ищем вот такие строчки

C++:
// ============= НАСТРОЙКИ =============
#define USE_DOMO_SRV 1        //Если хотите использовать сервер Domoticz
#define USE_DOMO_DBG 0        //Если хотите подробную инфу в монитор порта
#define S_IP "192.168.1.37"   //Адрес сервера
#define S_PORT 8080           //Порт сервера
#define PWR_IDX 604           //IDX Выключателя на сервере
#define BRI_IDX 605           //IDX Яркости на сервере
#define SPD_IDX 606           //IDX Скорости на сервере
#define SCL_IDX 607           //IDX Масштаба на сервере
#define MOD_IDX 608           //IDX Режима на сервере
И прописываете свои параметры. Если не знаете что такое Domoticz и нафига он нужен то USE_DOMO_SRV указываем 0!
Если USE_DOMO_DBG указать 1 то в монитор будет сыпаться подробная инфа по отправке статуса на сервер

Где брать IDX-ы смотри в настройках сервера

Также обратите внимание на это:
C++:
#define LED_PIN 4             // пин ленты
#define BTN_PIN 12            // пин кнопки
У меня лента подключена на D2, а кнопка на D6! Если у вас собрано по стандартной схеме Алекса то указывайте
C++:
#define LED_PIN 2             // пин ленты
#define BTN_PIN 4             // пин кнопки
Итак у Вас уже есть сервер Domoticz. Если нет то смотри что выделено красным в предыдущем спойлере!
Настройка -> Оборудование
Добавляем Dummy девайс если его еще нет. Если уже есть можно воспользоваться им. Жмем кнопку "Создать виртуальные датчики"
Нам нужно создать один переключатель, три диммера и один селектор

Переключатель:
Power.png
Тут необходимо прописать действия для включения и выключения лампы.
http://192.168.1.87/powon?powon=1 - Включить
http://192.168.1.87/powon?powon=0 - Выключить
Адрес, соответственно, подставляем свой!

Диммеры:
Dimm.png
Все три показывать не буду, они различаются только названиями.
Называем их например "LedLamp Яркость", "LedLamp Скорость" и "LedLamp Масштаб"
Эти имена нам понадобятся далее.

Селектор:
Select1.png
В настройках селекторного выключателя добавляем 21 позицию и прописываем имена и действия на каждую
http://192.168.1.87/saveeffect?effect=0 ... 21 соответственно.
Тут нужно обратить внимание на то что уровни нумеруются 0, 10, 20 и т.д.
Также желательно 0 уровень пометить как "выкл" и поставить галочку "Убрать уровень отключения" иначе при выборе нулевого эффекта селектор будет становиться неактивным.

Далее идем: Настройка -> Дополнительно -> Переменные пользователя

Там создаем три пользовательские переменные которые будут хранить текущие настройки, тип "Строка"!
Называем их "ll_scale", "ll_speed" и "ll_vol" соответственно

Идем: Настройка -> Дополнительно -> События
Там создаем новое событие Lua -> Device, имя любое.
В теле события удаляем все что туда подставил конструктор и вставляем код:
C++:
commandArray = {}
LedLamp_volume = 'LedLamp  Яркость';
LedLamp_speed = 'LedLamp  Скорость';
LedLamp_scale = 'LedLamp  Масштаб';
IP = '192.168.1.87';

if devicechanged[LedLamp_volume] then
         llVolValue = otherdevices_svalues[LedLamp_volume];
         CalcValue = llVolValue*2.5;
         commandArray['Variable:ll_vol'] = tostring(CalcValue);
   runcommand = "curl http://"..IP.."/volume?volume="..CalcValue;
   os.execute(runcommand);
   print("Command= "..runcommand);
end

if devicechanged[LedLamp_speed] then
         llSpdValue = otherdevices_svalues[LedLamp_speed];
         CalcValue = llSpdValue*2.5;
         commandArray['Variable:ll_speed'] = tostring(CalcValue);
   runcommand = "curl http://"..IP.."/speed?speed="..CalcValue;
   os.execute(runcommand);
   print("Command= "..runcommand);
end

if devicechanged[LedLamp_scale] then
         llScaValue = otherdevices_svalues[LedLamp_scale];
         commandArray['Variable:ll_scale'] = tostring(llScaValue);
   runcommand = "curl http://"..IP.."/scale?scale="..llScaValue;
   os.execute(runcommand);
   print("Command= "..runcommand);
end
return commandArray
Обращаем внимание на названия переключателей, переменных и ИП лампы.
В текущей версии всё работает корректно. Независимо от того где происходит изменения в Домотикз, на собственной веб странице, кнопкой или в приложении данные везде обновляются корректно.
Для тех кто пользуется предыдущим вариантом читаем внимательно спойлер "Настройки сервера". Нужно заменить скрипт, там есть изменения, пересоздать переменные с типом "Строка" и внимательно посмотреть настройки селектора!

Тема для Domoticz в которой нормально сделан селектор
 

Вложения

Изменено:
  • Лойс +1
Реакции: lakec

shvak

✩✩✩✩✩✩✩
2 Май 2019
8
8
Ребяты! Постоянно пропадает у контроллеров Wi-Fi (пробовал 2 разных). И в режиме точки и при подключении к роутеру. Не зависит от расположения БП (устанавливал и внутри лампы и подключал к внешнему. Заметил, что чаще всего пропадает Wi-Fi при максимальной яркости (но это не точно). Что за...?
 
Ребяты! Постоянно пропадает у контроллеров Wi-Fi (пробовал 2 разных). И в режиме точки и при подключении к роутеру. Не зависит от расположения БП (устанавливал и внутри лампы и подключал к внешнему. Заметил, что чаще всего пропадает Wi-Fi при максимальной яркости (но это не точно). Что за...?
Если на максимальной яркости пропадает, то может мощности БП не хватает? Я пробовал свою лампу к повербанку подключать, так вот на максимальной яркости лампа зависала, а на нормальном БП такого не наблюдается!
 
  • Лойс +1
Реакции: Firefighter

shvak

✩✩✩✩✩✩✩
2 Май 2019
8
8
Если на максимальной яркости пропадает, то может мощности БП не хватает? Я пробовал свою лампу к повербанку подключать, так вот на максимальной яркости лампа зависала, а на нормальном БП такого не наблюдается!
БП подключал 2 разных. Оба выдерживают 2.5А без просадки. В лампе настроено ограничение 2А. Лампа не зависает, без проблем кнопкой управляется. Пропадает подключение в приложении, пропадает точка доступа.
 

Andre128

✩✩✩✩✩✩✩
21 Июл 2019
8
2
Вот это интересная тема! Спасибо! Посмотрю что они там наваяли )
https://github.com/vvip-68/GyverLampWiFi
при подключении матрицы 16х16 работает только ее половина. Попытки изменить размеры матрицы в настройках не дают скетчу компилироваться из-за проблем в эффектах
 

Andrew Haronych

★✩✩✩✩✩✩
17 Июл 2019
64
37
Москва
https://github.com/vvip-68/GyverLampWiFi
при подключении матрицы 16х16 работает только ее половина. Попытки изменить размеры матрицы в настройках не дают скетчу компилироваться из-за проблем в эффектах
нет там проблем с эффектами, там только в секции с настройками пинов проблемы. При подключении как по схеме должно выглядеть так:
C++:
// ****************** ПИНЫ ПОДКЛЮЧЕНИЯ *******************
// пины подписаны согласно pinout платы, а не надписям на пинах!
// esp8266 - плату выбирал "Node MCU v3 (SP-12E Module)"
#define LED_PIN 4    // пин DIN ленты
#define SRX 0       // D3 is RX of ESP8266, connect to TX of DFPlayer
#define STX 2       // D4 is TX of ESP8266, connect to RX of DFPlayer module
#define PIN_BTN 12   // кнопка подключена сюда (PIN --- КНОПКА --- GND)
#define DIO 14       // TM1637 display DIO pin   
#define CLK 13       // TM1637 display CLK pin
если что прикладываю проект настроенный под нашу матрицу и с пинами как на схеме.
Но хочу сказать что там автор слишком перемудрил. Я думал использовать этот проект как основу для своего варианта, но мне совсем не понравилось как работает лампа на этой прошивке. В итоге идея классная, а реализация... Так что я решил всёже использовать как основу проект @lakec А оттуда просто стянул несколько идей для будущих доработок
 

Вложения

  • Лойс +1
Реакции: Andre128 и malec
БП подключал 2 разных. Оба выдерживают 2.5А без просадки. В лампе настроено ограничение 2А. Лампа не зависает, без проблем кнопкой управляется. Пропадает подключение в приложении, пропадает точка доступа.
Не хочу Вас переубеждать, но по моему ограничение в лампе работает только на будильнике, когда происходит "рассвет". Вот в подтверждении этого включил лампу на самый яркий режим "цвет", светло-зелёный (это даже не белый!), и сила тока потребления лампы возросла более чем на 3-и ампера !
IMG_20190728_134447.jpg
 

malec

★★★★✩✩✩
5 Фев 2019
680
257
нет там проблем с эффектами, там только в секции с настройками пинов проблемы. При подключении как по схеме должно выглядеть так:
C++:
// ****************** ПИНЫ ПОДКЛЮЧЕНИЯ *******************
// пины подписаны согласно pinout платы, а не надписям на пинах!
// esp8266 - плату выбирал "Node MCU v3 (SP-12E Module)"
#define LED_PIN 4    // пин DIN ленты
#define SRX 0       // D3 is RX of ESP8266, connect to TX of DFPlayer
#define STX 2       // D4 is TX of ESP8266, connect to RX of DFPlayer module
#define PIN_BTN 12   // кнопка подключена сюда (PIN --- КНОПКА --- GND)
#define DIO 14       // TM1637 display DIO pin
#define CLK 13       // TM1637 display CLK pin
если что прикладываю проект настроенный под нашу матрицу и с пинами как на схеме.
Но хочу сказать что там автор слишком перемудрил. Я думал использовать этот проект как основу для своего варианта, но мне совсем не понравилось как работает лампа на этой прошивке. В итоге идея классная, а реализация... Так что я решил всёже использовать как основу проект @lakec А оттуда просто стянул несколько идей для будущих доработок
Здоровья всем!!! А у меня вот так работает:-

#define WIDTH 16 // ширина матрицы
#define HEIGHT 16 // высота матрицы
#define SEGMENTS 1 // диодов в одном "пикселе" (для создания матрицы из кусков ленты)
#define DEVICE_TYPE 0 // Использование матрицы: 0 - свернута в трубу для лампы; 1 - плоская матрица в рамке

#define LED_PIN 4 // пин DIN ленты
#define SRX D4 // D3 is RX of ESP8266, connect to TX of DFPlayer
#define STX D3 // D4 is TX of ESP8266, connect to RX of DFPlayer module
#define PIN_BTN D6 // кнопка подключена сюда (PIN --- КНОПКА --- GND)
#define DIO D5 // TM1637 display DIO pin
#define CLK D7 // TM1637 display CLK pin

Тёзка , ну что тебе плеер ещё не приехал? У меня что-то руки не доходят, То флешки нет , то динамики дома забуду))) А дома паять чтото неохото)))
Да и как у тебя с точкой и не глючит ли при питании 5+ Часы подключенны работают корректно. Да в этом варианте он на дисплей ещё и номер эфекта выводит и когда яркость регулируеш тоже отоброжает... можно без точки только часы в приложении настраивать надо
 

Вложения

Изменено: