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

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Вот! Одеяльный и ламповый огонь! :cool:


+ переписан и исправлен эффект качания пламени (языков)
+ эффект перемещения очага
+ яркие и качающиеся искорки
+ универсальный огонь (белый+цветной в одном эффекте! кто желает)
Одеяльный и ламповый огонь!
для оригинальной немодифицированной прошивки от gunner47

На форум такой большой кусок кода вставить не разрешают. Берите из файла.
Во вложении целиком файл эффектов для замены.

Или можете оттуда копировать только блок про огонь от строчки
// ------------- огонь -----------------
до строчки
// ------------- радуга вертикальная ----------------

На форум такой большой кусок кода вставить не разрешают.
 

Вложения

  • Лойс +1
Реакции: Belokota и Palpalych

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Вдруг надо кому.
Рисунок пламени с тремя языками пламени вместо двух.
C-like:
static const uint8_t valueMask[8][16] PROGMEM =
{
  {32 , 0  , 0  , 0  , 0  , 32 , 0  , 0  , 0  , 0  , 32 , 0  , 0  , 0  , 0  , 32 },
  {64 , 0  , 0  , 0  , 0  , 64 , 0  , 0  , 0  , 0  , 64 , 0  , 0  , 0  , 0  , 64 },
  {96 , 32 , 0  , 0  , 32 , 96 , 0  , 0  , 0  , 32 , 96 , 32 , 0  , 0  , 0  , 96 },
  {128, 64 , 32 , 0  , 64 , 128, 32 , 0  , 32 , 64 , 128, 64 , 0  , 0  , 32 , 128},
  {160, 96 , 64 , 32 , 96 , 160, 64 , 32 , 64 , 96 , 160, 96 , 32 , 32 , 64 , 160},
  {192, 128, 96 , 64 , 128, 192, 96 , 64 , 96 , 128, 192, 128, 64 , 64 , 96 , 192},
  {255, 160, 128, 96 , 160, 255, 128, 96 , 128, 160, 255, 160, 96 , 96 , 128, 255},
  {255, 192, 160, 128, 192, 255, 160, 128, 160, 192, 255, 192, 128, 128, 160, 255}
};

//these are the hues for the fire,
//should be between 0 (red) to about 25 (yellow)
static const uint8_t hueMask[8][16] PROGMEM =
{
  {1 , 11, 19, 25, 11, 1 , 19, 25, 22, 11, 1 , 11, 25, 25, 22, 1 },
  {1 , 8 , 13, 25, 8 , 1 , 13, 25, 19, 8 , 1 , 8 , 19, 19, 19, 1 },
  {1 , 8 , 13, 19, 8 , 1 , 13, 19, 16, 8 , 1 , 8 , 16, 16, 16, 1 },
  {1 , 5 , 11, 13, 5 , 1 , 11, 13, 13, 5 , 1 , 5 , 13, 13, 13, 1 },
  {1 , 5 , 11, 11, 5 , 1 , 11, 11, 11, 5 , 1 , 5 , 11, 11, 11, 1 },
  {0 , 1 , 5 , 8 , 1 , 0 , 5 , 8 , 5 , 1 , 0 , 1 , 8 , 8 , 5 , 0 },
  {0 , 0 , 1 , 5 , 0 , 0 , 1 , 5 , 1 , 0 , 0 , 0 , 5 , 5 , 1 , 0 },
  {0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 }
};
 

san100

★✩✩✩✩✩✩
17 Дек 2019
59
12
@Сотнег, а я вот полдня рисую, всё не нравится, сделал выше на 2 строчки матрицы, выше - лампа виснет полностью.
попробую твои! спасибо!
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@san100, нужно организовать пересчет еще по этой матрице в обработчике эффектов
 

san100

★✩✩✩✩✩✩
17 Дек 2019
59
12
@Palpalych, я, уж поднаторел в си, но не понял, обработчик эффектов - это что? цифры в столбах поменял, где отрисовка...
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@san100, Это подпрограмма отрисовки кадра требуемого эффекта, к примеру void fireRoutine () {}...
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Palpalych, я, уж поднаторел в си, но не понял, обработчик эффектов - это что? цифры в столбах поменял, где отрисовка...
Кроме высоты масок с рисунком пламени
нужно передвигать позиции границ эффектов (пламя, линия зарождения искр, воздух)
и сдвигать счётчики циклов для обработки этих диапазонов.
 

san100

★✩✩✩✩✩✩
17 Дек 2019
59
12
@Сотнег, просто супер! теперь реально огонь! как бы убрать белый огонь из приложения теперь?
Сегодня будет.

