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, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 

guest8

✩✩✩✩✩✩✩
12 Авг 2019
8
1
@victory_lad, моё ИМХО!
логичней и проще тогда, добавить в схему модуль с микрофоном (как в цветомузыке) и в этом режиме работать как и положено...
я пока сижу жду кое-какой комплектухи с али, лампа лежит не до конца собранная, ей не занимаюсь. но делаю метеостанцию, поэтому мониторю заодно и эту ветку.
так вот мое имхо, что проще всего отрубить будильник, тогда не нужны будут танцы с сервером времени.
и вайфай тоже отрубить) тогда не будет никаких проблем с точками доступа и тд.
добавить вторую сенсорную кнопку, которой регулировать масштаб и скорость эффекта (ей не часто пользоваться придется). сами эффекты выбирать стандартной кнопкой сверху лампы.
пока баловался лампой, понял что "любимых" режимов будет пара-тройка, остальные не зашли - лампа будет фоновым световым прибором, думаю, что мельтешение на переферии зрения в неокторых режимах будет отвлекать.
будильник мне лично не нужен, потому что поднимаюсь по браслету, чтобы девушку не будить. часы бы я может как то организовал дополнительным дисплеем (но не уверен, что он будет "пробивать" через плафон, а курочить подставку скорее всего красиво не получится). но организовать не через сервер времени, а через модуль rtc, как на метеостанции.
прошить лампу один раз и юзать как автономный прибор. если появится новый офигезный эффект, то добавить только его

все это имхо имхо.

пс "автономную" лампу можно даже маме подарить, которая с электроникой на вы. я то не сразу разобрался как подсоединить лампу к домашнему вайфаю. мне не нужны потом звонки "выключили из розетки, включили, а она не работает")))
 
Изменено:
  • Лойс +1
Реакции: somon

johnmat

✩✩✩✩✩✩✩
20 Сен 2019
3
0
Начало вылетать приложение на iPhone? Если так, то плохо, ибо прошивка от gunner :) не взаимодействует с приложениями под iPhone - вроде бы ещё никто не писал, что разработал такое приложение. Версия приложения очень чувствительна к версии прошивки - они могут работать только в связке, одно приложение с другой прошивкой не заведётся. Поэтому первый совет - залить ту прошивку, что лежала в архиве с приложением, которое вы используете. Можете попробовать прошивки с управлением из web панели, тут публиковали такие в самом начале.
Да, дело похоже в несовместимости программы и прошивки.
Нашел еще одну версию для iOS - Arduino lamp (by Max Kazakov).
Она с вашей версией работает (правда иногда зависает). Но и тут видно по режимам, что написана она для какой-то более старой версии прошивки.
Пдскажите, в вашем репозитории есть ссылки на старые версии? Или как ее взять?
Версия программы от 20.07.19
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Пдскажите, в вашем репозитории есть ссылки на старые версии? Или как ее взять?
Версия программы от 20.07.19
Это стандартная функциональность git'а. Нужно:
  1. Открыть репозиторий в браузере
  2. В верхней горизонтальной менюшке нажать на надпись с количеством коммитов
  3. Пролистать вниз по истории на нужный коммит (по дате)
  4. Нажать кнопку справа "<>"
  5. Скачать zip архив. Он будет соответствовать выбранной версии исходных кодов
 
Изменено:

Monty

✩✩✩✩✩✩✩
30 Апр 2019
35
5
Просьба, кто хорошо владеет sketchup или другой программой для моделирования. Есть интересная моделька в качестве подставки, сложной формы, необходимо доработать масштабы и разъемы для подключения.
ПРОСЬБА ОТОЗВАТЬСЯ. Модель в формате skp на данный момент.
 

Monty

✩✩✩✩✩✩✩
30 Апр 2019
35
5
Привет всем. Вот так правильная распайка на матрице? Посмотреть вложение 4807

