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

George

★★✩✩✩✩✩
25 Дек 2019
372
58
@George, У меня этих диодов от вс 2812 пять полос по 10 штук уже нарезанных и на провод экранированный распаяных (хотел гирлянду на окно делать в прошлом году, точнее в позапрошлом:)) 50шт распаял и чё-то как-то лень победила и голова от горящей изоляции разболелась. Но вот вопрос :- тебе зачем??? Просто экспиремент? А какая от него польза? Смысла не вижу, он заранее обречён т.к. нет общего сигнального провода...Дата идёт по двум проводам...
А всем тут рассказывал какой ты схемотехник...
Я не злопамятный:rolleyes: оно как-то само запоминается:ROFLMAO:
Почему по двум? Относительно земли на первом +3V, сигнал пройдёт, а вот пройдёт ли он дальше не знаю, т.к. внутренняя схема чисто функционально показана? Что там на деле, я могу только предполагать. Польза в том, что если это работает, то можно будет питать от ~220. Были бы у меня диоды проверил бы сам...
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
Маленькая, это 8х8? И сколько работает без подзарядки?
4*4
проработала 15 часов на одном несвежем 18650 (~1800mAh), демо режим со сменой, но без белых эффектов.
Алекс классный приколист и пиротехник, контроллер 4056 расчитан на ОДИН аккумулятор, если ставить в параллель два, то ток заряда будет на каждом аккумуляторе уже не 1 Ампер, а вдвое меньше, а учитывая поэтапную схему заряда с этой микрухой на конечном этапе 50 mA вместо 100. Время заряда увеличится вдвое. Кроме того, для параллели их нужно подбирать, чтобы один не высаживал другой иначе нагрев и выход из строя обеспечен.
 

mason

✩✩✩✩✩✩✩
28 Янв 2020
49
1
@Koteyka, не особо понятно с переключателями то ли он включен то ли выключен, добавить бы с верху надписи или менять цвет ползунка
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
@Koteyka, не особо понятно с переключателями то ли он включен то ли выключен, добавить бы с верху надписи или менять цвет ползунка
Не знаю что имеется ввиду, но переключатели меняют цвет. Бордовый - зелёный.
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
@mason, ОК. Сделаю.
Не знаю что имеется ввиду, но переключатели меняют цвет. Бордовый - зелёный.
Он о переключателе в настройках соединения. Хотя там тоже видно, включен или нет.
Если имеется в виду переключатель Кнопка разблокирована, то там тоже видно. Слева выкл, справа вкл.
@mason, уточните, какой именно переключатель вам не понятен?
 

malec