@Сотнег, времени на странице будильников нет и в основном приложении от Gunner47/ Я его вообще там его ни где не нашел, кроме как в отладочной строке внизу экрана.
По поводу не понятного смотрите описание приложения от Gunner47. Пункты, которые я не менял одинаковы с его приложением.
теперь надо из скетча убрать белый огонь и из приложения.
@Koteyka, приложение ганнера видит, когда лампа офлайн в реальном времени, а твое надо перезагружать, чтоб оно об этом узнало. выключатель блокировки кнопки всё время уползает влево (вык).
отцы, а как бы ещё сделать таймер включения и выключения лампы? в скетче я ещё, мб, и осилю, а в приложении - нет.
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@san100, Вместо белого огня уже прилаживаем огнепад с водопадом.
Мне бы посмотреть, как это выглядит...
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
@tobsik, но он же должен включаться нажатием сенсорной кнопки, а не включается..

Еще в мониторе порта крякозябри появились
Исходя из скрина надпись WiFiManager говорит, что лампа раздаёт сеть свою (LedLamp). Заходите в эту сеть телефоном и настраивайте.
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
Подскажите, в прошивке vvip-68 не включаются мелодии. Точнее в приложении списки есть в полном объеме, а воспроизводится только "Птицы" и "Гроза". Делал уже многое. Начинают запускаться только когда загрузится все и в этот момент перевставишь карту или откинуть и обратно включить питание с плеера. Нашел небольшую описку в "a_main.ino" :
case 96: // Ответ демо-режима звука - сообщение по инициативе сервера
#if (USE_MP3 == 1)
str ="$18 MP:" + String(soundFolder) + '~' + String(soundFile+2) + ";"; // нет квадратных скобок
cmd96 = str;
#endif
break;
Это проблема с железом или исправление этого исправит все?
У меня плафон как у Malec
, только квадратный и думаю в сотый раз разбирать, перепрошивать, или не поможет? А пока сделал кнопочку на питание DFPl ).
По-моему имена файлов должны быть из цифер: 0001.mp3, 0002.mp3 и т.д.
 
  • Лойс +1
Реакции: avramenkoal

san100

★✩✩✩✩✩✩
17 Дек 2019
59
12
@san100, Нет, а что-то надо?
нет, просто спросил:)
единственная претензия к огню - на яркости, близкой к максимальной, видно ограничение маски, прям как будто огонь об стекло бьется, это и у ганнера было. поэтому я и морочился с увеличением высоты пламени
 
  • Лойс +1
Реакции: Belokota

avramenkoal

✩✩✩✩✩✩✩
8 Янв 2020
3
2
По-моему имена файлов должны быть из цифер: 0001.mp3, 0002.mp3 и т.д.
Спасибо большое, пользователь malec помог. Поменял строчкув dfplayer.ino: dfPlayer.begin(mp3Serial, false, true);
Все заработало, дополнительной музыки накидал. Протестировал немного. Еще раз спасибо.
 
  • Лойс +1
Реакции: George

san100

★✩✩✩✩✩✩
17 Дек 2019
59
12
@Сотнег, поня
Кроме высоты масок с рисунком пламени
нужно передвигать позиции границ эффектов (пламя, линия зарождения искр, воздух)
и сдвигать счётчики циклов для обработки этих диапазонов.
понял! щас попробовал твой огонь покрутить, пропадают искры. не буду лезть. у тебя сложнее сделано, чем в оригинале!
 

Татьяна Аникеенко

