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

Nur.kz

✩✩✩✩✩✩✩
13 Сен 2019
11
0
Привет всем. как запретить использовать ntp и доступ в интернет. Просто на роутере перестал работать интернет и теперь лампа начала подвисать каждые пару секунд. не знаю точно, но грешу на это
Был такой вопрос в этой ветке но ответа никто не дал
 
Изменено:

awvegn

✩✩✩✩✩✩✩
6 Окт 2019
15
5
Ноябрьск
Скажите кто в какой программе моделировал подставки для ламп и в какой легче научиться всему этому делу новичку))) Спасибо
 

awvegn

✩✩✩✩✩✩✩
6 Окт 2019
15
5
Ноябрьск
Привет всем. как запретить использовать ntp и доступ в интернет. Просто на роутере перестал работать интернет и теперь лампа начала подвисать каждые пару секунд. не знаю точно, но грешу на это
Был такой вопрос в этой ветке но ответа никто не дал
в
Constants.h


#define USE_NTP // закомментировать или удалить эту строку, если нужно, чтобы устройство не лезло в интернет
 

b612

✩✩✩✩✩✩✩
26 Окт 2019
37
5
Скажите кто в какой программе моделировал подставки для ламп и в какой легче научиться всему этому делу новичку))) Спасибо
Corel знать в любом случае не помешает.
Если делать под фрезу то достаточно плоских макетов
Делать такие простые вещи под 3D-шник это целое дело поднимать. и дороговато.
Из 3D самая русская прога это компас
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
В общем WIFI лампа хорошо, но постоянное отваливание wifi напрягает.
Переделал лампу на Bluetooth (ну и по кнопке, соответственно).Написал свое приложение, в котором корректно установил значения ползунков, а именно...Масштаб, если он меняет оттенок, но максимальное значение становится 50, 40, 30 вместо 100 (в зависимости от режима, например, в радугах верт. и гор. там если больше 50-ти, то почти один белый тон получается). Если выбран режим Огонь или Цвет, то появляется кольцо оттенков, по которому можно выставить нужный оттенок (режимы огонь, цвет), в режиме Смена цвета, например, масштаб вообще не нужен, соответственно я сделал его не активным.Скорость, сделал правильную регулировку скорости, то есть не меньше - это быстрее, а как положено. Где скорость работала правильно, там не трогал.Так же сделал возможность автоматической смены всех режимов по кругу с интервалом в 5 сек (можно менять). Он запускается при первом включении лампы и может меняться в приложении переключателем.В планах еще присобачить SD и хранить все выбранные настройки режимов (скорость, яркость, масштаб) на ней, чтобы при отключении от сети всё это сохранялось. Можно и в EEPROM? но не хочется затирать ее ячейки, т.к. циклы перезаписи ограничены
.
Screenshot_2019-11-02-17-43-31-309_com.koteyka.firelampbt[1].pngScreenshot_2019-11-02-17-43-49-693_com.koteyka.firelampbt[1].pngScreenshot_2019-11-02-17-46-06-555_com.koteyka.firelampbt[1].png
 

b612

✩✩✩✩✩✩✩
26 Окт 2019
37
5
Переделал лампу на Bluetooth
круто !
А синхронизация есть ?

Можете эффекты сделать диагональные ?
особенно нужен "огонь"
ну и "матрицу"
Другие то безразличны к направлению.
Дело в том, что я хочу сделать лампу с плоской матрицей расположеной под 45 к горизонту
 

t_igr

★★✩✩✩✩✩
19 Июл 2019
74
55
Привет всем. как запретить использовать ntp и доступ в интернет. Просто на роутере перестал работать интернет и теперь лампа начала подвисать каждые пару секунд. не знаю точно, но грешу на это
Был такой вопрос в этой ветке но ответа никто не дал
Перезагрузить роутер не пробовали? Это могло помочь и не пришлось бы перепрошивку делать.
 

gunner47

★★★★★✩✩
18 Июн 2019
253
393
Обновление:
1. Добавлен переход на летнее/зимнее время. Настраивается в Constants.h. Внимние: константа GMT удалена, вместо неё используются другие настройки, см. подробности ниже:
- строки кода для тех, кому переход не нужен - проверьте, чтобы следующая строка была закомментирована (она закомментирована по умолчанию):
C++:
   //#define SUMMER_WINTER_TIME // для тех, кому нужен переход на зимнее/летнее время - оставить строку, остальным - закомментировать или удалить