★★★★✩✩✩
5 Фев 2019
680
257
@George, Китайцы уже сделали подобное, т.е. питают 220, но сигнал должен быть земля плюс дата на всех диодах (точнее не на диодах а на чипе , иначе лента живёт своей жизнью, т.е. по наводкам... просто попробуй запитай ленту с разных сторон разными блоками и кусани минус ленты по середине и начнётся цветомузыка ....
Вот картинка , как ты себе представляешь последовательное соединение?
А китайцы ставят драйвер на 220в в каждый писель и делают типа ДЮРАЛАЙТ с контроллером...
 

Вложения

Изменено:

George

★★✩✩✩✩✩
25 Дек 2019
372
58
@George, Китайцы уже сделали подобное, т.е. питают 220, но сигнал должен быть земля плюс дата на всех диодах (точнее не на диодах а на чипе , иначе лента живёт своей жизнью, т.е. по наводкам... просто попробуй запитай ленту с разных сторон разными блоками и кусани минус ленты по середине и начнётся цветомузыка ....
Вот картинка , как ты себе представляешь последовательное соединение?
А китайцы ставят драйвер на 220в в каждый писель и делают типа ДЮРАЛАЙТ с контроллером...
Всё, я понял. Работать не будет. Даже, если бы сигнал предположим прошёл, то погашенный диод разомкнёт цепь. Спасибо.
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
Посмотреть вложение 9496 не могу загрузить прошивку выдаёт вот такую ошибку что делать?
Твой модуль не переходит в режим программирования.
Драйвера установил?
Зажать Сброс- нажать Флэш, отпустить Флэш, отпустить сброс. (Если чёрная плата Нодэмсию)
 

Sphynx

✩✩✩✩✩✩✩
8 Фев 2020
4
1
@Koteyka, подскажи, а ты только программку пишешь или прошивка у тебя под нее тоже своя или от gunner47?
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
подскажи, а ты только программку пишешь или прошивка у тебя под нее тоже своя или от gunner47
Приложение сделано под прошивку от Gunner47, т.к. изначально разрабатывалось, как альтернатива стандартному приложению.
Но я делал и свои прошивки (правда не для Public). У меня лампа собрана на МЕГЕ, управляется по ВТ и у нее свое приложение.
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Сотнег,
По поводу не понятного смотрите описание приложения от Gunner47. Пункты, которые я не менял одинаковы с его приложением.
Я не смог найти описание опций странички Избранное.
Оно точно существует?
Кто-нибудь, кроме @gunner47 вообще в курсе, как оно работает?
 

Vados2020

★✩✩✩✩✩✩
30 Янв 2020
70
21
@Koteyka, "При синтаксическом анализе пакета возникла неполадка"- синтаксическая ошибка. Очень жаль. Андроид 4.4.2 (да есть еще такой! :) ) не одна из Ваших версий приложения так и не запустилось. На более свежей версии андроида все работает. Очень хочется и на этой версии, если у Вас есть такая возможность. LedLampa.apk работает
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
Очень жаль. Андроид 4.4.2 (да есть еще такой! :) ) не одна из Ваших версий приложения так и не запустилось.
К сожалению Android Studio не позволяет поставить SDK ниже 22, а это Android 5.1.
Я не могу уже ниже понизить, даже жертвуя некоторыми упрощениями при написании приложения.
 

san100

★✩✩✩✩✩✩
17 Дек 2019
59
12
@san100, подскажите, как и с помощью чего вы сделали такое идеальное отверстие в 50 заглушке, которая крепится к основанию? Уж больно понравился ваш вариант корпуса:)
Привет! сначала на 100 заглушке нашел центр, пришлось вспомнить школьную геометрию :), соединил с 50 тоже ровненько. потом ступенчатым сверлом рассверлил на малых оборотах, пластик мягкий, режется хорошо.
 

san100

★✩✩✩✩✩✩
17 Дек 2019
59
12
Некоторые делали, но тогда нужно подключать полевик на отключение матрицы по питанию, т.к. при выключенной лампе матрица всё равно потребляет не мало энергии. Фактически, при выключении лампы просто ставится яркость в 0.
а именно около 250 ма!
 

mason

✩✩✩✩✩✩✩
28 Янв 2020
49
1
@Koteyka, переключатели в будильнике (дни недели) и в сервисе блокировка кнопки. а есть возможность в сервис добавить кнопку сброса настроек вайфай ?
да знаю можно с кнопки бросить...
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
а есть возможность в сервис добавить кнопку сброса настроек вайфай ?
Есть, но зачем? Лампа сразу же потеряет связь с приложением - это во первых.
Во вторых, нужно, чтобы Gunner47 в прошивке сделал обработку моего запроса на сброс настроек.
 

mason

✩✩✩✩✩✩✩
28 Янв 2020
49
1
Есть, но зачем? Лампа сразу же потеряет связь с приложением - это во первых.
Во вторых, нужно, чтобы Gunner47 в прошивке сделал обработку моего запроса на сброс настроек.
ну к примеру возможность сброса настроек при отсутствии кнопки физически.
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Кто может проверить код для того, чтобы очаг пламени в режиме огня не стоял всё время на одном месте?
Я лампу уже упаковал на подарок, но идея не даёт покоя...