✩✩✩✩✩✩✩
10 Фев 2020
9
4
@George, короче, наверное что-то с платой не так. Помогла только замена настроек ESP на 0. В локальном режиме лента отказалась светиться намертво. Хотя какая здесь связь не понимаю.
Косвенно, проблем с платой подтверждает невозможность установки прошивки gunner47 (выдает: библиотека Timezone должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp8266. Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Готово!
Обновлённый ламповый Огонь + новый эффект Водопад

Кусок кода для "лампового Огня" слишком большой, чтобы вставить тут в сообщение,
поэтому придётся брать из вложенного файла (ссылка ниже).

Или можно заменить файл effects.ino целиком,
если у вас прошивка от gunner47 (GyverLamp_v1.4) без модификаций.

Водопад устанавливается вместо Белого огня (белый цвет теперь можно выбрать в обычном Огне).
Он тоже есть во вложенном файле, но можно взять отдельно код прямо
здесь под спойлером (даже чуть новее будет).


Кроме обновления файла с эффектами нужно будет подключить эффект во другом файле effectTicker.ino
вместо строчки
case EFF_WHITTE_FIRE: fireRoutine(false); break;
нужна строчка
case EFF_WHITTE_FIRE: fire2012WithPalette(); break; // <- изменили белый огонь

Не забудьте настроить параметр водопада в файле effects.ino (если взяли код не испод спойлера, а из файла)
#define COOLINGNEW 55 // 100 // 55 // 86 <--- вот здесь измените число 55 на другое (я себе поставил 32)
// 8 практически сплошной поток красивой подсвеченной воды ровным потоком сверху донизу. будто бы на столе стоит маленький "родничок"
// 20 ровный водопад с вершиной на свету, где потоки летящей воды наверху разбиваются ветром в белую пену
// 32 уже не ровный водопад, у которого струи воды долетают до земли неравномерно
// чем больше параметр, тем больше тени снизу
// 55 такое, как на верхнем видео

C++:
// =============- ЭКС-новый огонь / водопад -===============
// COOLING: How much does the air cool as it rises?
// Less cooling = taller flames.  More cooling = shorter flames.
// Default 55, suggested range 20-100
#define COOLINGNEW 32
// 8  практически сплошной поток красивой подсвеченной воды ровным потоком сверху донизу. будто бы на столе стоит маленький "родничок"
// 20 ровный водопад с верщиной на свету, где потоки летящей воды наверху разбиваются ветром в белую пену
// 32 уже не ровный водопад, у которого струи воды долетают до земли неравномерно
// чем больше параметр, тем больше тени снизу
// 55 такое, как на первом видео

// SPARKING: What chance (out of 255) is there that a new spark will be lit?
// Higher chance = more roaring fire.  Lower chance = more flickery fire.
// Default 120, suggested range 50-200.
#define SPARKINGNEW 80 // 30 // 120 // 90 // 60
// 80 почти все белые струи сверху будут долетать до низа - хорошо при выбранном ползунке Масштаб = 100 (белая вода без подкрашивания)
// 50 чуть больше половины будет долетать. для цветных вариантов жидкости так более эффектно

// палитра для типа реалистичного водопада (если ползунок Масштаб выставить на 100)
extern const TProgmemRGBPalette16 WaterfallColors_p FL_PROGMEM = {
  0x000000, 0x060707, 0x101110, 0x151717,
  0x1C1D22, 0x242A28, 0x363B3A, 0x313634,
  0x505552, 0x6B6C70, 0x98A4A1, 0xC1C2C1,
  0xCACECF, 0xCDDEDD, 0xDEDFE0, 0xB2BAB9
};

void fire2012WithPalette(){
//    bool fire_water = modes[EFF_WHITTE_FIRE].Scale <= 50;
//    uint8_t COOLINGNEW = fire_water ? modes[EFF_WHITTE_FIRE].Scale * 2  + 20 : (100 - modes[EFF_WHITTE_FIRE].Scale ) *  2 + 20 ;
//    uint8_t COOLINGNEW = modes[EFF_WHITTE_FIRE].Scale * 2  + 20 ;
    // Array of temperature readings at each simulation cell
    static byte heat[WIDTH][HEIGHT];

    for(uint8_t x = 0; x < WIDTH; x++) {
      // Step 1.  Cool down every cell a little
      for (int i = 0; i < HEIGHT; i++) {
          heat[x][i] = qsub8(heat[x][i], random8(0, ((COOLINGNEW * 10) / HEIGHT) + 2));
      }

      // Step 2.  Heat from each cell drifts 'up' and diffuses a little
      for (int k = HEIGHT - 1; k >= 2; k--) {
          heat[x][k] = (heat[x][k - 1] + heat[x][k - 2] + heat[x][k - 2]) / 3;
      }

      // Step 3.  Randomly ignite new 'sparks' of heat near the bottom
      if (random8() < SPARKINGNEW) {
          int y = random8(2);
          heat[x][y] = qadd8(heat[x][y], random8(160, 255));
      }

      // Step 4.  Map from heat cells to LED colors
      for (int j = 0; j < HEIGHT; j++) {
          // Scale the heat value from 0-255 down to 0-240
          // for best results with color palettes.
          byte colorindex = scale8(heat[x][j], 240);
          if (modes[EFF_WHITTE_FIRE].Scale == 100)
            leds[getPixelNumber(x, (HEIGHT - 1) - j)] = ColorFromPalette(WaterfallColors_p, colorindex);
          else
            leds[getPixelNumber(x, (HEIGHT - 1) - j)] = ColorFromPalette(CRGBPalette16( CRGB::Black, CHSV(modes[EFF_WHITTE_FIRE].Scale * 2.57, 255U, 255U) , CHSV(modes[EFF_WHITTE_FIRE].Scale* 2.5, 128U, 255U) , CRGB::White), colorindex);
            //leds[getPixelNumber(x, (HEIGHT - 1) - j)] = ColorFromPalette(fire_water ? HeatColors_p : OceanColors_p, colorindex);
      }
    }
}
 

Вложения

Изменено:

ShONik

★✩✩✩✩✩✩
30 Ноя 2019
53
14
@Сотнег, Обновлённый ламповый Огонь + новый эффект Водопад

Спасибо, за проделанную работу!