плюс настройте часовое смещение относительно всемирного универсального времени UTC в константе LOCAL_OFFSET (по умолчанию выставлено +3 часа - MSK) и по желанию название часового пояса в LOCAL_TIMEZONE_NAME (сейчас оно нигде не используется, но, возможно, будет использоваться в будущем при выводе времени бегущей строкой):
C++:
   #define LOCAL_WEEK_NUM        (week_t::Last)                // для стран, где нет перехода на зимнее/летнее время это технический параметр, не нужно его изменять
   #define LOCAL_WEEKDAY         (dow_t::Sun)                  // для стран, где нет перехода на зимнее/летнее время это технический параметр, не нужно его изменять
   #define LOCAL_MONTH           (month_t::Mar)                // для стран, где нет перехода на зимнее/летнее время это технический параметр, не нужно его изменять
   #define LOCAL_HOUR            (1U)                          // для стран, где нет перехода на зимнее/летнее время это технический параметр, не нужно его изменять
   #define LOCAL_OFFSET          (3 * 60)                      // смещение локального времени относительно универсального координированного времени UTC в минутах
   #define LOCAL_TIMEZONE_NAME   ("MSK")                       // обозначение локального часового пояса; до 5 символов; может быть использовано, если понадобится его вывести после вывода времени
- строки кода для тех, кому переход нужен - проверьте, чтобы следующая строка НЕ была закомментирована:
C++:
   #define SUMMER_WINTER_TIME // для тех, кому нужен переход на зимнее/летнее время - оставить строку, остальным - закомментировать или удалить
плюс настройте параметры перехода на летнее и зимнее время и смещения относительно UTC (по умолчанию выставлено +3 часа летом и +2 часа зимой):
C++:
   #define SUMMER_WEEK_NUM       (week_t::Last)                // номер недели в месяце, когда происходит переход на летнее время (возможные варианты: First - первая, Second - вторая, Third - третья, Fourth - четвёртая, Last - последняя)
   #define SUMMER_WEEKDAY        (dow_t::Sun)                  // день недели, когда происходит переход на летнее время (возможные варианты: Mon - пн, Tue - вт, Wed - ср, Thu - чт, Sat - сб, Sun - вс)
   #define SUMMER_MONTH          (month_t::Mar)                // месяц, в котором происходит переход на летнее время (возможные варианты: Jan - январь, Feb - февраль, Mar - март, Apr - апрель, May - май, Jun - июнь, Jul - июль, Aug - август, Sep - сентябрь, Oct - октябрь, Nov - ноябрь, Dec - декабрь)
   #define SUMMER_HOUR           (3U)                          // час (по зимнему времени!), когда заканчивается зимнее время и начинается летнее; [0..23]
   #define SUMMER_OFFSET         (3 * 60)                      // смещение летнего времени относительно универсального координированного времени UTC в минутах
   #define SUMMER_TIMEZONE_NAME  ("EEST")                      // обозначение летнего времени; до 5 символов; может быть использовано, если понадобится его вывести после вывода времени; может быть "ЛЕТ"
   #define WINTER_WEEK_NUM       (week_t::Last)                // номер недели в месяце, когда происходит переход на зимнее время (возможные варианты: First - первая, Second - вторая, Third - третья, Fourth - четвёртая, Last - последняя)
   #define WINTER_WEEKDAY        (dow_t::Sun)                  // день недели, когда происходит переход на зимнее время (возможные варианты: Mon - пн, Tue - вт, Wed - ср, Thu - чт, Sat - сб, Sun - вс)
   #define WINTER_MONTH          (month_t::Oct)                // месяц, в котором происходит переход на зимнее время (возможные варианты: Jan - январь, Feb - февраль, Mar - март, Apr - апрель, May - май, Jun - июнь, Jul - июль, Aug - август, Sep - сентябрь, Oct - октябрь, Nov - ноябрь, Dec - декабрь)
   #define WINTER_HOUR           (4U)                          // час (по летнему времени!), когда заканчивается летнее время и начинается зимнее; [0..23]
   #define WINTER_OFFSET         (2 * 60)                      // смещение зимнего времени относительно универсального координированного времени UTC в минутах
   #define WINTER_TIMEZONE_NAME  ("EET")                       // обозначение зимнего времени; до 5 символов; может быть использовано, если понадобится его вывести после вывода времени; может быть "ЗИМ"
Смещение для своего часового пояса можно посмотреть на сайте https://time.is Вбиваете название своего или ближайшего крупного города - он всю информацию выдаст.
2. Добавлен эффект Белый огонь. В связи с этим незначительно измеилось android приложение. Также сдвинулись номера эффектов, кто управлял по MQTT - проверьте список и подправьте у себя при необходимости.
3. Исправлена ошибка сброса сигнала на пине ALARM_PIN при отключении будильника вручную.
4. При запросе вывода времени шестикратным кликом лампа мигнёт 4 раза красным, если время не синхронизировано.

Работа с памятью не менялась, если обновляетесь с предыдущей прошивки, очищать flash не обязательно.
Но ввиду того, что поменялись библиотеки работы с датой и временем, нужно доустановить библиоткеки Timezone и Time (есть в архиве) и неплохо бы потестировать работу будильника (проверять не только время срабатывания, но и день недели - в этой библиотеке другая нумерация дней).
 
Изменено:

space1988

✩✩✩✩✩✩✩
16 Июл 2019
6
3
Спасибо gunner47 за решение проблемы.
Все прошивается и работает
 

Leom403