Скетч компилируется. Интересно, как оно работает, нет.
C-like:
// ------------- огонь -----------------
#define SPARKLES              (1U)                          // вылетающие угольки вкл выкл
uint8_t line[WIDTH];
uint8_t pcnt = 0U;
uint8_t shiftMask = random(8);                           // [динамический очаг] создаём координату сдвига очага

//these values are substracetd from the generated values to give a shape to the animation
static const uint8_t valueMask[8][16] PROGMEM =
{
  {32 , 0  , 0  , 0  , 0  , 0  , 0  , 32 , 32 , 0  , 0  , 0  , 0  , 0  , 0  , 32 },
  {64 , 0  , 0  , 0  , 0  , 0  , 0  , 64 , 64 , 0  , 0  , 0  , 0  , 0  , 0  , 64 },
  {96 , 32 , 0  , 0  , 0  , 0  , 32 , 96 , 96 , 32 , 0  , 0  , 0  , 0  , 32 , 96 },
  {128, 64 , 32 , 0  , 0  , 32 , 64 , 128, 128, 64 , 32 , 0  , 0  , 32 , 64 , 128},
  {160, 96 , 64 , 32 , 32 , 64 , 96 , 160, 160, 96 , 64 , 32 , 32 , 64 , 96 , 160},
  {192, 128, 96 , 64 , 64 , 96 , 128, 192, 192, 128, 96 , 64 , 64 , 96 , 128, 192},
  {255, 160, 128, 96 , 96 , 128, 160, 255, 255, 160, 128, 96 , 96 , 128, 160, 255},
  {255, 192, 160, 128, 128, 160, 192, 255, 255, 192, 160, 128, 128, 160, 192, 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, 25, 22, 11, 1 , 1 , 11, 19, 25, 25, 22, 11, 1 },
  {1 , 8 , 13, 19, 25, 19, 8 , 1 , 1 , 8 , 13, 19, 25, 19, 8 , 1 },
  {1 , 8 , 13, 16, 19, 16, 8 , 1 , 1 , 8 , 13, 16, 19, 16, 8 , 1 },
  {1 , 5 , 11, 13, 13, 13, 5 , 1 , 1 , 5 , 11, 13, 13, 13, 5 , 1 },
  {1 , 5 , 11, 11, 11, 11, 5 , 1 , 1 , 5 , 11, 11, 11, 11, 5 , 1 },
  {0 , 1 , 5 , 8 , 8 , 5 , 1 , 0 , 0 , 1 , 5 , 8 , 8 , 5 , 1 , 0 },
  {0 , 0 , 1 , 5 , 5 , 1 , 0 , 0 , 0 , 0 , 1 , 5 , 5 , 1 , 0 , 0 },
  {0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 }
};

void fireRoutine(bool isColored)                            // true - цветной огонь, false - белый
{
  if (loadingFlag)
  {
    loadingFlag = false;
    FastLED.clear();
    generateLine();
    memset(matrixValue, 0, sizeof(matrixValue));
  }
  if (pcnt >= 100)
  {
    shiftUp();
    generateLine();
    pcnt = 0;
  }
  drawFrame(pcnt, isColored);
  pcnt += 30;
}

// Randomly generate the next line (matrix row)
void generateLine()
{
  for (uint8_t x = 0U; x < WIDTH; x++)
  {
    line[x] = random(64, 255);
  }
}

void shiftUp()
{
  for (uint8_t y = HEIGHT - 1U; y > 0U; y--)
  {
    for (uint8_t x = 0U; x < WIDTH; x++)
    {
      uint8_t newX = x;
      if (x > 15U) newX = x % 16U;
      if (y > 7U) continue;
      matrixValue[y][newX] = matrixValue[y - 1U][newX];
    }
  }

  for (uint8_t x = 0U; x < WIDTH; x++)
  {
    uint8_t newX = x;
    if (x > 15U) newX = x % 16U;
    matrixValue[0U][newX] = line[newX];
  }
}

