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

Xabar

✩✩✩✩✩✩✩
14 Сен 2019
14
0
gunner47, решил я свою проблему. https://community.alexgyver.ru/threads/wifi-lampa-budilnik-obsuzhdenie-proekta.1411/page-45
Сегодня получил NodeMCU, прошил вашей последней прошивкой и всё без проблем заработало.

Вывод: Две платки, купленные по случаю в онлайне, в Питере Гончарная 13, http://roboshop.spb.ru неисправны.

Сижу играюсь и появился вопрос - рассвет должен быть плавным? У меня рассветает с несколькими скачками яркости.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
gunner47, решил я свою проблему. https://community.alexgyver.ru/threads/wifi-lampa-budilnik-obsuzhdenie-proekta.1411/page-45
Сегодня получил NodeMCU, прошил вашей последней прошивкой и всё без проблем заработало.

Вывод: Две платки, купленные по случаю в онлайне, в Питере Гончарная 13, http://roboshop.spb.ru неисправны.

Сижу играюсь и появился вопрос - рассвет должен быть плавным? У меня рассветает с несколькими скачками яркости.
Спасибо за обратную связь. Нет, рассвет реализован "ступеньками", оттенок и яркость обновляются раз в минуту. Хотя вот только что полез в код - а там никаких к этому предпосылок и нет. Заменил. Потестировал. Результат не идеальный, но намного интересней, чем был раньше. Состояние будильника рассчитывается раз в 3 секунды (чаще нельзя), поэтому теперь и оттенок с яркостью меняются раз в 3 секунды - получается всё равно маленькими ступеньками, не идеально плавно. Но теперь количество отображаемых оттенков за время работы будильника намного больше, смотрится красиво. Я бы сказал, на 4 с плюсом. Выложу в следующем обновлении. Ещё раз спасибо за идею.
UPD. Тестировал на длительности "рассвета" 5 минут. Если выбрать бОльшую, думаю, будет ещё красивее.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
А если для более плавного рассвета менять не сразу всю яркость, а только у некоторых светодиодов ? Понимаю что сильно сложнее , но может получиться более плавно. Только надо бы придумать схему для выбора нужных светодиодов
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
А если для более плавного рассвета менять не сразу всю яркость, а только у некоторых светодиодов ? Понимаю что сильно сложнее , но может получиться более плавно. Только надо бы придумать схему для выбора нужных светодиодов
Разбил все диоды на 10 частей, каждой следующей 1/10 части диодов назначается оттенок/яркость с запозданием на 1 шаг. Получилось, наверное, настолько плавно, насколько это в принципе в этой лампе возможно. Переходы очень хорошо сгладились, хотя всё равно все диоды меняют цвет одновременно - ступеньки еле заметны, но всё-таки видны. В общем, по-моему, отлично. Спасибо за идею.
 

srv

★✩✩✩✩✩✩
20 Мар 2019
9
10
Приветствую!
Проект просто супер, не хватает управления с пульта ДУ, (от телевизора пульт всегда пульт под рукой и кнопки есть на нем на которые телек не реагирует, например цветные для телетекста) . Я прикрутил дополнительно arduino nano которая принимает сигнал с пульта ДУ и имитирует нажатие кнопки на esp8266. с простым скетчем.
Может кто подскажет как этот код внедрить в основной что бы избавиться от ардуинки и ИК приемник на esp сразу припаять?
#include "IRremote.h"

IRrecv irrecv(6);
decode_results results;

void setup()
{
irrecv.enableIRIn();
pinMode(2, OUTPUT); // 2 pin на кнопку esp
Serial.begin(9600);
}

void loop()

{
if (irrecv.decode(&results))
{
int res = results.value;
Serial.println(res, HEX);


if(res==0xFFFF807F)// Если нажата кнопка "1" 1 тап
{
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW); // включаем реле
}


if(res==0x40BF)// Если нажата кнопка "2" 2 тап
{
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW);
delay(250);
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW);

}


if(res==0xFFFFC03F)// Если нажата кнопка "3" 3 тап
{
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW);
delay(250);
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW);
delay(250);
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW);
}

if(res==0x20DF)// Если нажата кнопка "4" яркость
{
digitalWrite(2, HIGH);
delay(800);
digitalWrite(2, LOW);

}

irrecv.resume();
delay(10);
}
}
 
Изменено:
  • Лойс +1