✩✩✩✩✩✩✩
3 Ноя 2019
6
0
@gunner47, приветствую.
Хотел обновиться на вашу актуальную прошивку, но при компиляции скетча выводит ошибку
Папку libraris заменял, модули менял (ставил и про, и WEMOS D1 R1, ошибка та же.

На 1.5.1 от гайвера на странице проекта прошилась без проблем. НО. При переключении режимов с кнопки между последним и первым (конфетти и светлячки, вроде) есть какой-то мёртвый режим. Два раза тап - лампа гаснет. Что бы включить - нужно снова дважды тапнуть по кнопке - переходит на след режим. И то же в обратном порядке. Т,е. если от Огня мы идём обратно (3 тапа) - после светлячков все пропадает. Снова нужно тапать 2/3 раза.
Модуль Wemos D1 pro mini
Прошивка со страницы проекта Gyver 1.5.1

UPD
Да, не было библиотеки Timelib. Скачал и закинул файлы Time.h и TimeLib.h в папку c:\Users\<user>\Documents\Arduino\libraries\Time\ и C:\Program Files (x86)\Arduino\libraries. Ошибка сменилась на ту, что во вложении

Что-то с таймзон, но не могу понять, что...
Код в текст документе

UPD
по пути c:\Users\<user>\Documents\Arduino\libraries оставил только плагин /Time с Time.h и TimeLib.h
по пути C:\Program Files (x86)\Arduino\libraries перенес папку TimeZone из архива проекта, удалил в c:\Users\<user>\Documents\Arduino\libraries . Поменялось только расположение файла по пути, ошибка та же.
 

Вложения

Изменено:

gunner47

★★★★★✩✩
18 Июн 2019
253
393
@Pasha_ZP_UA, Ошибка не с прошивкой, ошибка с модулем. У меня такое было, когда я запитанный через БП модуль подключал по usb к компьютеру. Исчезало, когда отключал питание модуля на БП (предварительно выключив матрицу, чтоб не светилась). В общем, что-то с напряжением вероятно.

@Leom403, Я писал выше - в архиве не хватает библиотеки Time. Добавил, залил на гитхаб. Возьмите архив ещё раз. Или самостоятельно установите библиотеку Time. Библиотека Timelib на неё ссылается.
 
  • Лойс +1
Реакции: Xmas и Leom403

Leom403

✩✩✩✩✩✩✩
3 Ноя 2019
6
0
писал выше - в архиве не хватает библиотеки Time
Как видите, я на это внимание обратил.
Важное замечание, что если все библиотеки лежат в Program Files...\libraris\ то они там и должны лежать дальше.
Я же пихал ее в C:\Users\%Username%\Documents\Arduino\libraries, где не было остальных частей проекта (так же, как вы и писали выше в ответ комраду).
Благодарю! Работает
 

Boom

✩✩✩✩✩✩✩
4 Ноя 2019
1
0
Никто не сталкивался с эффектом огня непонятно голубозеленого цвета ? Все цвета везде отображаются правильно кроме огня. До этого стояла родная прошивка от Алекса и все было норм а теперь и на ней непонятный цвет! Уже всю голову поломал. Выставлял цветовое пространство добился нормального цвета огня но слетели остальные эффекты по цветам.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
@gunner47, Нашел интересное видео о получении своего локального времени
Пока нет возможности устанавливать с приложения или WM, может этот вариант привинтили бы?
Оно не факт что сервис проживет долго, но пока ведь работает.

Там, по факту, даже json библиотеку подгружать не надо, и временного буфера байт на 60 хватит, нам главное "utc_offset":"+01:00" из ответа на curl выловить.
Типа так
val = myString.lastIndexOf(F("utc_offset\":\""));
int8_t GMT = (myString.substring(val+1, val+4)).toInt();

Все остальное в программе остаётся как есть. При первом старте слать curl http://worldtimeapi.org/api/ip
Это можно прямо в setup вставить.
Как побочный эффект, мы узнаем свой внешний IP. Полезно, если научить лампу конектится к какому-то DDNS сервису. Правда я ума не приложу - зачем кому-то управлять лампой вне дома? Но как бы есть и есть. ;) Кушать не просит.


Это можно было даже в вашу предыдущую версию программы вставить.
 
Изменено:
  • Лойс +1
Реакции: Xmas

udavst

✩✩✩✩✩✩✩
3 Ноя 2019
29
2
, Нашел интересное видео о получении своего локального времени
Пока нет возможности устанавливать с приложения или WM, может этот вариант привинтили бы?
Оно не факт что сервис проживет долго, но пока ведь работает.
А чем плохо NTP? У меня дома роутер (который на бесперебойнике висит, на нём же локальный MQTT брокер) получает время по интернету, и раздаёт по NTP на дом, если я настрою будильник на ардес роутера, то лампа будет быстро и точно получать время, даже при отсутствии инета, если использовать внешний ресурс - то ему не будет замены, и без инета, если свет моргнул, можно и без будильника остаться.
 

Pasha_ZP_UA

✩✩✩✩✩✩✩
18 Окт 2019
15
2
Да все я делаю правильно, предыдущая прошивка залилась, запустилась с пол оборота а вчерашняя печалька...