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

ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

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

Комментарии

mechanic

★★★★✩✩✩
Команда форума
31 Июл 2018
403
206
ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

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

Klepa

✩✩✩✩✩✩✩
3 Янв 2020
19
4
спасибо все работает,еще бы найти чтоб эффекты менялись а не кнопкой переключать
 
Изменено:

5onik

✩✩✩✩✩✩✩
24 Авг 2020
3
1
Всем привет,появился вопрос как изменить эффект часы что бы он был как и часы которые появляются бегущей строкой,а то эти которые есть плохо как то видно.
 
  • Лойс +1
Реакции: Klepa

5onik

✩✩✩✩✩✩✩
24 Авг 2020
3
1
Сделать в режиме бегущей строки, чтоб вместо букв крутились цифры часов ? или как еще один эффект ?
Ну да,что бы часы крутились как бегущая строка,а то в режиме часы они в 2 строчки в у меня не матрица а лента спаянная,12х15 и они туда не очень вмещаются)
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Ну да,что бы часы крутились как бегущая строка,а то в режиме часы они в 2 строчки в у меня не матрица а лента спаянная,12х15 и они туда не очень вмещаются)
Если осилите платформио (к сожалению тут не все справляются с такой задачей), то в нашей прошивке, которую сейчас пишут 4 человека есть возможность периодического вывода времени. Впрочем там достаточно и других автоматизаций. Так что все в ваших руках.
 

5onik

✩✩✩✩✩✩✩
24 Авг 2020
3
1
Если осилите платформио (к сожалению тут не все справляются с такой задачей), то в нашей прошивке, которую сейчас пишут 4 человека есть возможность периодического вывода времени. Впрочем там достаточно и других автоматизаций. Так что все в ваших руках.
Понял куда копать)Спасибо за информацию!
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@Сотнег переделаете эффекты под суб-пиксель?
Я попробовал на Светлячках. На пользу явно не пошло (первое переключение на 0:20):
Оставлю оригинальный. Не думаю, что есть смысл ещё с каким-то эффектом заморачиваться.

Какой пароль должен для OTA
#define AP_PASS ("31415926") // пароль WiFi точки доступа

09:05:44 [ERROR]: Authentication Failed
Проблема скорее не в пароле.
Попробуйте пока что потестировать с отключением
#define USE_NTP
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@Сотнег, а нашим пошло на пользу ;)

И "Прыгающим мячикам" тоже

Вы наш код посмотрите. Чтобы субпиксель смотрелся, надо убрать задержку кадров.
 
Изменено:
  • Лойс +1
Реакции: Belokota и stepko

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@kostyamat,
так я ваш и снял.
В сравнении познаётся.

Плавность движения портит впечатление.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632

@Сотнег,
Нет. У вас они пуляют с задержкой между кадрами, а у нас нет. Сравнение совершенно не корректно.

Пс. Кстати даже у вас видно, что субпиксель движется мягче. Так почему на пользу-то не пошло?
Хотя, что я вас убалтываю, заяем мне это?
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@kostyamat, выглядит одинаково, что на вашем видео, что на моём.

В моём видео сперва работают оригинальные Светлячки.
Они дёрганные.
Потом на 0:20 включаются ваши плавные.
Ну и по ходу видео чередуются.

Кстати даже у вас видно, что субпиксель движется мягче.
Так почему на пользу-то не пошло?
По-моему, видео отлично передаёт, почему.
 
Изменено:

Belokota

★✩✩✩✩✩✩
24 Дек 2019
101
32
@Сотнег, а если сделать два режима "Дёрганые" и "Спокойные" светлячки и мячики? И будем включать кому какой нравится. "Спокойные" то же очень интересные(судя по представленным видео).
 
  • Лойс +1
Реакции: stepko

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492

@Belokota,
Мне совсем скучными показались, поэтому родилось такое:
Новый
Эффект Мотыльки

Эффект устанавливается с теми, у которых бегунок Скорость не регулирует задержку между кадрами.
Отличие от Светлячков (кроме того, что эти новые плавно летают) в том,
что Мотыльки периодически как бы садятся на стекло, ну и летают кругами.
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632

@Сотнег,
Я им крылышки приделал, уже в гитхаб. Видео снимать не буду, моя камера совершенно не передает.
 
  • Лойс +1
Реакции: Pavelts

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@kostyamat, а круговые траектории остались?
У меня начали по прямым летать, когда я имена переменным привёл в порядок.
Не понимаю, в чём косяк. Откатить не сохранилось.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@Сотнег, та вроде да. Смотрятся очень прикольно. Спасибо. С "крылышками" мой малый с магазина пришел, увидел и сразу сказал - "О, мотыльки! Класс!", а без жена - "мухи какие-то" заявила. :)
effects.h:
// ---- Эффект "Мотыльки"
// (с) Сотнег, https://community.alexgyver.ru/threads/wifi-lampa-budilnik-obsuzhdenie-proekta.1411/post-49189
class EffectButterfly : public EffectCalc {
private:
    float butterfly2Pos[2U][LIGHTERS_AM *2];
    float butterfly2Speed[2U][LIGHTERS_AM *2];
    float butterfly2Turn[LIGHTERS_AM *2];
    uint8_t butterfly2Color[LIGHTERS_AM *2];
    uint8_t light2[LIGHTERS_AM *2];
    byte step = 0;
    byte csum = 0;
  
