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

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, По поводу водопада. Смотри, у тебя в реализации колесо смещает оттенок, в своей, я делал, чтобы оно регулировало длину свисающих хвостов (давай так назовем), так как вижу для этого эффекта только 2 реализации - это водопад и огнепад. Не лесопад, не зебропад не небопад...
Куда не шло еще организовать радугопад. :LOL:
Проблема водопада заключалась в том, что для нее выбрал неправильную палитру. по идее огненную палитру можно просто сместить в синий по твоему рецепту при значении колеса более 50. При этом останется возможность масштабирования хвостов.
 
  • Лойс +1
Реакции: malec

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Palpalych, Если это нечтопад, то пускай оно всегда падает до конца.
А регулировка цвета - она и у Огня есть, хотя казалось бы...

Раз у тебя регуляторы уже прикручены,
помоги выбрать оптимальную длину свисающих хвостов
(языков пламени вверх ногами).

Я опять без лампы.
 
Изменено:

George

★★✩✩✩✩✩
25 Дек 2019
372
58
@George, короче, наверное что-то с платой не так. Помогла только замена настроек ESP на 0. В локальном режиме лента отказалась светиться намертво. Хотя какая здесь связь не понимаю.
Косвенно, проблем с платой подтверждает невозможность установки прошивки gunner47 (выдает: библиотека Timezone должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp8266. Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
Это стандартное сообщение. Оно есть у всех. Видимо там коды, которые отправляются на телефон и с ним работают, а телефоны, как раз на avr-архитектуре.
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
Подскажите, где в коде отключить запуск esp с нажатым ресетом и сенсорной кнопкой?
" - Убрана очистка параметров WiFi при старте с зажатой кнопкой; регулируется директивой ESP_RESET_ON_START, которая определена как false по умолчанию...

- Добавлена задержка в 1 секунду сразу после старта, в течение которой нужно нажать кнопку, чтобы очистить сохранённые параметры WiFi (если ESP_RESET_ON_START == true)

- Если при первом старте в режиме WiFi клиента запрашиваемые имя и пароль WiFi сети не введены за отведённый таймаут (5 минут), лампа перезагрузится в режиме точки доступа."
 

malec

★★★★✩✩✩
5 Фев 2019
680
257
@Сотнег, по поводу Роутера, это делают некоторые провайдеры в своих (арендуемых) роутерах, но если знаешь пароли можно перенастроить...
 

MasterShu

★✩✩✩✩✩✩
14 Фев 2020
11
25
Извиняюсь, если такое уже обсуждалось, но 197 страниц читать не осилил, а поиск результатов не дал. Делаю всё по мануалу, прошивка последняя актуальная - 15.5. Всё прошивается, всё работает, кроме управления по Wi-Fi. Флеш стирал полностью перед прошивкой, к сети лампа подключилась нормально, адрес получила, пингуется, но судя по дампу с роутера, трафика никакого ни на лампу, ни с неё не идёт. В настройках приложения адрес естественно, прописывал.

Судя по скану, 8888-й порт udp открыт.

Код:
corpse@lenovo [09:37:43]:~$ sudo nmap -sU -p 8888 10.11.11.209
[sudo] пароль для corpse:         

Starting Nmap 7.60 ( https://nmap.org ) at 2020-02-17 09:37 +05
Nmap scan report for gyverlamp.lan (10.11.11.209)
Host is up (0.023s latency).

PORT     STATE         SERVICE
8888/udp open|filtered ddi-udp-1
MAC Address: 5C:CF:7F:8B:E3:95 (Espressif)

Nmap done: 1 IP address (1 host up) scanned in 0.71 seconds
Приложение на трёх разных андроид девайсах пишет, что лампа отключена. Сменил NodeMCU на WemosD1 - полностью аналогично. Эксперимента ради прошил вместо стоковой прошивки прошивку от gunner47 - те же результаты.
Проблема появилась похоже, после того, как заменил сенсорную кнопку на тактовую с GPIO2 на землю через резистор 10к. Может это быть причиной (понимаю, что звучит странно, но вдруг)? На NodeMCU параллельно входу питания стоит конденсатор 470мкф 6.3 вольта, на NodeMCU - 1000мкф 6.3 вольта.

Когда была сенсорная кнопка, лампа в среднем работала день, после чего отваливалась от вайфая до следующей перезагрузки по питанию. Точка доступа стоит в прямой видимости, уровень сигнала просто прекрасный, около -45dBm (на NodeMCU запаял ESP-07 и подключил внешнюю антенну). Подскажите, что я делаю не так?
 

malec

★★★★✩✩✩
5 Фев 2019
680
257
как заменил сенсорную кнопку на тактовую с GPIO2 на землю через резистор 10к. Может это быть причиной
От этого только поведение диода на плате измениться...
Но лично я вообще отказался от GPIO2, там диод внутренний подтянут...
А про вафлю, если используешь точку доступа, отключи мобильный интернет...
 

Beavis

✩✩✩✩✩✩✩
16 Фев 2020
1
0
@Jery, День добрый. Вопрос по вашему корпусу. Если плафон устанавливается внутрь, значит в самом плафоне потребуется сделать отверстие для установки разъема питания?
 

Jery

✩✩✩✩✩✩✩
11 Фев 2020
6
8
@Fortunate, Спасибо. Вы совершенно правы. Плафон упирается в ступеньку. Разъем ниже. И плата тоже ниже.
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
@MasterShu, В роутере задайте принудительно для макадреса IP для лампы. В прошивке Гайвера его вбейте.
(MAC Address: 5C:CF:7F:8B:E3:95)
Потом пингуйте.
Мобильный интернет случайно не включен?
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, Молодец! Прикольно.
Теперь нужно сделать еще градацию по скорости - часть быстрее, часть медленнее. Те которые медленные - они покороче и потусклее. Так мы создадим эффект объема.
Потом еще можно реализовать. Голова кометы должна часто мерцать.
Потом, статичные выборочные точки на хвосте должны иногда (редко) менять свой цвет в черный и обратно - будет (y)
 
  • Лойс +1
Реакции: Fortunate

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Palpalych, я пытался это сегодня сделать, но не справился.
Пытался хранить параметр скорости в красном оттенке. Он как раз нулевой (в теории).

Оказалось, что getPixColorXY с матрицы возвращает другой цвет,
не тот, который был записан через DrawPixelXY...

А писать эффект с нуля не хочется.
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@StasG, Предлагаю для начала перенести проект куда-нибудь в корень диска и не использовать кириллицу в названиях папок.
 

George

★★✩✩✩✩✩
25 Дек 2019
372
58
Разве тут не обсуждают проблемы
Ваши проблемы давно разжёваны и ссылка в шапке!
Кроме того ваш модуль не входит в режим программирования. Проверять питание, контакты, нажимать правильно ресет+флэш...
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Максимально нестыдная Матрица
Теперь огоньки загораются не только наверху лампы
и иногда по пути вниз тоже гаснут, не долетая до низа.
Screenshot_2020-02-18-13-46-43-641_com.google.android.youtube.pngIMG_20200218_211100.jpg

Под конец видео камера перестала ловить пересветы картинки - там видно нормально.

Видео записано на настройках скорости 80 и масштаба 73.
C-like:
// ------------- матрица ---------------
void matrixRoutine()
{
  for (uint8_t x = 0U; x < WIDTH; x++)
  {
    // обрабатываем нашу матрицу снизу вверх до второй сверху строчки
    for (uint8_t y = 0U; y < HEIGHT - 1U; y++)
    {
      uint32_t thisColor = getPixColorXY(x, y);                                              // берём цвет нашего пикселя
      uint32_t upperColor = getPixColorXY(x, y + 1U);                                        // берём цвет пикселя над нашим
      if (upperColor >= 0x900000 && random(7 * HEIGHT) != 0U)                  // если выше нас максимальная яркость, игнорим этот факт с некой вероятностью или опускаем цепочку ниже
        drawPixelXY(x, y, upperColor);
      else if (thisColor == 0U && random((100 - modes[currentMode].Scale) * HEIGHT) == 0U)  // если наш пиксель ещё не горит, иногда зажигаем новые цепочки
      //else if (thisColor == 0U && random((100 - modes[currentMode].Scale) * HEIGHT*3) == 0U)  // для длинных хвостов
        drawPixelXY(x, y, 0x9bf800);
      else if (thisColor <= 0x050800)                                                        // если наш пиксель почти погас, стараемся сделать затухание медленней
      {
        if (thisColor >= 0x030000)
          drawPixelXY(x, y, 0x020300);
        else if (thisColor != 0U)
          drawPixelXY(x, y, 0U);
      }
      else if (thisColor >= 0x900000)                                                        // если наш пиксель максимальной яркости, резко снижаем яркость
        drawPixelXY(x, y, 0x558800);
      else 
        drawPixelXY(x, y, thisColor - 0x0a1000);                                             // в остальных случаях снижаем яркость на 1 уровень
        //drawPixelXY(x, y, thisColor - 0x050800);                                             // для длинных хвостов
    }
    // аналогично обрабатываем верхний ряд пикселей матрицы
    uint32_t thisColor = getPixColorXY(x, HEIGHT - 1U);
    if (thisColor == 0U)                                                                     // если наш верхний пиксель не горит, заполняем его с вероятностью .Scale
    {
      if (random(100 - modes[currentMode].Scale) == 0U)
        drawPixelXY(x, HEIGHT - 1U, 0x9bf800);
    }  
    else if (thisColor <= 0x050800)                                                          // если наш верхний пиксель почти погас, стараемся сделать затухание медленней
    {
      if (thisColor >= 0x030000)
        drawPixelXY(x, HEIGHT - 1U, 0x020300);
      else
        drawPixelXY(x, HEIGHT - 1U, 0U);
    }
    else if (thisColor >= 0x900000)                                                          // если наш верхний пиксель максимальной яркости, резко снижаем яркость
      drawPixelXY(x, HEIGHT - 1U, 0x558800);
    else 
      drawPixelXY(x, HEIGHT - 1U, thisColor - 0x0a1000);                                     // в остальных случаях снижаем яркость на 1 уровень
      //drawPixelXY(x, HEIGHT - 1U, thisColor - 0x050800);                                     // для длинных хвостов
  }
}
 
Изменено: