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

Andrew Haronych

★✩✩✩✩✩✩
17 Июл 2019
64
37
Москва
Тёзка будь добр ткни пальцем куда в моём варианте вставить вторую часть кода, заранее благодарен))) в нём нет файла effectTicker.ino
ааа, у тебя же проект перепаханый )
тогда в файл GyverLampWiFi_v1.00.ino
строчку
#define led 5 //куданибудь к остальным дефайнам
строки
pinMode(led, OUTPUT);
digitalWrite(led, HIGH);
в секцию void setup()
потом в файле a_main.ino
ищи
C++:
    // Одинарный клик - включить . выключить лампу
    if (clicks == 1) {
      if (isTurnedOff) {
        digitalWrite(led, HIGH);  //<<<<<<<<<<<<<<<<<  Врубаем питание матрицы   
        // Если выключен - включить лампу, восстановив эффект на котором лампа была выключена
        if (saveSpecialMode && saveSpecialModeId != 0)
          setSpecialMode(saveSpecialModeId);
        else {
          if (saveMode == 0 && globalColor == 0) globalColor = 0xFFFFFF;
          setEffect(saveMode);     
        }
      } else {
        // Сохранить текущий эффект
        saveSpecialMode = specialMode;
        saveSpecialModeId = specialModeId;
        saveMode = thisMode;
        // Выключить лампу - черный экран
        setSpecialMode(0);
        digitalWrite(led, LOW);//<<<<<<<<<<<<<<<  Вырубаем питание матрицы
      }
    }
Добавить две строчки
Правда в таком случае матрица не проснется от будильника... Ща поищу где там будильник срабатывает...
плюс еще по четверному нажатию она включает белый даже из выключенного состояния. Следовательно нужно еще тут:
C++:
    // Четверное нажатие - включить белую лампу независимо от того была она выключена или включен любой другой режим
    if (clicks == 4) {
      // Включить лампу - белый цвет
      digitalWrite(led, HIGH);  //<<<<<<<<<<<<<<<<<  Врубаем питание матрицы   
      specialBrightness = 255;
      globalBrightness = 255;
      globalColor = 0xFFFFFF;
      setSpecialMode(1);
      FastLED.setBrightness(globalBrightness);
    }
Блин... Я еще и не уверен что это всё будет корректно работать при управлении из приложения. Надо разбираться где парсятся команды и как отрабатывают режимы. Я поэтому и отказался от этого варианта. Код слишком перепахан и замудрен
 
Изменено:

malec

★★★★✩✩✩
5 Фев 2019
680
257

Stmf

★✩✩✩✩✩✩
28 Июн 2019
6
22
Мир не без добрых людей, спасибо огромное) Жизнь то, налаживается! Ожидаются обновления этого приложения? Я если что буду баги писать.
Да без проблем, что еще нужно добавить? Завтра посмотрю, что наколдовал gunner47, добавлю поддержку. В целом вроде бы таймера только не хватает на выключение, сканирование сетки здравая идея, ну и вернуть опрос лампы, для отслеживания управления с кнопки.
По багу, о котором писалось выше, что-то не получается его отловить для исправления, у меня лампа не отваливается. Вернее технически там факт установки соединения условен, т.к. приложению никакое соединение не нужно, оно просто шлет udp команды, получает ответ от лампы и на основе ответа реагирует. Сбойнуть может только функция отправки udp по идее.
 
  • Лойс +1
Реакции: Xmas

Proletariat

✩✩✩✩✩✩✩
1 Авг 2019
1
0
Всем привет! Собрал, работает в режиме точки доступа. Пытаюсь подключиться к локалке и никак. Раз в 5-10 секунд идет зависание скетча, огни лампы останавливаются (видно в это время пытается законнектиться к сети). Подскажите как правильно настроить роутер и лампу, чтобы все заработало.
 

Leo174