    bool butterflyRoutine(CRGB *leds, EffectWorker *param);

public:
    //void load() override;
    bool run(CRGB *ledarr, EffectWorker *opt=nullptr) override;
};
effects.ccp:
// ---- Эффект "Мотыльки"
// (с) Сотнег, https://community.alexgyver.ru/threads/wifi-lampa-budilnik-obsuzhdenie-proekta.1411/post-49189
bool EffectButterfly::run(CRGB *ledarr, EffectWorker *opt) {

  return butterflyRoutine(*&ledarr, &*opt);
}

bool EffectButterfly::butterflyRoutine(CRGB *leds, EffectWorker *param)
{
  byte _scale = getCtrlVal(2).toInt();
  byte _speed = getCtrlVal(1).toInt();
  bool wings = false;
  if (getCtrlVal(3) == F("true"))
  { // переключатель в true
    wings = true;
  }

  if (csum != (127U^_scale))
  {
    csum = (127U^_scale);
    randomSeed(millis());
    if (_scale > LIGHTERS_AM) _scale = LIGHTERS_AM *2;
    for (uint8_t i = 0U; i < LIGHTERS_AM; i++)
    {
      //butterflyIdx=0;
      butterfly2Pos[0U][i] = random8(WIDTH);
      butterfly2Pos[1U][i] = random8(HEIGHT);
      butterfly2Speed[0U][i] = 0;
      butterfly2Speed[1U][i] = 0;
      butterfly2Turn[i] = 0;
      butterfly2Color[i] = random8();
      light2[i] = (wings ? (127U + random8(2U)) * 128U : 255);

    }
  }
  if (!wings) // имитация взмахов крыльями (с) kostyamat
    FastLED.clear();
  else
    fadeToBlackBy(leds, NUM_LEDS, 220);

  float temp0;
  float speedfactor = (float)_speed / 2048.0f + 0.001f;
  if (++step >= _scale) {
    step = 0U;
    //FastLED.clear();
  }
  for (uint8_t i = 0U; i < _scale; i++)
  {
    if (wings){ // имитируем взмахи крыльями (c) kostyamat
      if (butterfly2Speed[0U][i] == 0.0f and butterfly2Speed[1U][i] == 0.0f)
        light2[i] = 255;
      else
        light2[i] = 127U + random8(2U) * 128U;
    }
    butterfly2Pos[0U][i] += butterfly2Speed[0U][i]*speedfactor;
    butterfly2Pos[1U][i] += butterfly2Speed[1U][i]*speedfactor;

    if (butterfly2Pos[0U][i] < 0)
      butterfly2Pos[0U][i] = (float)(WIDTH - 1) + butterfly2Pos[0U][i];
    if (butterfly2Pos[0U][i] > WIDTH - 1)
      butterfly2Pos[0U][i] = butterfly2Pos[0U][i] + 1 - WIDTH;

    if (butterfly2Pos[1U][i] < 0)
    {
      butterfly2Pos[1U][i] = -butterfly2Pos[1U][i];
      butterfly2Speed[1U][i] = -butterfly2Speed[1U][i];
      //butterfly2Speed[0U][i] = -butterfly2Speed[0U][i];
    }
    if (butterfly2Pos[1U][i] > HEIGHT - 1U)
    {
      butterfly2Pos[1U][i] = (HEIGHT << 1U) - 2U - butterfly2Pos[1U][i];
      butterfly2Speed[1U][i] = -butterfly2Speed[1U][i];
      //butterfly2Speed[0U][i] = -butterfly2Speed[0U][i];
    }

    //проворот траектории
    temp0 = fabs(butterfly2Speed[0U][i])+fabs(butterfly2Speed[1U][i]); // максимальная суммарная скорость
    if (temp0 == fabs(butterfly2Speed[0U][i] + butterfly2Speed[1U][i]))
      {
          if (butterfly2Speed[0U][i] > 0) // правый верхний сектор вектора
          {
            butterfly2Speed[0U][i] += butterfly2Turn[i];
            if (butterfly2Speed[0U][i] > temp0) // если вектор переехал вниз
              {
                butterfly2Speed[0U][i] = temp0 + temp0 - butterfly2Speed[0U][i];
                butterfly2Speed[1U][i] = butterfly2Speed[0U][i] - temp0;
              }
            else
              butterfly2Speed[1U][i] = temp0 - fabs(butterfly2Speed[0U][i]);
          }
          else                           // левый нижний сектор
          {
            butterfly2Speed[0U][i] -= butterfly2Turn[i];
            if (butterfly2Speed[0U][i] + temp0 < 0) // если вектор переехал вверх
              {
                butterfly2Speed[0U][i] = 0 - butterfly2Speed[0U][i] - temp0 - temp0;
                butterfly2Speed[1U][i] = temp0 - fabs(butterfly2Speed[0U][i]);
              }
            else
              butterfly2Speed[1U][i] = fabs(butterfly2Speed[0U][i]) - temp0;
          }
      }
    else //левый верхний и правый нижний секторы вектора
      {
          if (butterfly2Speed[0U][i] > 0) // правый нижний сектор
          {
            butterfly2Speed[0U][i] -= butterfly2Turn[i];
            if (butterfly2Speed[0U][i] > temp0) // если вектор переехал наверх
              {
                butterfly2Speed[0U][i] = temp0 + temp0 - butterfly2Speed[0U][i];
                butterfly2Speed[1U][i] = temp0 - butterfly2Speed[0U][i];
              }
            else
              butterfly2Speed[1U][i] = fabs(butterfly2Speed[0U][i]) - temp0;
          }
          else                           // левый верхний сектор
          {
            butterfly2Speed[0U][i] += butterfly2Turn[i];
            if (butterfly2Speed[0U][i] + temp0 < 0) // если вектор переехал вниз
              {
                butterfly2Speed[0U][i] = 0 - butterfly2Speed[0U][i] - temp0 - temp0;
                butterfly2Speed[1U][i] = 0 - butterfly2Speed[0U][i] - temp0;
              }
            else
              butterfly2Speed[1U][i] = temp0 - fabs(butterfly2Speed[0U][i]);
          }
      }
  
    if (light2[i] == 255U)
    {
      if (step == i && random8(2U) == 0U)//(step == 0U && ((pcnt + i) & 0x01))
      {
        light2[i] = random8(180U,240U);
        butterfly2Speed[0U][i] = (float)random8(51U) / 10.0f + 1.0f;
        if (random8(2U) == 0U) butterfly2Speed[0U][i] = -butterfly2Speed[0U][i];
        butterfly2Speed[1U][i] = (float)random8(51U) / 10.0f + 1.0f;
        if (random8(2U) == 0U) butterfly2Speed[1U][i] = -butterfly2Speed[1U][i];
        // проворот траектории
        butterfly2Turn[i] = (float)random8((fabs(butterfly2Speed[0U][i])+fabs(butterfly2Speed[1U][i]))*2.0+2.0) / 40.0f;
        if (random8(2U) == 0U) butterfly2Turn[i] = -butterfly2Turn[i];
      }
    }
    else if ((uint16_t)(butterfly2Pos[0U][i] * 7) % 7 == 0U && (uint16_t)(butterfly2Pos[1U][i] * 7) % 7 == 0U)
    {
      butterfly2Pos[0U][i] = (uint8_t)butterfly2Pos[0U][i];
      butterfly2Pos[1U][i] = (uint8_t)butterfly2Pos[1U][i];
      butterfly2Speed[0U][i] = 0;
      butterfly2Speed[1U][i] = 0;
      butterfly2Turn[i] = 0;
      light2[i] = 255U;
    }
  
    myLamp.drawPixelXYF(butterfly2Pos[0U][i], butterfly2Pos[1U][i], CHSV(butterfly2Color[i], 255U, light2[i]));
  
  }
  return true;
}
 