// draw a frame, interpolating between 2 "key frames"
// @param pcnt percentage of interpolation

void drawFrame(uint8_t pcnt, bool isColored)
{
  switch (random(3))                                                // [динамический очаг] двигаем очаг каждый кадр
  {
    case 0U:                                                           // [динамический очаг] влево
    {
      if (shiftMask == 0) shiftMask = 15;
        else shiftMask -= 1;
      break;
    }
    case 2U:                                                           // [динамический очаг] вправо
    {
      if (shiftMask == 15) shiftMask = 0;
        else shiftMask += 1;
      break;
    }
  }
  int32_t nextv;

  //each row interpolates with the one before it
  for (uint8_t y = HEIGHT - 1U; y > 0U; y--)
  {
    for (uint8_t x = 0U; x < WIDTH; x++)
    {
      uint8_t newX = x + shiftMask;                                    // [динамический очаг] учитываем сдвиг очага
      if (newX > 15U) newX = newX % 16U;                               // [динамический очаг] строка изменена, но смысл тот же
      if (y < 8U)
      {
        nextv =
          (((100.0 - pcnt) * matrixValue[y][newX]
            + pcnt * matrixValue[y - 1][newX]) / 100.0)
          - pgm_read_byte(&valueMask[y][newX]);

        CRGB color = CHSV(
          isColored ? modes[EFF_FIRE].Scale * 2.5 + pgm_read_byte(&hueMask[y][newX]) : 0U,     // H
          isColored ? 255U : 0U,                                                               // S
          (uint8_t)max(0, nextv)                                                               // V
        );

        leds[getPixelNumber(x, y)] = color;
      }
      else if (y == 8U && SPARKLES)
      {
        if (random(0, 20) == 0 && getPixColorXY(x, y - 1U) != 0U) drawPixelXY(x, y, getPixColorXY(x, y - 1U));
        else drawPixelXY(x, y, 0U);
      }
      else if (SPARKLES)
      {
        // старая версия для яркости
        if (getPixColorXY(x, y - 1U) > 0U)
          drawPixelXY(x, y, getPixColorXY(x, y - 1U));
        else drawPixelXY(x, y, 0U);
      }
    }
  }

  //first row interpolates with the "next" line
  for (uint8_t x = 0U; x < WIDTH; x++)
  {
    uint8_t newX = x + shiftMask;                                    // [динамический очаг] учитываем сдвиг очага
    if (newX > 15U) newX = newX % 16U;                               // [динамический очаг] строка изменена, но смысл тот же
    CRGB color = CHSV(
      isColored ? modes[EFF_FIRE].Scale * 2.5 + pgm_read_byte(&(hueMask[0][newX])): 0U,        // H
      isColored ? 255U : 0U,                                                                   // S
      (uint8_t)(((100.0 - pcnt) * matrixValue[0][newX] + pcnt * line[newX]) / 100.0)           // V
    );
    //leds[getPixelNumber(newX, 0)] = color;                                         // на форуме пишут что это ошибка - вместо newX должно быть x, иначе
    leds[getPixelNumber(x, 0)] = color;                                              // на матрицах шире 16 столбцов нижний правый угол неработает
  }
}

Добавленные строчки помечены комментарием [динамический очаг].
Всего ничего порядка 10 строчек...

Внешний вид особо не изменится, просто очаг не будет стоять на месте (в теории).

Во вложении файл со всеми эффектами от прошивки gunner47 целиком
(в нём только огонь изменён и у эффекта матрица цвет сделан как в фильме).
Файл обновлён!
 

Вложения

Изменено:

Vados2020

★✩✩✩✩✩✩
30 Янв 2020
70
21
@Сотнег, Для NodeMCU прошивка от gunner47 с доработками от kDn не компилируется.

Просто не хочет.Да не как , просто пишет , что ошибка для платы NodeMcu, а с родным огнем компилируется.


ошибку не указывает

скрины
 

Вложения