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

@Ravshan, а если по проводу загрузить, всё работает?

Может быть, в вашей версии прошивки просто глючный код поддержки обновления по воздуху?
Тогда с другой прошивкой обновление по ОТА уже будет работать.
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Еще есть идея простого эффекта для тех кто умеет: вращающиеся горизонтальные круги в разных направлениях с изменением цветов. Высота круга 2 светодиода.
Попробовал сделать эти вращающиеся круги/кольца, но пока что получилось что-то типа
Эффект Кодовый замок
(наснимал ужасно, но в какие-то моменты фокусировки камеры суть будет ясна)

Масштаб выбирает палитру и толщину колец внутри каждой палитры.
В итоге получается от 2 до 16 колец/шестерёнок.
Не знаю, что сделать, чтобы эффект стал клёвым.

C-like:
// добавлено изменение текущей палитры (используется во многих эффектах ниже для бегунка Масштаб)
const TProgmemRGBPalette16 *palette_arr[] = {&PartyColors_p, &OceanColors_p, &LavaColors_p, &HeatColors_p, &WaterfallColors_p, &CloudColors_p, &ForestColors_p, &RainbowColors_p, &RainbowStripeColors_p};
const TProgmemRGBPalette16 *curPalette = palette_arr[0];
void setCurrentPalette(){
      if (modes[currentMode].Scale > 100) modes[currentMode].Scale = 100; // чтобы не было проблем при прошивке без очистки памяти
      curPalette = palette_arr[(uint8_t)((float)modes[currentMode].Scale/100*((sizeof(palette_arr)/sizeof(TProgmemRGBPalette16 *))-0.01U))];
}

C-like:
// ------------------------------ ЭФФЕКТ КОЛЬЦА / КОДОВЫЙ ЗАМОК ----------------------
// (c) SottNick
// из-за повторного использоваия переменных от других эффектов теперь в этом коде невозможно что-то понять.
// поэтому для понимания придётся сперва заменить названия переменных на человеческие. но всё равно это песец, конечно.
//uint8_t deltaHue2; // максимальне количество пикселей в кольце (толщина кольца) от 1 до HEIGHT / 2 + 1
//uint8_t deltaHue; // количество колец от 2 до HEIGHT
//uint8_t noise3d[1][1][HEIGHT]; // начальный оттенок каждого кольца (оттенка из палитры) 0-255
//uint8_t shiftValue[HEIGHT]; // местоположение начального оттенка кольца 0-WIDTH-1
//uint8_t shiftHue[HEIGHT]; // 4 бита на ringHueShift, 4 на ringHueShift2
////ringHueShift[ringsCount]; // шаг градиета оттенка внутри кольца -8 - +8 случайное число
////ringHueShift2[ringsCount]; // обычная скорость переливания оттенка всего кольца -8 - +8 случайное число
//uint8_t deltaValue; // кольцо, которое в настоящий момент нужно провернуть
//uint8_t step; // оставшееся количество шагов, на которое нужно провернуть активное кольцо - случайное от WIDTH/5 до WIDTH-3
//uint8_t hue, hue2; // количество пикселей в нижнем (hue) и верхнем (hue2) кольцах