и какую прошивку лучше ставить?
Правильно, но у меня так не плотно легла матрица к трубе, надо сделать 3 отверстия в трубе и вывести все провода через них и спаять уже между собой концами
 

guest8

✩✩✩✩✩✩✩
12 Авг 2019
8
1
Правильно, но у меня так не плотно легла матрица к трубе, надо сделать 3 отверстия в трубе и вывести все провода через них и спаять уже между собой концами
я для плотного прилегания конечно тоже сначала штатные провода отпаял и сделал три группы питания. но когда делал второе отверстие в трубе, подумал что можно было просто сделать одно длинное вертикальное отверстие примерно 90х15мм, в котором был лежали штатные провода и ничего перепаивать на надо было бы. труба то в оригинальном проекте пластиковая, ее резать элементарно. если для подстраховки использовать аллюминиевую трубу, то пилить его посложне, и отверстие лучше сделать сделать пошире, а перед стягиванием хомутами убедиться что пайка не касается алюминия, но тоже можно обойтись без перепайки штатных перемычек

не благодарите)
 

Henry

✩✩✩✩✩✩✩
11 Июл 2019
21
4
Всем привет. Ожидаю 3d принтер и пока есть время обдумываю что можно напечатать.

Случайно, нет ли готовой модели подставки под лампу на основе леруашного плафона (с возможностью встраивания разъёма для подключения блока)?
 

t_igr

★★✩✩✩✩✩
19 Июл 2019
74
55
Приветствую! @gunner74, обнаружил глюк в прошивке (стоит последняя), проявляется не всегда. Зависание эффектов на 1 секунду при отсутствии интернета. Вернулся вечером с дачи, включил лампу, начались фризы эффектов, перезагрузка лампы по питанию не помогла. Обнаружил что провайдер отключил мне инет за неуплату. После восстановления интернета лампа заработала нормально. Сегодня воссоздал ситуацию, включил лампу, интернет включен - лампа работает отлично. Оставляю лампу включенной на время 30 - 60 секунд. Затем отключаю лампу на промежуток 30-60 секунд, в это время отключаю интернет(вытаскиваю провод из роутера). Включаю лампу - появляются фризы, делаю reset, фризы остаются, в мониторе порта вижу следующее:
monport_ledlamp.png
Контроллер почему то думает что подключение к интернету есть, сброс не помогает.
Воспроизводится данная ситуация не всегда. Если светильник включен и в этот момент отключить интернет - фризов не будет, даже по прошествии некоторого времени.
Попробуйте кто-нибудь воспроизвести у себя по моему описанию, интересно получиться ли у кого.
Проверял на NodeMCU.
 

ZergKRSK

✩✩✩✩✩✩✩
1 Сен 2019
16
7
Всем привет. Ожидаю 3d принтер и пока есть время обдумываю что можно напечатать.

Случайно, нет ли готовой модели подставки под лампу на основе леруашного плафона (с возможностью встраивания разъёма для подключения блока)?
В архиве проекта есть готовая модель.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Приветствую! @gunner74, обнаружил глюк в прошивке (стоит последняя), проявляется не всегда. Зависание эффектов на 1 секунду при отсутствии интернета. Вернулся вечером с дачи, включил лампу, начались фризы эффектов, перезагрузка лампы по питанию не помогла. Обнаружил что провайдер отключил мне инет за неуплату. После восстановления интернета лампа заработала нормально. Сегодня воссоздал ситуацию, включил лампу, интернет включен - лампа работает отлично. Оставляю лампу включенной на время 30 - 60 секунд. Затем отключаю лампу на промежуток 30-60 секунд, в это время отключаю интернет(вытаскиваю провод из роутера). Включаю лампу - появляются фризы, делаю reset, фризы остаются, в мониторе порта вижу следующее:
Посмотреть вложение 4815
Контроллер почему то думает что подключение к интернету есть, сброс не помогает.
Воспроизводится данная ситуация не всегда. Если светильник включен и в этот момент отключить интернет - фризов не будет, даже по прошествии некоторого времени.
Попробуйте кто-нибудь воспроизвести у себя по моему описанию, интересно получиться ли у кого.
Проверял на NodeMCU.
Спасибо, гляну.
 