Изменено:

drakosa

✩✩✩✩✩✩✩
7 Июн 2020
1
0
Добрый день. Сделал лампу. Все супер . Немагу найти приложение для управления лампой « arduino lamp » в Apps. пишут , не тот регион . Что делат?
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@drakosa,
на данный момент от приложения для айфона остались только исходники.
В апСторе нету, так как автор перестал платить за размещение там.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
105
Недели 2 юзаю прошивку ганнера 1.4 и его приложение на iPhone - успел поставить.
Тут накопал 1.5
Строку настроек сделал такую -
#define ESP_USE_BUTTON // если строка не закомментирована, должна быть подключена кнопка (иначе ESP может регистрировать "фантомные" нажатия и некорректно устанавливать яркость)
и
#define ESP_RESET_ON_START (false) // true - если при старте нажата кнопка (или кнопки нет!), сохранённые настройки будут сброшены; false - не будут

- однако после выкл/вкд питания лампы она не светится, пока не запустишь от кнопки или приложения (на 1.4 - сама включалась), и главное - она сбрасывает настройки, включает не тот режим, на каком выключили питание, а опять конфети.
На 1.4 - всегда включает то, что было перед отключением питания.

Какие-то ещё настройки я упустил? Вообще, 1.5 намного лучше, чем 1.4?
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@Константин 271,
сохранение последнего эффекта происходит раз в 3 минуты. Дайте лампе поработать.

Управление и настройки в версиях 1.4 и 1.5 не отличаются.
Список отличий от предыдущей версии в прошивке указан.
 
  • Лойс +1
Реакции: Константин 271