void ringsRoutine(){
    uint8_t h, x, y;
    if (loadingFlag)
    {
      loadingFlag = false;
      setCurrentPalette();

      //deltaHue2 = (modes[currentMode].Scale - 1U) / 99.0 * (HEIGHT / 2 - 1U) + 1U; // толщина кольца в пикселях. если на весь бегунок масштаба (от 1 до HEIGHT / 2 + 1)
      deltaHue2 = (modes[currentMode].Scale - 1U) % 11U + 1U; // толщина кольца от 1 до 11 для каждой из палитр
      deltaHue = HEIGHT / deltaHue2 + ((HEIGHT % deltaHue2 == 0U) ? 0U : 1U); // количество колец
      hue2 = deltaHue2 - (deltaHue2 * deltaHue - HEIGHT) / 2U; // толщина верхнего кольца. может быть меньше нижнего
      hue = HEIGHT - hue2 - (deltaHue - 2U) * deltaHue2; // толщина нижнего кольца = всё оставшееся
      for (uint8_t i = 0; i < deltaHue; i++)
      {
        noise3d[0][0][i] = random8(257U - WIDTH / 2U); // начальный оттенок кольца из палитры 0-255 за минусом длины кольца, делённой пополам
        shiftHue[i] = random8();
        shiftValue[i] = 0U; //random8(WIDTH); само прокрутится постепенно
        step = 0U;
        //do { // песец конструкцию придумал бредовую
        //  step = WIDTH - 3U - random8((WIDTH - 3U) * 2U); само присвоится при первом цикле
        //} while (step < WIDTH / 5U || step > 255U - WIDTH / 5U);
        //deltaValue = random8(deltaHue); само присвоится при первом цикле
      }
     
    }
    for (uint8_t i = 0; i < deltaHue; i++)
    {
      if (i != deltaValue) // если это не активное кольцо
        {
          h = shiftHue[i] & 0x0F; // сдвигаем оттенок внутри кольца
          if (h > 8U)
            //noise3d[0][0][i] += (uint8_t)(7U - h); // с такой скоростью сдвиг оттенка от вращения кольца не отличается
            noise3d[0][0][i]--;
          else
            //noise3d[0][0][i] += h;
            noise3d[0][0][i]++;
        }
      else
        {
          if (step == 0) // если сдвиг активного кольца завершён, выбираем следующее
            {
              deltaValue = random8(deltaHue);
              do {
                step = WIDTH - 3U - random8((WIDTH - 3U) * 2U); // проворот кольца от хз до хз
              } while (step < WIDTH / 5U || step > 255U - WIDTH / 5U);
            }
          else
            {
              if (step > 127U)
                {
                  step++;
                  shiftValue[i] = (shiftValue[i] + 1U) % WIDTH;
                }
              else
                {
                  step--;
                  shiftValue[i] = (shiftValue[i] - 1U + WIDTH) % WIDTH;
                }
            }
        }
        // отрисовываем кольца
        h = (shiftHue[i] >> 4) & 0x0F; // берём шаг для градиента вутри кольца
        if (h > 8U)
          h = 7U - h;
        for (uint8_t j = 0U; j < ((i == 0U) ? hue : ((i == deltaHue - 1U) ? hue2 : deltaHue2)); j++) // от 0 до (толщина кольца - 1)
        {
          y = i * deltaHue2 + j - ((i == 0U) ? 0U : deltaHue2 - hue);
          for (uint8_t k = 0; k < WIDTH / 2U; k++) // полукольцо
            {
              x = (shiftValue[i] + k) % WIDTH; // первая половина кольца
              leds[XY(x, y)] = ColorFromPalette(*curPalette, noise3d[0][0][i] + k * h);
              x = (WIDTH - 1 + shiftValue[i] - k) % WIDTH; // вторая половина кольца (зеркальная первой)
              leds[XY(x, y)] = ColorFromPalette(*curPalette, noise3d[0][0][i] + k * h);
            }
          if (WIDTH & 0x01) //(WIDTH % 2U > 0U) // если число пикселей по ширине матрицы нечётное, тогда не забываем и про среднее значение
          {
            x = (shiftValue[i] + WIDTH / 2U) % WIDTH;
            leds[XY(x, y)] = ColorFromPalette(*curPalette, noise3d[0][0][i] + WIDTH / 2U * h);
          }
        }
    }
}
 
Изменено:

viciok

✩✩✩✩✩✩✩
13 Ноя 2019
1
0
@kDn, что то мы сегодня синхронно отвечаем на вопросы, уже второй раз.

Вопрос к вам: опишите в двух словах сценарий использования МП3 плеера в содружестве с лампой, как вы его видете?

Почему спрашиваю: как то не могу понять для чего это вообще нужно, кроме мелодий будильника.
Огонь горит -звук костра, синий цвет - вода, ручеёк, зелень - шелест листьев и т.д.
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0

@Ravshan, а если по проводу загрузить, всё работает?