✩✩✩✩✩✩✩
23 Июн 2019
11
2
Да без проблем, что еще нужно добавить? Завтра посмотрю, что наколдовал gunner47, добавлю поддержку. В целом вроде бы таймера только не хватает на выключение, сканирование сетки здравая идея, ну и вернуть опрос лампы, для отслеживания управления с кнопки.
По багу, о котором писалось выше, что-то не получается его отловить для исправления, у меня лампа не отваливается. Вернее технически там факт установки соединения условен, т.к. приложению никакое соединение не нужно, оно просто шлет udp команды, получает ответ от лампы и на основе ответа реагирует. Сбойнуть может только функция отправки udp по идее.
Может баг у меня из-за оригинального скетча? Попробую скетч от gunner47. И если будете дорабатывать приложение, можно сделать вместо ползунков, колесики. Иногда требуется поправить +/-1, а ползунком неудобно.
 

Andrew Haronych

★✩✩✩✩✩✩
17 Июл 2019
64
37
Москва
Всем привет! Собрал, работает в режиме точки доступа. Пытаюсь подключиться к локалке и никак. Раз в 5-10 секунд идет зависание скетча, огни лампы останавливаются (видно в это время пытается законнектиться к сети). Подскажите как правильно настроить роутер и лампу, чтобы все заработало.
Лампа просто не может подключиться к NTP. Попробуй в скетче вместо "europe.pool.ntp.org" указать "37.59.27.22" скорее всего всё пройдет
 

Александр Вайдуров

★✩✩✩✩✩✩
11 Июл 2019
22
42
Для любителей умнодомостроения вот еще один проект который основан на идее Алекса. https://sprut.ai/client/blog/1641
Его основная фишка Возможность управления по MQTT, сто позволяет интегрировать лампу во многие системы управления Умными домами.
Функционал управления из приложения сохранен. Появился уже и веб интерфейс, и возможность обновления по ОТА.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
MQTT - это хорошо. Когда он работает. А вот когда не работает или устройство не может подключиться к MQTT серверу, обычно начинаются ощутимые тормоза. Как с этим на той прошивке?
 

Александр Вайдуров

★✩✩✩✩✩✩
11 Июл 2019
22
42
MQTT - это хорошо. Когда он работает. А вот когда не работает или устройство не может подключиться к MQTT серверу, обычно начинаются ощутимые тормоза. Как с этим на той прошивке?
Не знаю мервер остановить не могу он у меня в боевом режиме. Потом на досуге к какому нить внешнему прикручу попробую. Пока по сообщениям в сериал вижу, что к роутеру цепляется в 2 сек и следом к MQTT серверу. Есть неразбериха с управлением, как собственно и в других вариантах прошивок, но этим автор уже занимается.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Не знаю мервер остановить не могу он у меня в боевом режиме. Потом на досуге к какому нить внешнему прикручу попробую. Пока по сообщениям в сериал вижу, что к роутеру цепляется в 2 сек и следом к MQTT серверу. Есть неразбериха с управлением, как собственно и в других вариантах прошивок, но этим автор уже занимается.
Можно сымитировать неработоспособность MQTT, указав неправильный адрес сервера и не потушив при этом сам сервер. Я тестировал свои sonoff'ы на известной открытой прошивке tasmota (у неё есть как MQTT, так и web панель). И при выключении MQTT сервера они становятся прям очень неотзывчивыми, но работают.
А тем временем я обновил прошивку и приложение на гитхабе. Из функций ничего нового. Правки ошибок. Наконец-то приложение правильно показывает обрыв связи с устройством и делает элементы управления неактивными.
При тестировании выяснилось, что при нажатии кнопки "Недавние" или "Домой" андроид сам решает, сколько ещё будет работать в фоне приложение (может потребовать освободить ресурсы, а может и не потребовать). Таймер опроса устройства может продолжать работать, отсылая пакеты. Выход по кнопке "Назад" принудительно останавливает таймер опроса, т.е., разрывает связь с лампой.
 

wayfarermax

✩✩✩✩✩✩✩
30 Июл 2019
5
1
@gunner47, здравствуйте. Решил попробовать обновить через ОТА, но во время прошивки Arduino IDE потребовал от меня пароль платы. А я что-то никак не соображу, где его взять. Можете помочь?)
P.S. Прошивка ваша, предыдущая стояла.
Без имени.png
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
@gunner47, здравствуйте. Решил попробовать обновить через ОТА, но во время прошивки Arduino IDE потребовал от меня пароль платы. А я что-то никак не соображу, где его взять. Можете помочь?)
P.S. Прошивка ваша, предыдущая стояла.
Это пароль точки доступа в прошивке, то, что написано в константе AP_PASS.
 
  • Лойс +1