ViktorVS

✩✩✩✩✩✩✩
22 Сен 2019
2
0
Всем привет. Пробую залить прошивку от @gunner47 . При компилировании ругается
C:\Users\ViktorVS\Downloads\GyverLamp-master\firmware\GyverLamp_v1.4\eeprom.ino: In function 'void eepromTick()':

eeprom:7:33: error: 'eepromTimer' was not declared in this scope

if (settChanged && millis() - eepromTimer > 30000) {

^

C:\Users\ViktorVS\Downloads\GyverLamp-master\firmware\GyverLamp_v1.4\eeprom.ino: In function 'void saveAlarm(byte)':

eeprom:17:31: error: 'alarm' was not declared in this scope

EEPROM.write(5 * almNumber, alarm[almNumber].state); // рассвет

^

exit status 1
'eepromTimer' was not declared in this scope
Говорит типо переменные не объявлены.
Куда можно тыкнуться?
 
Изменено:

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Всем привет. Пробую залить прошивку от @gunner74 . При компилировании ругается
C:\Users\ViktorVS\Downloads\GyverLamp-master\firmware\GyverLamp_v1.4\eeprom.ino: In function 'void eepromTick()':

eeprom:7:33: error: 'eepromTimer' was not declared in this scope

if (settChanged && millis() - eepromTimer > 30000) {

^

C:\Users\ViktorVS\Downloads\GyverLamp-master\firmware\GyverLamp_v1.4\eeprom.ino: In function 'void saveAlarm(byte)':

eeprom:17:31: error: 'alarm' was not declared in this scope

EEPROM.write(5 * almNumber, alarm[almNumber].state); // рассвет

^

exit status 1
'eepromTimer' was not declared in this scope
Говорит типо переменные не объявлены.
Куда можно тыкнуться?
Что-то пошло не так при вашей попытке взять содержимое репозитария с github'а. Скачайте zip в новую папку и скомпилируйте ещё раз. Если используете git-консоль, выполняйте команду pull, а не fetch.
 

t_igr

★★✩✩✩✩✩
19 Июл 2019
74
55
Спасибо, гляну.
Как я понял наличие интернета проверяется вызовом данного метода в time.ino и получением соответствующего ответа
WiFi.hostByName(NTP_ADDRESS, ntpServerIp, RESOLVE_TIMEOUT)
Может быть случай когда при отключенном интернете DNS провайдера останется доступным и мы получим верный ntpServerIp вместо нулей, в итоге лампа будет пытаться синхронизировать время и мы получим фризы эффектов.
Не понятно только как при физически отключенном от интернета роутере вызов WiFi.hostByName возвращает что-то отличное от нуля, надо поглядеть.
 

somon

★★★✩✩✩✩
20 Авг 2019
140
123
@gunner47, Приветствую Вас!
На странице проекта у Алекса появилось обновление прошивки 1.5, а так же добавлены описание и ссылки на последователей (Вас в частности и не только). Так вот, ознакомившись с его доработками в 1.5, появился вопрос/пожелание добавить в Вашу последнюю версию (она на мой взгляд более удачна тем такая же от Алекса), фишку с отображением IP адреса на матрице пятерным кликом по кнопке. На сколько это сложно вообще и для Вас в частности? В моём опыте настройки/применение данного проекта, отображение/получение IP без доп средств (на лампе) бы очень полезным!(y)

К слову о версиях. Для отсутствия путаницы в дальнейшем, я бы предложил Вам их немного переименовать, и ввести свою нумерацию (их стало слишком много под одним названием GyverLamp_v1.4, включая оригинальную, и без входа и изучения содержимого, уже не разберёшь где какая...)

Так же хотел уточнить, по какой причине в последней Вашей версиях доработок, Вы убрали по умолчанию очистку параметров WiFi при старте с зажатой кнопкой"? Это как то влияло на что-то? И прошу уточнить, касалась ли эта функция работы только с обычной кнопкой, или же должна была работать и с сенсорной? Я помню как то пробовал её применить (была потребность в этом), но не получилось, по скольку при подачи питания с приложенным пальцем, кнопка не переходит в состояние "нажата", до повторного приложения после отпускания. Пришлось применять костыли... На мой взгляд тоже полезная фича.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Как я понял наличие интернета проверяется вызовом данного метода в time.ino и получением соответствующего ответа
WiFi.hostByName(NTP_ADDRESS, ntpServerIp, RESOLVE_TIMEOUT)
Может быть случай когда при отключенном интернете DNS провайдера останется доступным и мы получим верный ntpServerIp вместо нулей, в итоге лампа будет пытаться синхронизировать время и мы получим фризы эффектов.
Не понятно только как при физически отключенном от интернета роутере вызов WiFi.hostByName возвращает что-то отличное от нуля, надо поглядеть.
Да, вы правильно понимаете. Только попытки синхронизации времени будут повторяться до первой успешной. Вопрос в том, какой способ определения наличия интернета самый дешёвый по времени и реализации. И ещё вопрос: насколько часто может встретиться ситуация, в которой упадёт подключение на участке от вашего провайдера к указанному ntp серверу, но останется живое соединение к dns серверу вашего провайдера. По-моему это очень редкий случай. Вначале я хотел вместо резолва имени сделать ping, но, погуглив, понял, что это ёмкая по времени операция (фризы будут заметнее), к тому же недавно поменялись библиотеки (навскидку не помню какие, но помню, что оттуда исчез стандартный метод для пинга - народ ругается и делает самописные его замены). А если на вход пингу подать dns имя, а не ip, то перед пингом всё равно будет dns резолв.
В самом худшем случае ожидаемый результат должен быть таким:
  • если при старте зарезолвить имя ntp сервера не получилось, то функции будильника становятся недоступны, попытки получить время должны повторяться 1 раз в 5 минут (чтоб не мозолить глаза фризами)
  • если в процессе работы исчез интернет/стал недоступен сервер времени, то никаких фризов быть не должно, потому что время уже должно быть получено ранее, оно просто не будет обновляться... самое худшее что может случиться - будет ошибка будильника при переходе с летнего на зимнее время и наоборот там, где есть такой переход
Иное поведение нужно признать ошибкой и исправить.
В самом лучшем случае нужно перейти на асинхронную библиотеку для получения времени. Кто-то добрый и умный писал о ней выше, но я ещё не разбирался. При ней должны исчезнуть всякие фризы.
 
Изменено:

ViktorVS

✩✩✩✩✩✩✩
22 Сен 2019
2
0
Что-то пошло не так при вашей попытке взять содержимое репозитария с github'а. Скачайте zip в новую папку и скомпилируйте ещё раз. Если используете git-консоль, выполняйте команду pull, а не fetch.
Спасибо, проблема решена. Я скачивал архив со страницы Алекса, видать у него там не крайняя версия лежит. Сейчас скачал из Вашего поста отсюда и все заработало.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
@gunner47, Приветствую Вас!
На странице проекта у Алекса появилось обновление прошивки 1.5, а так же добавлены описание и ссылки на последователей (Вас в частности и не только). Так вот, ознакомившись с его доработками в 1.5, появился вопрос/пожелание добавить в Вашу последнюю версию (она на мой взгляд более удачна тем такая же от Алекса), фишку с отображением IP адреса на матрице пятерным кликом по кнопке. На сколько это сложно вообще и для Вас в частности? В моём опыте настройки/применение данного проекта, отображение/получение IP без доп средств (на лампе) бы очень полезным!(y)

К слову о версиях. Для отсутствия путаницы в дальнейшем, я бы предложил Вам их немного переименовать, и ввести свою нумерацию (их стало слишком много под одним названием GyverLamp_v1.4, включая оригинальную, и без входа и изучения содержимого, уже не разберёшь где какая...)

Так же хотел уточнить, по какой причине в последней Вашей версиях доработок, Вы убрали по умолчанию очистку параметров WiFi при старте с зажатой кнопкой"? Это как то влияло на что-то? И прошу уточнить, касалась ли эта функция работы только с обычной кнопкой, или же должна была работать и с сенсорной? Я помню как то пробовал её применить (была потребность в этом), но не получилось, по скольку при подачи питания с приложенным пальцем, кнопка не переходит в состояние "нажата", до повторного приложения после отпускания. Пришлось применять костыли... На мой взгляд тоже полезная фича.
Вывод IP на лампу не очень актуален при наличии возможности искать лампу приложением без ручного ввода IP. Другое дело, что там есть возможность выводить любой текст. В принципе, это могло бы пригодиться где-то и кому-то в дальнейшем. Думаю, эту функцию перетащить будет не сложно.

Версии - это боль. Я намеренно оставил оригинальные названия файлов от Алекса, потому что git позволяет отслеживать историю изменения файлов и автоматически применять изменения, вносимые разными авторами в один и тот же файл, т.е., слепливать из разных правок одну общую версию. Изменив имя файла, эта возможность пропадёт (как пропадёт и вся история изменений, уже нельзя будет откатиться по временной шкале). Это всё печально и усугубляется тем, что Алекс сам меняет названия файлов при обновлении, т.е., теперь уже нельзя забрать его нововведения автоматически. Но в любом случае, мне бы не хотелось менять названия файлов. Это нужно было делать в самом начале...

Возможность очистки с зажатой кнопкой осталась, она убрана по умолчанию, но в constants.h появилась новая константа "#define ESP_RESET_ON_STASRT (false)". Если её инициализировать в true, всё будет работать как прежде. Причина: если б вы знали, сколько раз ко мне обращались с вопросом: Почему нужно подключать лампу к WiFi при каждом включении? И: А что, кнопка обязательна?
И на самом деле я сам виноват в таком обилии вопросов: я до сих пор не написал толковую доку на github'е. Даже Алекс сделал это за меня быстрее... Так что я искал выход и нашёл вот такое решение.
 
  • Лойс +1
Реакции: Xmas

Максим-ka

✩✩✩✩✩✩✩
14 Июл 2019
8
1
вопрос: почему на разных режимах раз в 3-8 секунд всполохи лишнего? (на матрице зеленого цвета красные светодиоды моргают, на блуждающем кубике- всполохи около кубика)???
 

somon

★★★✩✩✩✩
20 Авг 2019
140
123
@gunner47,
Про IP. Если не сложно, то был бы очень признателен! Я просто столкнулся с этим, когда таскал макет из дома на работу и обратно, на стадии настройки. Так вот в офисной сетке, в приложении не находилась лампа, только вручную! Дома всё ок! И учитывая что я затеял "всем" родным подарки на НГ наделать, то ХЗ у кого какая сеть, и будет ли там всё автоматом находиться..? 🤭
Ну и как идею можно развить тогда с выводом текста, в виде отдельного (или дополненного/наложенного эффекта), с набивкой строки из приложения! 👍

Про версии. Не знал, что это "боль". Я вообще пока гитом на ВЫ (даже раза в три повыше...))). Пусть идёт как есть тогда. А может на Алекса 1.5 тогда, все Ваши обновки можно подтянуть будет?

Про кнопку. 🤭 Я понял. Значит это касалось тех счастливчиков, не поставивших кнопку, не читавших ветку и не закоментировав её в прошивке? Т.е. фича работает только с механической кнопкой (или точнее её отсутствием без программной правки)? С сенсорной у меня были не удачные попытки... Или я не так понял алгоритм? 🤔