Может быть, в вашей версии прошивки просто глючный код поддержки обновления по воздуху?
Тогда с другой прошивкой обновление по ОТА уже будет работать.
Да по проводу работает а по воздуху нет. Все прошивки от gunner47 попробовал но без результатно
Это у меня такой проблема или у других тоже такой бывало?
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Ravshan,
у других,
если программа выдала "Загрузка завершена", значит всё прошло отлично.
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0

Вложения

Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Ravshan, ну и раз дебаг-режим включили,
что лампа пишет в логах во время и после прошивки?
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0
ПРЕДУПРЕЖДЕНИЕ: библиотека Timezone должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp8266.
In file included from C:\Users\User\Desktop\GyverLamp-master 1,5\firmware\gunner47_v1.5\gunner47_v1.5.ino:144:0:

C:\Users\User\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.003

# pragma message "FastLED version 3.003.003"

^

In file included from C:\Users\User\Documents\Arduino\libraries\FastLED/FastLED.h:65:0,

from C:\Users\User\Desktop\GyverLamp-master 1,5\firmware\gunner47_v1.5\gunner47_v1.5.ino:144:

C:\Users\User\Documents\Arduino\libraries\FastLED/fastspi.h:130:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output

# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"

^

Executable segment sizes:


IROM : 378808 - code in flash (default or ICACHE_FLASH_ATTR)


IRAM : 28912 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)


DATA : 1304 ) - initialized variables (global, static) in RAM/HEAP


RODATA : 3220 ) / 81920 - constants (global, static) in RAM/HEAP


BSS : 34624 ) - zeroed variables (global, static) in RAM/HEAP


Скетч использует 412244 байт (39%) памяти устройства. Всего доступно 1044464 байт.
Глобальные переменные используют 39148 байт (47%) динамической памяти, оставляя 42772 байт для локальных переменных. Максимум: 81920 байт.
Authenticating...OK
Uploading..............................................................................................................................................................................................................................................................................................

дебаг режим?
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Ravshan, нет.
Меню -> Инструменты -> Монитор порта.

Плата должна быть подключена по кабелю, хотя прошиваться нужно по воздуху.
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0
@Ravshan, нет.
Меню -> Инструменты -> Монитор порта.

Плата должна быть подключена по кабелю, хотя прошиваться нужно по воздуху.
Почему по кабелю не поняла вас.
Вы можете дать полный инструкция обновление по воздуху я что-то пропустил пожалуйста
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Ravshan, по кабелю можно посмотреть, что пишет лампа в логах (дебаг-режима).
А обновляться по воздуху вы умеете.
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0
При компиляции "ПРЕДУПРЕЖДЕНИЕ: библиотека Timezone должна запускаться на архитектурах avr и может быть" Это нормально?
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0
@Ravshan, по кабелю можно посмотреть, что пишет лампа в логах (дебаг-режима).
А обновляться по воздуху вы умеете.
@Ravshan, по кабелю можно посмотреть, что пишет лампа в логах (дебаг-режима).
А обновляться по воздуху вы умеете.
 

Вложения

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Ravshan, вопроса не увидел от вас.
В логах написано, что всё хорошо.
Прошивка по воздуху ещё не началась, наверное.
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0
@Согнет, вопрос?
если все хорошо то почему не работает обновление по воздуху?
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Ravshan, ну начинайте обновление по воздуху и смотрите, что лампа пишет в Мониторе порта.

Я сам не в курсе, можно ли обновлять по воздуху, а смотреть логи по кабелю.
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0
@Ravshan, ну начинайте обновление по воздуху и смотрите, что лампа пишет в Мониторе порта.

Я сам не в курсе, можно ли обновлять по воздуху, а смотреть логи по кабелю.
Где можно написать Автору gunner47 по этой проблемы?
 

Ravshan

✩✩✩✩✩✩✩
4 Май 2020
18
0
Вы же с гитхаба скачали? Вот там и напишите. :)
Здравствуйте спасибо. Вы не знаете почему после обновление по воздуху wemos зависает как будто не загружено прошивка хотя программа говорит загрузка завершено?
Вы обновляле по воздуху?