Реакции: wayfarermax

c1053

✩✩✩✩✩✩✩
4 Авг 2019
5
0
Я залил на гитхаб обновление с моей версией android приложения.
Пока так:
  • Реализован только раздел Управление, в очереди Избранные эффекты, Будильник, Таймер.
  • Добавлено два эффекта: Светлячки со шлейфами и Белый свет.
  • Реализовано управление несколькими лампами, лампы нужно внести в список сохранённых устройств, и потом между ними можно будет переключаться (подключение - тап по IP адресу в списке).
  • Реализовано сканирование сети multicast пакетами, поиск и добавление ламп в список сохранённых устройств без ручного ввода IP адреса.
  • Приложение, когда запущено, опрашивает лампу раз в две секунды, чтобы подтянуть изменения, если лампой управляли кнопкой.
  • Снова используется стандартная библиотека GyverButon, все изменения из неё перенесены в основную прошивку. Прежнюю мою доработку можно оставить как есть, ошибки не будет.
  • При запросе обновления по воздуху (2 четверных касания к кнопке) лампа переключается в режим "Матрица" для визуального подтверждения готовности к прошивке.
Приложение лежит в папке Android в виде apk файла. Пока так. Может, когда-то выложу в гугл стор, у меня ещё нет девелоперской учётки, да и не понятно, нужно ли это кому-то. В общем, кто знает, как устанавливать, берите.
Знаю и пытаюсь побороть один баг, связанный с UDP клиентом в приложении. Вроде на работоспособность не влияет. Ну, и в принципе ещё отлавливаю и правлю ошибки.
Для работы приложения нужно перепрошить и модуль esp.
Все круто СПС но сделай плиз так чтоб после отключения питания модуль переподключался сам к последней сети И если ее не находит то уже тогда переходит в режим подключения А то каждый раз приходится к сети переподключаться
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
@c1053
Не совсем понял. Всё должно работать так, как вы хотите.
Напишите точную последовательность своих действий, если что-то работает не так.
Я постараюсь воспроизвести и исправить.
 

c1053

✩✩✩✩✩✩✩
4 Авг 2019
5
0
@gunner47, подключаю питание Нахожу на телефоне сеть которую генирирует лампа Подключаюсь, Перекидывает на страницу переподключения, Нахожу свою сеть, Подключаюсь Все норм, Захожу в приложение Нахожу лампу и все ГУД, Отключаю лампу от питания Переношу в другую комнату Включаю и все приходится делать заново
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
@gunner47, подключаю питание Нахожу на телефоне сеть которую генирирует лампа Подключаюсь, Перекидывает на страницу переподключения, Нахожу свою сеть, Подключаюсь Все норм, Захожу в приложение Нахожу лампу и все ГУД, Отключаю лампу от питания Переношу в другую комнату Включаю и все приходится делать заново
Очень похоже на слабый WiFi сигнал. Описанное вами поведение характерно для случаев, когда лампа не находит WiFi сеть. Если вы не выключали роутер, то на ум приходит только слабый сигнал, толстые стены, металлическая труба в лампе и т.д. Такой случай возможен? Если не уносить в соседнюю комнату, после вкл/выкл домашнюю сеть находит, коннектится?
 

Александр Вайдуров

★✩✩✩✩✩✩
11 Июл 2019
22
42
Можно сымитировать неработоспособность MQTT, указав неправильный адрес сервера и не потушив при этом сам сервер.
Ага так попробовал, действительно подтормаживал MQTT Лампу. Написал о проблеме разработчику @Whilser
в итоге теперь лампа нормально работает и с брокером и без него можно вообще MQTT не включать. Так же работает с кнопкой и без кнопки, при переносе лампы в другую сеть сама запускает режим точки доступа для ввода новых настроек.
Осталось еще эфект часы бегущей строкой реализовать и будет совсем здорово.
 

Andrew Haronych

★✩✩✩✩✩✩
17 Июл 2019
64
37
Москва
@gunner47, чтото не получается по ОТА обновлять. После ввода пароля: 20:12:25 [ERROR]: No Answer
В остальном всё работает. Вайфай нормально запоминает, склероза не замечено
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Если пароль запрашивает, значит, IDE может достучаться до модуля. Тем более, разная реакция на правильный/неправильный пароль. У меня два предположения:
  1. Правильно ли выставлена плата?
  2. Возможно, таким способом нельзя стирать WiFi настройки, ибо обновление же по воздуху, по WiFi. Вдруг модуль из-за этого теряет соединение с сетью ещё до окончания прошивки или даже в самом начале. Я не проверял такой вариант ещё.
У меня вот так работает на Wemos D1 mini:
1564940315346.png
 

Andrew Haronych

★✩✩✩✩✩✩
17 Июл 2019
64
37
Москва
Если пароль запрашивает, значит, IDE может достучаться до модуля. Тем более, разная реакция на правильный/неправильный пароль. У меня два предположения:
  1. Правильно ли выставлена плата?
  2. Возможно, таким способом нельзя стирать WiFi настройки, ибо обновление же по воздуху, по WiFi. Вдруг модуль из-за этого теряет соединение с сетью ещё до окончания прошивки или даже в самом начале. Я не проверял такой вариант ещё.
Всеравно никак... Странно
Разобрался ) сам дурак, брандмэер заблочил питон. Всё работает )
 
Изменено:

vovanbel91

✩✩✩✩✩✩✩
29 Июл 2019
1
0
Проект шикарный, обязательно повторю!
Но есть вопрос: решил сделать сыну ночник в комнату с физической кнопкой. Пытаюсь совместить скетчи с гирляндой и матрицей, но кода достаточно большой объем и со временем редактирования захожу в тупик. Почему спрашиваю здесь - потому, что пытался сам что-то соорудить на основе скетча гирлянды, но ввиду того, что Си я не настолько хорошо знаю, приходилось заново все лопатить. Суть задумки - сделать на Ардуино Нано с кнопкой, без wi-fi и bluetooth - слишком круто, для небольшого светильника)
На, держи. Программист будет смеяться, но все работает. Нужна адресная лента и энкодер, все. У меня была схожая задача, а именно сделать неплохой светильник, но значительно его упростив.
 

Вложения

Виталий

★✩✩✩✩✩✩
28 Авг 2018
7
25
@c1053
Не совсем понял. Всё должно работать так, как вы хотите.
Напишите точную последовательность своих действий, если что-то работает не так.
Я постараюсь воспроизвести и исправить.
У меня очень странная проблема. Через 5-10 минут работы лампы начинают проскакивать мерцания, как будто поверх накладывается другой эффект, похоже "конфетти". Бывает это появляется после нажатий кнопки (я использую обычную тактовую кнопку с резистором 1кОМ, HIGH_PULL, NORM_OPEN). Не могу побороть... Возможно "ESP_USE_BUTTON" как-то на это влияет? Там написано про ложные срабатывания... Может быть дело в них?
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
У меня очень странная проблема. Через 5-10 минут работы лампы начинают проскакивать мерцания, как будто поверх накладывается другой эффект, похоже "конфетти". Бывает это появляется после нажатий кнопки (я использую обычную тактовую кнопку с резистором 1кОМ, HIGH_PULL, NORM_OPEN). Не могу побороть... Возможно "ESP_USE_BUTTON" как-то на это влияет? Там написано про ложные срабатывания... Может быть дело в них?
ESP_USE_BUTTON нужна, точнее, не нужна, если у вас совсем нет физической кнопки. Тогда накапливающийся на входном пине модуля esp статический заряд приводит к регистрации высокого уровня, и прошивка обрабатывает его как нажатие на кнопку. Также вы можете закомментировать эту строку и в том, случае, если кнопка есть, но тогда она перестанет опрашиваться модулем, т.е., не будет работать. Попробуйте закомментировать или удалить строку ESP_USE_BUTTON. Если мерцания исчезнут, значит, нужно искать проблему в кнопке. Если нет, то, либо дефект "железа", либо ошибка в прошивке. Хотя вроде бы никто о такой ошибке ещё не отписывался. Какая-то специфическая. На всякий случай, обновите прошивку на актуальную версию.