Реакции: ssp1971

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
В общем, по-моему, отлично. Спасибо за идею.
Еще бы видео кто прислал , потом, как получиться. Чую придется самому такую лампу делать, пока сопротивляюсь , но уж больно любопытно )
 

kang2k

✩✩✩✩✩✩✩
22 Сен 2019
4
3
День добрый. Переписал прошивку от gunner47, для возможности использовать ESP32. если кому интересно, то лежит тут
https://github.com/kang2k10/GyverLampESP32/tree/master/firmware/GyverLamp_v1.4
предыдущие версии прошивки не менял

ps. В папке libraries лежит библиотека WIFIMANAGER-ESP32
 
  • Лойс +1
Реакции: gunner47 и AndyIP

kustinich

✩✩✩✩✩✩✩
10 Окт 2019
10
2
Ура, ребята!!! Я собрал её!
Она ни в какую не хотела работать.
Чтоб не повторять старых вопросов, решил всё с июня перечитать.
Плату взял как на схеме, NodeMCU которая поменьше.
То в прошивке ошибка, то плата не существует, то ошибка передачи.
Пробовал пины переставлять местами (d2 и d4)
К концу второго дня готов был монитор выкинуть с третьего этажа.
Но потом, хз почему, решил отойти от инструкции.
Откинул питание и всё что было заведено на плату, и всё!
С первого раза прошилась.
Подпаял всё обратно, подал питание - появилась WI-FI точка...
 

Вложения

Lomatti Balo

✩✩✩✩✩✩✩
10 Окт 2019
5
0
Ребята, помогите.
модуль NodeMCU, прошивка от Алекса 1,5, прошился без ошибок, в мониторе порта показывает адрес вайфай сети, но матрица 16 на 16 не работает, подключено все по схемам, на матрицу приходит 5 вольт, но она не загорается, при нажатии кнопки Reset мигает один светодиод. Сенсорная кнопка мигает при касании. В чем может быть проблема?
 

Superden

✩✩✩✩✩✩✩
3 Окт 2019
3
0
Ребята, помогите.
модуль NodeMCU, прошивка от Алекса 1,5, прошился без ошибок, в мониторе порта показывает адрес вайфай сети, но матрица 16 на 16 не работает, подключено все по схемам, на матрицу приходит 5 вольт, но она не загорается, при нажатии кнопки Reset мигает один светодиод. Сенсорная кнопка мигает при касании. В чем может быть проблема?
у меня было что то подобное: массы платы и матрицы соединены?
 

t_igr

★★✩✩✩✩✩
19 Июл 2019
74
55
параллельно соединены. то есть от бп идет минус и плюс на матрицу и минус и плюс на плату.
Приложение подключается к лампе? И эффекты можно менять в самом приложении?
Какой источник питания используете? У меня была проблема с матрицей из-за повышенного напряжения 5.36 вольт, пришлось снижать до 5. Попробуйте запитать Node MCU от USB на короткое время. На матрицу подайте питание с ног Vin и GND Node MCU.
 
Изменено:
  • Лойс +1
Реакции: Xmas

Иваныч

✩✩✩✩✩✩✩
13 Авг 2019
5
1
Вроде есть проблемы с Белым светом, нужно потестировать.
На последней прошивке белый свет иногда переключается на режим "огонь". Может из-за перегрева лампа перезагружается, а может и сама по себе, не успеваю заметить..

В приложении при выборе режима "смена цвета" ползунком скорость ничего не изменяется, а вот ползунком масштаб изменяется скорость :(
Можно ползунком масштаб реализовать аналогично как и у режима "белый свет".
 

Lomatti Balo

✩✩✩✩✩✩✩
10 Окт 2019
5
0
тут напутано? или я неправильно понял? а вообще, где в скетче пины присваиваются для кнопки и лед матрицы?
// ============= ДЛЯ РАЗРАБОТЧИКОВ =============
#define LED_PIN 2 // пин ленты
#define BTN_PIN 4
#define MODE_AMOUNT 18
 

Вложения

t_igr

★★✩✩✩✩✩
19 Июл 2019
74
55
тут напутано? или я неправильно понял? а вообще, где в скетче пины присваиваются для кнопки и лед матрицы?
// ============= ДЛЯ РАЗРАБОТЧИКОВ =============
#define LED_PIN 2 // пин ленты
#define BTN_PIN 4
#define MODE_AMOUNT 18
D2 на плате это GPIO 04 (PIN 4) - кнопка
D4 - GPIO 02 (PIN 2) - лента
 

Вложения

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Маленькое обновление:
  1. Добавлена возможность сменить рабочий режим лампы (ESP_MODE) без необходимости перепрошивки; вызывается по семикратному клику по кнопке при включенной матрице; сохраняется в EEPROM. Теперь можно увозить лампу на дачу ПРЕДВАРИТЕЛЬНО переключив рабочий режим в точку доступа.
  2. Изменён алгоритм работы будильника:
    * обновление его оттенка/яркости происходит 1 раз в 3 секунды вместо 1 раза в минуту;
    * диоды разбиты на 6 групп, первой из которых назначается новый оттенок/яркость 1 раз в 3 секунды, вторая "отстаёт" на 1 шаг, третья - на 2 шага и т.д. (всё это - для большей плавности).
  3. Добавлена визуальная сигнализация о некоторых важных действиях/состояниях лампы:
    * при запуске в режиме WiFi клиента и ещё не настроенных параметрах WiFi сети (когда их нужно ввести) - 1 короткая (0,25 сек) вспышка жёлтым сразу после старта ;
    * если лампа стартовала в режиме WiFi клиента с ненастроенными параметрами WiFi сети, и они не были введены за отведённый таймаут в 5 минут (перед перезагрузкой) - 1 короткая вспышка красным;
    * при переходе лампы в режим обновления по воздуху (OTA) по двум четырёхкратным кликам по кнопке или по кнопке OTA из android приложения - 2 стандартных (0,5 сек) вспышки жёлтым;
    * если лампа была переведена в режим OTA, но не дождалась прошивки за отведённый таймаут в 5 минут (перед перезагрузкой) - 2 стандартных вспышки красным;
    * при переключении рабочего режима лампы WiFi точка доступа/WiFi клиент семикратным кликом по кнопке (перед перезагрузкой) - 3 стандартных вспышки красным.
  4. Уменьшен таймаут подключения к WiFi сети до 6 секунд; вызвано увеличившейся продолжительностью работы функции setup(), она в сумме должна быть меньше 8 секунд, иначе - циклическая перезагрузка.
  5. Оптимизирован код, исправлены мелкие ошибки.
Сигналы жёлтыми и красными вспышками добавлены, чтобы лучше понимать, в каком состоянии сейчас находится лампа. При нормальной работе ничего мигать не будет. Это важно только в случае каких-то проблем или смене рабочего режима. Дополнительно помогает понять, вызвана ли перезагрузка прошивкой или произошла спонтанно.
Сразу прошу прощения за то, что тестировал не очень тщательно, но вроде бы минимум по одному разу всё проверил перед заливкой кода. Если у кого-то есть желание потестировать, было бы очень хорошо. В противном случае будем ждать отзывов по мере их поступления.
Следующим шагом буду писать доку (описание) на гитхабе, ибо изменений по сравнению с прошивкой Алекса уже очень много.

Управление ИК пультом записал себе список, постараюсь прикрутить, хотя у меня нечем проверить, нет ИК приёмника.

На последней прошивке белый свет иногда переключается на режим "огонь". Может из-за перегрева лампа перезагружается, а может и сама по себе, не успеваю заметить..
В приложении при выборе режима "смена цвета" ползунком скорость ничего не изменяется, а вот ползунком масштаб изменяется скорость :(
Можно ползунком масштаб реализовать аналогично как и у режима "белый свет".
При белом свете лампа может перезагружаться, если не тянет БП. При этом она перезагрузится скорее всего раньше, чем произойдёт сохранение текущего режима в энергонезависимую память (сохранение происходит через 30 секунд после изменения). Поэтому при рестарте будет активен режим, который был активен до этого (последний успешно сохранённый).
Долго наблюдал за лампой, чтобы поймать её спонтанную перезагрузку, дождался, посмотрел call stack и сообщение об ошибке:
Memory allocation of 192 bytes failed at 0x401005d4
Есть всё-таки ошибка при работе с динамическим выделением памяти (скорей всего со строками), не всё я дооптимизировал ещё. Но она возникает в коде платформы esp8266. Не так просто найти причину...
По режимам и их управлению - есть такая беда, но переделывать не хочу. Смена цвета была в исходной прошивке, не мой код, чтобы его грамотно поменять, нужно сначала влезть и разузнать, как он устроен и работает. Это время. Не хочется тратить его на это, потому что в списке есть ещё не реализованные пункты важнее этого (на мой субъективный вгзляд). Если возьмётесь переделать, я затащу ваши изменения в свою прошивку.
 
Изменено:

Gogy

★✩✩✩✩✩✩
14 Апр 2019
80
14
Последнее обновление:
-некорректно работает эффект "радуга диагональная". Заполняется 2/3 красным.
-при нажатии кнопки "найти и добавить" в строке IP адрес пропадает сам ip адрес, приложение перестает реагировать до его перезагрузки.

Не могу понять, как теперь прошиваться в ОТА режиме. Через 30 секунд режим ОТА отключается, пароль ввести не успеваю.
 
Изменено:

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Последнее обновление:
-некорректно работает эффект "радуга диагональная". Заполняется 2/3 красным.
Не могу понять, как теперь прошиваться в ОТА режие. Через 30 секунд режим ОТА отключается, пароль ввести не успеваю.
Диагональная радуга исправлена, спасибо.
Прошиваться как и раньше, ничего не поменялось. Время на прошивку по воздуху - 5 минут после включения режима OTA (два четырёхкратных нажатия на кнопку или кнопка OTA в android приложении). Только что проверил с ожиданием больше минуты - работает, прошивается. Попробуйте при окне запроса пароля ввести его, но не нажимать enter, чтоб окно висело, потом перезагрузить модуль, запросить режим OTA и нажать enter. Но это не нормальный способ.
 

Николай1992

✩✩✩✩✩✩✩
7 Мар 2019
10
0
Вместо nodemcu esp8266 использую nodemcu-32s в чем разница ? ошибка компиляции скетча, подскажите в чем проблема ? в диспетчере подгрузил, драйвер нужный скачал, примеры для этой платы заливаються отлично.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Вместо nodemcu esp8266 использую nodemcu-32s в чем разница ? ошибка компиляции скетча, подскажите в чем проблема ? в диспетчере подгрузил, драйвер нужный скачал, примеры для этой платы заливаються отлично.
Под esp32 нужны другие библиотеки. Недавно выкладывали версию прошивки под esp32, пролистайте 2-3 страницы вверх.
UPD: Ссылка 1, ссылка 2.
 
Изменено:

Gogy

★✩✩✩✩✩✩
14 Апр 2019
80
14
Диагональная радуга исправлена, спасибо.
Прошиваться как и раньше, ничего не поменялось. Время на прошивку по воздуху - 5 минут после включения режима OTA (два четырёхкратных нажатия на кнопку или кнопка OTA в android приложении). Только что проверил с ожиданием больше минуты - работает, прошивается. Попробуйте при окне запроса пароля ввести его, но не нажимать enter, чтоб окно висело, потом перезагрузить модуль, запросить режим OTA и нажать enter. Но это не нормальный способ.
Спасибо за оперативность.
Эффект работает правильно, но что-то не так с ОТА (запускаю из приложения) 30 секунд и досвидос (прошился по ОТА с повторным запуском после открытия окна ввода пароля). Откатился на предыдущую прошивку - оказывается и в ней ОТА ждет только 30 сек. Теперь и кнопка "будильник" в последней прошивке у меня не работает. И ранее писал, что при нажатии кнопки "найти и добавить" в строке IP адрес пропадает сам ip адрес, приложение перестает реагировать до его перезагрузки (в предыдущей прошивке все ОК).
 

Gogy

★✩✩✩✩✩✩
14 Апр 2019
80
14
Спасибо за оперативность.
Эффект работает правильно, но что-то не так с ОТА (запускаю из приложения) 30 секунд и досвидос (прошился по ОТА с повторным запуском после открытия окна ввода пароля). Откатился на предыдущую прошивку - оказывается и в ней ОТА ждет только 30 сек. Теперь и кнопка "будильник" в последней прошивке у меня не работает. И ранее писал, что при нажатии кнопки "найти и добавить" в строке IP адрес пропадает сам ip адрес, приложение перестает реагировать до его перезагрузки (в предыдущей прошивке все ОК).
В дополнение:
В закладке OtaManager.h
#define CONFIRMATION_TIMEOUT (30U) // время в сеундах, в течение которого нужно дважды подтвердить старт обновлениЯ по воздуху (иначе сброс в None)

смущает "...ДВАЖДЫ ПОДТВЕРДИТЬ..."
и значение в параметре - (30U)
 

awvegn

✩✩✩✩✩✩✩
6 Окт 2019
15
5
Ноябрьск
С роутером tp link tl-wr841n лампа не получает доступ к инету и подвисает постоянно. Прошивка от гуннера47. С другими роутерами такой проблемы нет