ESP, IoT WiFi лампа-будильник. Обсуждение прошивки от GUNNER47
ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!
Очень просим не делать репост «ЦИТИРОВАНИЕ» сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы .
Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать » ОТВЕТ»
При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой «Сообщение в шапку»
ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ
Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).
Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч — значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте ( ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
Комментарии
mechanic
ВЕРСИЯ И ОБНОВЛЕНИЯ ОТ @gunner47
Убрано в спойлер .
Пока результаты такие:
- Исправлена ошибка, связанная с WiFi (сценарий: нормальная работа в режиме подключения к роутеру, потом выключение роутера и последующий перезапуск лампы по watchdog’у или кнопкой reset, но не питанием, — и циклическая вечная перезагрузка с интервалом в 8 секунд). Вообще, исправлен механизм подключения к WiFi сети: поскольку функция отключения watchdog’а не работает (именно из-за этого наблюдаются перезагрузки через 8 секунд), библиотеке WiFiManager выставлен таймаут подключения к WiFi сети в 7 секунд. Этого более, чем достаточно. По-другому обойти не смог. Также добавлен таймаут ожидания ввода SSID и пароля новой WiFi сети в конфигурационном режиме — 3 минуты.
- При переносе в другую WiFi сеть теперь не нужна перепрошивка, при неудачном подключении лампа развернёт WiFi точку доступа и запросит SSID и пароль от новой сети. Потом снова перезагрузится в режим подключения к роутеру для нормальной работы.
- Добавлена опция выключения обращений в интернет, для этого нужно удалить или закомментировать строку «#define USE_NTP»
- Добавлена опция использования лампы без кнопки, для этого нужно удалить или закомментировать строку «#define ESP_USE_BUTTON». Если просто не подключать кнопку, у меня возникала ошибка фальшивого длительного касания и как следствие повышения яркости до максимаьной на любом эффекте.
- IP адрес лампы можно просто не вводить (в строке «uint8_t STA_STATIC_IP[] =<>«), тогда роутер сам назначит ей адрес из своего настроенного диапазона адресов. Полученный IP адрес можно будет посмотреть на роутере, приложением-сканером сети типа WiFiman с телефона или компьютера или в выводе Serial порта лампы. Я, например, задал адрес на роутере (привязка по mac адресу в DHCP), а в прошивке оставил пустым.
- Включен вывод подробной отладки в Serial порт. Виден обмен данными с android приложением, если вдруг кто-то хочет его менять или дополнять. Отключить можно, удалив или закомментировав строку «#define GENERAL_DEBUG».
- Отдельно добавлен подробный вывод отладочной информации библиотеки WiFiman, как самой капризной. Виден процесс подключения к WiFi сети или разворачивания WiFi точки доступа. Отключается установкой false вместо true в строке «#define WIFIMAN_DEBUG (true)».
- Также немного потестировал и вложил эксель табличку с результатами тестирования.
- Переформатировал под себя код и добавил ещё больше комментариев (мне так удобнее, может, ещё кому-то пригодится).
В планах (если хватит времени и вдохновения):
- Исправление регулировки скорости некоторых эффектов.
- Обновление прошивки по воздуху, чтоб не расковыривать лампу при выходе новой прошивки.
- Портирование прошивки под esp32 (это уже в совсем нескором будущем). Ибо во1, esp32 в отличие от esp8266 двухъядерный (одно ядро выполняет все «служебные» операции, например, поддерживает WiFi подключение, второе выполняет пользовательский код, это очень повышает стабильность и практически сводит к нулю эти перезагрузки по watchdog’у); во2, быстрее. А стоит всего на пару баксов больше.
Буквы U в константах указаны там, где значения должны быть неотрицательные (unsigned). Так проще искать ошибки.
P.S. Тестировал на Wemos D1 mini. Его же выбирал как плату при прошивке.
P.P.S. Не претендую на полноту тестирования или безошибочность своих исправлений, делал, потому что мне так лучше. Если будете брать, пробуйте всё «на свой страх и риск».
UPD 27.07.2019: Прошивка перенесена на гитхаб, качайте полный архив оттуда. Требует замены оригинальной библиотеки GyverButton на доработанную мной версию, иначе не скомпилируется. Поправлено ещё несколько ошибок (1, 2), добавлено обновление по воздуху и сброс сохранённых настроек WiFi при старте модуля с зажатой кнопкой.
UPD 01.08.2019: Большое обновление. Добавлено переписанное с нуля android-приложение (пока без будильника). Добавлено 2 эффекта. Поиск и добавление лампы в сети, без ручного ввода IP адреса. Возврат к стандартной библиотеке GyverButton.
UPD 10.08.2019: Обновлена прошивка и android приложение. Добавлена точная регулировка эффектов и управление будильниками. Качать с гитхаба.
UPD 14.04.2019: Добавлена функция таймера отключения. Таймер полностью реализован в лампе (не в android приложении, откуда он только устанавливается).
UPD 26.08.2019 Добавлена функция автоматической смены избранных эффектов. Требуется перепрошивка модуля и обновление android приложения. Подробности.
UPD 31.08.2019: Добавлены 5 новых эффекта: «Радуга диагональная», «Метель», «Звездопад», «Светлячки со шлейфами» (новый) и «Блуждающий кубик». Прежний эффект «Светлячки со шлейфами» переименован в «Пейнтбол».
UPD 17.09.2019: Лампа сохраняет своё состояние (вкл/выкл) в энергонезависимую память. Эффект белого света теперь управляется не только яркостью, но и масштабом. Подробности.
UPD 24.09.2019 Добавлен вывод бегущей строки с ip адресом лампы, регулировка оттенка белого света, сохранение (вкл/выкл) режима «избранного».
UPD 05.10.2019 MQTT, telnet и исправление ошибок.
UPD 12.10.2019 Чуть более плавный будильник, возможность менять режим работы WiFi точка доступа/WiFi клиент без перепрошивки и ещё чуть-чуть )
UPD 19.10.2019 Добавлен вывод времени бегущей строкой (по запросу и расписанию) с регулировкой яркости днём и ночью. Добавлена регулировка скорости и масштаба эффектов лампы кнопкой (клик + удержание, 2 клика + удержание).
UPD 21.10.2019 Кнопку на лампе теперь можно блокировать от детей и попугаев.
UPD 24.10.2019 На отдельные пины модуля esp выводятся настраиваемые сигналы (высокий или низкий) при вкл/выкл матрицы и при срабатывании будильника.
mechanic
Убрано в спойлер .
Три вещи, которые нужно делать в любой непонятной ситуации:
- Посмотреть комментарии в коде, основная часть которых находится в файле Constants.h. Это даст понимание очень многих настроек и снимет много сязанных с этим вопросов.
- Открыть монитор порта и посмотреть отладочные сообщения, там понятным языком написано, что делает и как настроена лампа. Особенно ценны первые сообщения сразу после старта лампы.
- В случае совсем необъяснимого и нежелательного поведения лампы нужно перепрошить её с полной очисткой flash памяти — в меню Arduino IDE «Инструменты» — «Erase Flash» нужно выбрать «All Flash Contents». Это сотрёт ВСЕ настройки лампы, но и также проинициализирует необходимые настройки значениями по умолчанию при первом запуске.
И только после этого можно задавать вопрос на форуме. Иначе есть все шансы зафлудить форум так, что знающие энтузиасты не будут успевать ответить на все публикуемые вопросы.
FAQ
В: Почему не работает android приложение?
О: К прошивке от gunner47 подходят android приложения от gunner47 и koteyka. Убедитесь в том, что установлено правильное приложение и правильная его версия. Для android приложения от gunner47 это означает, что приложение должно быть из того же архива, что и прошивка.
В: Почему после первого запуска не появляется точка доступа лампы с запросом WiFi настроек для подключения к домашней WiFi сети в рабочем режиме ESP_MODE 1?
О: Точка доступа для запроса WiFi настроек должна появиться при первом запуске после прошивки. Она ожидает подключения и ввода настроек 5 минут. После этого лампа переключается в рабочий режим ESP_MODE 0, сохраняет его и перезагружается, точка доступа для ввода WiFi настроек уже появляться не будет. При последующих рестартах лампа также будет работать в рабочем режиме ESP_MODE 0. Для переключения в рабочий режим ESP_MODE 1 нужно семикратно коснуться кнопки — лампа переключит и сохранит новый рабочий режим, перезагрузится и запросит WiFi настройки.
Если всё было сделано правильно, а страница с запросом WiFi настроек http://192.168.4.1 не может быть загружена, нужно проверить, к какой WiFi точке доступа в данный момент подключено мобильное устройство или ноутбук, с которого производится настройка, лучше выключить/включить WiFi и повторно подключиться. В случае мобильного устройства, нужно отключить мобильный интернет и проверить, чтобы не было активно VPN соединение (и в настройках android, и в настройках браузера — см. «турбо режим», «экономия трафика», «сжатие трафика», «оптимизация загрузки изображений, аудио и видео». всё это в настройках браузера нужно отключить или использовать браузер без таких опций).
В: Как стереть WiFi настройки? Как перенести лампу в новую WiFi сеть?
О: Если после старта в рабочем режиме ESP_MODE 1 лампа не находит заданную WiFi сеть (толстые стены, модуль esp в металлической экранирующей трубе, уровень WiFi сигнала меньше 8%, выключен или не успел загрузиться после сбоя питания роутер и т.д.), то разворачивается WiFi точка доступа для ввода новых параметров WiFi сети. В это время матрица не светится, лампа не реагирует на одиночные клики по кнопке. Ожидание ввода WiFi параметров длится 5 минут. Это означает, что для переноса в новую WiFi сеть принудительно ничего стирать не нужно, нужно заново ввести WiFi параметры на новом месте после первого запуска лампы.
Но способ принудительно очистить WiFi параметры есть. Для этого в файле Constants.h нужно найти строку «#define ESP_RESET_ON_START (false)» и установить true вместо false. Затем нужно в течение 1 секунды после подачи питания коснуться кнопки — лампа сотрёт сохранённые WiFi параметры.
В: Почему не работает будильник, в android приложении нельзя им управлять?
О: Будильник и некоторые другие функции, например, вывод времени бегущей строкой недоступны, если лампе не удалось синхронизировать время с сервером времени в интернете, указанном в прошивке в параметре NTP_ADDRESS. Это может произойти, если лампа работает в режиме ESP_MODE 0, если нет доступа в интернет или сеть сконфигурирована так, что препятствует обмену ntp пакетами. Доступность сервера времени можно проверить, напрмер, утилитой NTPTool, введя в неё адрес сервера времени. Если ответ от сервера пришёл, он отобразится в окне утилиты. В сети должен быть открыт порт 123. Лампа запрашивает время сразу после старта и далее раз в полчаса. Если первая попытка была неудачной, лампа будет запрашивать время раз в 5 минут до первой удачной попытки.
В: Какой выбрать сервер времени?
О: Территориально ближайший. В принципе, это не критично, подойдёт любой рабочий, т.к. лампе не требуется точность времени на уровне микросекунд.
В: Что делать, если сервера времени недоступны/сеть блокирует доступ к ним?
О: Закомментировать в прошивке строку «#define USE_NTP». В таком случае лампа не будет отсылать запросы и ждать ответа. Функции, связанные со временем, работать не будут.
В: Почему невозможно прошить лампу по воздуху?
О: Причин может быть несколько: от файерволов и настроек сети (при настройке сети в windows как публичной операционная система может препятствовать обмену данными — обновление по воздуху не работает) и до ограничений esp8266. В ней доступны всего 4 сетевых сокета, т.е., одновременно открытых сетевых подключения. Лампа использует одно подключение для управления аднроид приложением, синхронизирует время, у неё есть возможность вывода логов в telnet, может быть включен mqtt, плюс перепрошивка по сети — может не хватить доступных сетевых подключений. Если проблема в esp, то лечится так: нужно ввести пароль от лампы при запросе в Arduino IDE, но не нажимать Enter, а оставить окно висеть. Тем временем нужно перезагузить лампу, не подключаясь приложением, сразу запросить прошивку OTA (двумя четырёхкратными тапами по кнопке) и после включения эффекта «Матрица» нажать Enter в Arduino IDE в окне запроса пароля.
Также нужно убедиться, что компьютер с Arduino IDE находится в той же сети, что и лампа. И это не должна быть точка доступа лампы.
В: Почему android приложение недоступно в google play market’е?
О: Пока жалко денег на девелоперскую учётку, но вполне возможно, в скором будущем приложение там появится.
В: Как посмотреть отладочные сообщения?
О: В Constants.h найти и раскомментировать строку «#define GENERAL_DEBUG», если она закомментиррована. Прошить esp8266. Открыть монитор порта в arduino IDE, установить скорость порта 115200. В монитор будут выводиться все предусмотренные в прошивке отладочные сообщения. Этот метод работает только, если esp8266 подключен к компьютеру с Arduino IDE usb кабелем.
Есть способ получить отладочную информацию по сети (по воздуху). Для этого нужно в файле Constants.h найти строку «#define GENERAL_DEBUG_TELNET (false)» и установить true вместо false. После чего основная часть отладочных сообщений будет выводиться в telnet ВМЕСТО монитора порта (serial). Чтобы подключиться к лампе по сети нужно установить и запустить любую программу, способную получать данные по telnet, например, putty. В ней указать ip адрес лампы и порт 23. Важно! Данный способ работает только в рабочем режиме ESP_MODE 1, и можно увидеть сообщения только после получения лампой ip адреса в сети, т.е., начальные сообщения, выводимые сразу после старта лампы, увидеть нельзя.
Источник
Комментарии
recoshet
СООБЩЕНИЕ ИЗЪЯТО У ПОЛЬЗОВАТЕЛЯ, РЕДАКТИРУЕТСЯ АДМИНИСТРАЦИЕЙ .
В течении пары дней (но эт не точно), здесь появятся ссылки на все обновления, приложения, ошибки, версии исполнения и т.д)
ATTENTION : все у кого прошивка от gunner47 прошу переползать в тему
https://community.alexgyver.ru/threads/wifi-lampa-budilnik-obsuzhdenie-proshivki-ot-gunner47.2418/
Данная тема будет очищена от мусора, все дельное перенесено в тему выше ПО КАЖДОМУ АВТОРУ (у каждого автора прошивки будет своя тема)
ВНИМАНИЕ .
те кто живой и хочет увидеть ссылку на свое исполнение, прошу централизовать все свои доработки и сообщения. Далее в теме пишем сообщение с ссылкой на ваше сообщение (с проектом), с пометкой @mechanic .
- Более стабильная работа (исправлены ошибки, приводящие к циклической перезагрузке, особенно в режиме точки доступа, к частым подтормаживаниям без доступа к интернету, к самопроизвольному изменению яркости в сборках без кнопки; исправлено выключение будильника, если он сработал при изначально выключенной лампе).
- Разработано новое android приложение с разделами Управление, Избранные эффекты, Будильник, Таймер. Умеет сканировать сеть и искать лампы, не нужно париться с поиском ip адресов. Умеет запоминать несколько ламп и переключаться между ними. Позволяет более точно выставить все параметры. Прячет или делает недоступным всё, чем нельзя управлять из-за настроек лампы или её недоступности. Раздел Избранные эффекты циклически переключает понравившиеся режимы по статическому/случайному таймеру.
- Добавлено два новых эффекта: Светлячки со шлейфами и Белый свет.
- Обновление прошивки по воздуху. Актуально для тех, кто уже собрал лампу, но всё ещё экспериментирует с прошивкой.
- Включение (подача питания или перезагрузка модуля) при зажатой кнопке приводит к стиранию запомненных настроек WiFi сети.
- При переносе лампы в новую WiFi сеть (при недоступности ранее запомненной) лампа разворачивает WiFi точку доступа для ввода имени и пароля новой WiFi сети. Не нужна перепрошивка, если не захардкожен статический IP.
- В гитхаб репозитории выложены файлы прошивки, android приложение и файл thunkable проекта для желающих всё настроить/переделать под себя.
ESP, IoT — WiFi лампа-будильник. Прошивка FireLamp_JeeUI (GPL)
Рома Киев
Romas654
Romas654
Андрей К.
Egen_M
Leo174
Alexey_1811
У меня вылезла следующая проблема. Использую эффект Цвет с минимальной яркостью. Так вот через некоторое время (в районе 30-40мин) лампа тухнет на минуту и потом загорается на макс. яркости.
Upd. Модуль при этом перегружается:
wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v8b899c12
Dolly737
Всем привет. И у меня скрипт сильно тормозит! И на адресной ленте, и на матрице. Версия ядра 2.5.2. Пробовала режимы и 0 и 1, версии прошивки 1.1 и 1.2, на двух разных платах WeMos D1 от разных производителей. Результат одинаков: эффекты работают, как на замедленной прокрутке. Переключение режимов работает нестабильно. Ползунок «Скорость» на скорость никак не влияет, хотя внизу в строке «Ответ» отклик приходит (SPDxxx), но скорость фактически не изменяется.
Видео с результатами выложила сюда: https://yadi.sk/d/UO2MpiFV43ZD9Q
Есть замечание к схеме устройства: Сенсорна кнопка должна питаться от 3.3 вольта (на плате маркируется как 3V3), а не от 5V, как на схеме. Входы микропроцессора ESP-8266 рассчитаны только на 3.3 вольта. Обычно они не горят от 5 вольт, но могут.
Egen_M
Есть замечание к схеме устройства: Сенсорна кнопка должна питаться от 3.3 вольта (на плате маркируется как 3V3), а не от 5V, как на схеме. Входы микропроцессора ESP-8266 рассчитаны только на 3.3 вольта. Обычно они не горят от 5 вольт, но могут.
Источник