From a54a7c3d260e574ea029badf3cfd7b9923e421e8 Mon Sep 17 00:00:00 2001 From: Paul Vakhrushev <348009+vahron@users.noreply.github.com> Date: Sun, 28 Feb 2021 21:47:00 +0000 Subject: [PATCH 1/3] [platformio] Align configs with Arduino IDE --- firmware/GyverLamp2/GyverLamp2.ino | 4 ++-- firmware/GyverLamp2/data.h | 2 +- firmware/PlatformIO/.gitignore | 1 + firmware/PlatformIO/.vscode/settings.json | 10 ++++++++++ firmware/PlatformIO/README | 7 ------- firmware/PlatformIO/README.md | 23 +++++++++++++++++++++++ firmware/PlatformIO/platformio.ini | 20 ++++++++++++++++++-- 7 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 firmware/PlatformIO/.vscode/settings.json delete mode 100644 firmware/PlatformIO/README create mode 100644 firmware/PlatformIO/README.md diff --git a/firmware/GyverLamp2/GyverLamp2.ino b/firmware/GyverLamp2/GyverLamp2.ino index e520cfc..3dd1704 100644 --- a/firmware/GyverLamp2/GyverLamp2.ino +++ b/firmware/GyverLamp2/GyverLamp2.ino @@ -88,7 +88,7 @@ const char WiFiPassword[] = "12345678"; // ------------ Прочее ------------- #define GL_VERSION 017 // код версии прошивки #define EE_TOUT 30000 // таймаут сохранения епром после изменения, мс -//#define DEBUG_SERIAL // закомментируй чтобы выключить отладку (скорость 115200) +//#define DEBUG_SERIAL_LAMP // закомментируй чтобы выключить отладку (скорость 115200) #define EE_KEY 55 // ключ сброса WiFi (измени для сброса всех настроек) #define NTP_UPD_PRD 5 // период обновления времени с NTP сервера, минут //#define SKIP_WIFI // пропустить подключение к вафле (для отладки) @@ -152,7 +152,7 @@ void blink8(CRGB color); void setup() { delay(2000); // ждём старта есп memset(matrixValue, 0, sizeof(matrixValue)); -#ifdef DEBUG_SERIAL +#ifdef DEBUG_SERIAL_LAMP Serial.begin(115200); DEBUGLN(); #endif diff --git a/firmware/GyverLamp2/data.h b/firmware/GyverLamp2/data.h index f8b3beb..5dbaff0 100644 --- a/firmware/GyverLamp2/data.h +++ b/firmware/GyverLamp2/data.h @@ -19,7 +19,7 @@ #define MAX_PRESETS 40 // макс количество режимов // ------------------- МАКРО -------------------- -#ifdef DEBUG_SERIAL +#ifdef DEBUG_SERIAL_LAMP #define DEBUGLN(x) Serial.println(x) #define DEBUG(x) Serial.print(x) #else diff --git a/firmware/PlatformIO/.gitignore b/firmware/PlatformIO/.gitignore index 89cc49c..cb94ba1 100644 --- a/firmware/PlatformIO/.gitignore +++ b/firmware/PlatformIO/.gitignore @@ -1,3 +1,4 @@ +.DS_Store .pio .vscode/.browse.c_cpp.db* .vscode/c_cpp_properties.json diff --git a/firmware/PlatformIO/.vscode/settings.json b/firmware/PlatformIO/.vscode/settings.json new file mode 100644 index 0000000..0fb2a0f --- /dev/null +++ b/firmware/PlatformIO/.vscode/settings.json @@ -0,0 +1,10 @@ +{ + "files.associations": { + "*.tcc": "cpp", + "deque": "cpp", + "list": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp" + } +} \ No newline at end of file diff --git a/firmware/PlatformIO/README b/firmware/PlatformIO/README deleted file mode 100644 index 87c055f..0000000 --- a/firmware/PlatformIO/README +++ /dev/null @@ -1,7 +0,0 @@ -PIO project - -pio update -pio run --target erase -pio run --target upload - - diff --git a/firmware/PlatformIO/README.md b/firmware/PlatformIO/README.md new file mode 100644 index 0000000..2b91696 --- /dev/null +++ b/firmware/PlatformIO/README.md @@ -0,0 +1,23 @@ +# PIO project + +### Prerequisites: +``` +pio update +``` + +### Update over wire: +``` +pio run -e debug -t erase +pio run -e debug -t upload +pio run -e release -t upload +``` + +### Listen to serial monitor: +``` +pio device monitor +``` + +### Update over local network: +``` +pio run -e wireless -t upload +``` diff --git a/firmware/PlatformIO/platformio.ini b/firmware/PlatformIO/platformio.ini index 0b99a85..203ea43 100644 --- a/firmware/PlatformIO/platformio.ini +++ b/firmware/PlatformIO/platformio.ini @@ -8,9 +8,25 @@ ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html -[env:esp8266] +[platformio] +default_envs = debug + +[env] platform = espressif8266 -board = esp12e +board = d1_mini +board_build.ldscript = eagle.flash.4m2m.ld +board_build.flash_mode = dout framework = arduino upload_speed = 460800 +monitor_speed = 115200 lib_deps = fastled/FastLED@^3.4.0 + +[env:release] + +[env:debug] +build_type = debug +build_flags = -D DEBUG_SERIAL_LAMP + +[env:wireless] +upload_protocol = espota +upload_port = 192.168.8.164 \ No newline at end of file From 263da7a680843adc658973e86bf978b5e2072549 Mon Sep 17 00:00:00 2001 From: Paul Vakhrushev <348009+vahron@users.noreply.github.com> Date: Sun, 28 Feb 2021 21:47:00 +0000 Subject: [PATCH 2/3] [platformio] Align configs with Arduino IDE --- firmware/GyverLamp2/GyverLamp2.ino | 4 ++-- firmware/GyverLamp2/data.h | 2 +- firmware/PlatformIO/.gitignore | 1 + firmware/PlatformIO/.vscode/settings.json | 10 ++++++++++ firmware/PlatformIO/README | 7 ------- firmware/PlatformIO/README.md | 23 +++++++++++++++++++++++ firmware/PlatformIO/platformio.ini | 20 ++++++++++++++++++-- 7 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 firmware/PlatformIO/.vscode/settings.json delete mode 100644 firmware/PlatformIO/README create mode 100644 firmware/PlatformIO/README.md diff --git a/firmware/GyverLamp2/GyverLamp2.ino b/firmware/GyverLamp2/GyverLamp2.ino index e520cfc..3dd1704 100644 --- a/firmware/GyverLamp2/GyverLamp2.ino +++ b/firmware/GyverLamp2/GyverLamp2.ino @@ -88,7 +88,7 @@ const char WiFiPassword[] = "12345678"; // ------------ Прочее ------------- #define GL_VERSION 017 // код версии прошивки #define EE_TOUT 30000 // таймаут сохранения епром после изменения, мс -//#define DEBUG_SERIAL // закомментируй чтобы выключить отладку (скорость 115200) +//#define DEBUG_SERIAL_LAMP // закомментируй чтобы выключить отладку (скорость 115200) #define EE_KEY 55 // ключ сброса WiFi (измени для сброса всех настроек) #define NTP_UPD_PRD 5 // период обновления времени с NTP сервера, минут //#define SKIP_WIFI // пропустить подключение к вафле (для отладки) @@ -152,7 +152,7 @@ void blink8(CRGB color); void setup() { delay(2000); // ждём старта есп memset(matrixValue, 0, sizeof(matrixValue)); -#ifdef DEBUG_SERIAL +#ifdef DEBUG_SERIAL_LAMP Serial.begin(115200); DEBUGLN(); #endif diff --git a/firmware/GyverLamp2/data.h b/firmware/GyverLamp2/data.h index f8b3beb..5dbaff0 100644 --- a/firmware/GyverLamp2/data.h +++ b/firmware/GyverLamp2/data.h @@ -19,7 +19,7 @@ #define MAX_PRESETS 40 // макс количество режимов // ------------------- МАКРО -------------------- -#ifdef DEBUG_SERIAL +#ifdef DEBUG_SERIAL_LAMP #define DEBUGLN(x) Serial.println(x) #define DEBUG(x) Serial.print(x) #else diff --git a/firmware/PlatformIO/.gitignore b/firmware/PlatformIO/.gitignore index 89cc49c..cb94ba1 100644 --- a/firmware/PlatformIO/.gitignore +++ b/firmware/PlatformIO/.gitignore @@ -1,3 +1,4 @@ +.DS_Store .pio .vscode/.browse.c_cpp.db* .vscode/c_cpp_properties.json diff --git a/firmware/PlatformIO/.vscode/settings.json b/firmware/PlatformIO/.vscode/settings.json new file mode 100644 index 0000000..0fb2a0f --- /dev/null +++ b/firmware/PlatformIO/.vscode/settings.json @@ -0,0 +1,10 @@ +{ + "files.associations": { + "*.tcc": "cpp", + "deque": "cpp", + "list": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp" + } +} \ No newline at end of file diff --git a/firmware/PlatformIO/README b/firmware/PlatformIO/README deleted file mode 100644 index 87c055f..0000000 --- a/firmware/PlatformIO/README +++ /dev/null @@ -1,7 +0,0 @@ -PIO project - -pio update -pio run --target erase -pio run --target upload - - diff --git a/firmware/PlatformIO/README.md b/firmware/PlatformIO/README.md new file mode 100644 index 0000000..2b91696 --- /dev/null +++ b/firmware/PlatformIO/README.md @@ -0,0 +1,23 @@ +# PIO project + +### Prerequisites: +``` +pio update +``` + +### Update over wire: +``` +pio run -e debug -t erase +pio run -e debug -t upload +pio run -e release -t upload +``` + +### Listen to serial monitor: +``` +pio device monitor +``` + +### Update over local network: +``` +pio run -e wireless -t upload +``` diff --git a/firmware/PlatformIO/platformio.ini b/firmware/PlatformIO/platformio.ini index 0b99a85..c3e6650 100644 --- a/firmware/PlatformIO/platformio.ini +++ b/firmware/PlatformIO/platformio.ini @@ -8,9 +8,25 @@ ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html -[env:esp8266] +[platformio] +default_envs = debug + +[env] platform = espressif8266 -board = esp12e +board = d1_mini +board_build.ldscript = eagle.flash.4m2m.ld +board_build.flash_mode = dout framework = arduino upload_speed = 460800 +monitor_speed = 115200 lib_deps = fastled/FastLED@^3.4.0 + +[env:release] + +[env:debug] +build_type = debug +build_flags = -D DEBUG_SERIAL_LAMP + +[env:wireless] +upload_protocol = espota +upload_port = 192.168.8.164 From bf0cc8d7612d9dc427086bb738cffa4f74ff17aa Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 14 Jul 2021 00:15:38 +0300 Subject: [PATCH 3/3] upd --- firmware/GyverLamp2/GyverLamp2.ino | 114 +++++++---------------------- firmware/GyverLamp2/effects.ino | 1 + firmware/GyverLamp2/time.ino | 3 +- 3 files changed, 27 insertions(+), 91 deletions(-) diff --git a/firmware/GyverLamp2/GyverLamp2.ino b/firmware/GyverLamp2/GyverLamp2.ino index e9874d7..e346c7a 100644 --- a/firmware/GyverLamp2/GyverLamp2.ino +++ b/firmware/GyverLamp2/GyverLamp2.ino @@ -1,93 +1,27 @@ /* - Версия 0.22b - Чуть переделан смерч - Исправлены глюки когда есть вайфай но нет интернета - Добавлено свечение после завершения рассвета, время настраивается - Обновлены бинарники, прошлая версия могла быть с ошибкой - - Версия 0.21b - Выбор палитры для частиц и конфетти - Счётчик количества ламп онлайн в приложении - Синхронизация текущего эффекта с приложением - Добавлен эффект смерч - - Версия 0.20b - Оптимизация - Исправление критических ошибок - Пофикшено падение АР - Пофикшено падение лампы во время светомузыки - - Версия 0.19b - Минимальная версия приложения 1.17!!! - Почищен мусор, оптимизация, повышена стабильность и производительность - Мигает теперь 16 светиков - Снова переделана сетевая политика, упрощён и сильно ускорен парсинг - Изменены пределы по светодиодам, что сильно увеличило производительность - Выключенная (программно) лампа не принимает сервисные команды кроме команды включиться - Добавлены часы, в том числе в рассвет - Slave работает со светомузыкой сам, если не получает данные с мастера - - Версия 0.18b - Уменьшена чувствительность хлопков - Увеличена плавность светомузыки - Переделана сетевая политика - Микрофон и датчик света опрашивает только мастер и отсылает данные слейвам своей группы - 4 клика - включить первый режим - Отправка точного времени на лампу в режиме АР для работы рассвета и синхронизации эффектов - - Версия 0.17b - Автосмена отключается 30 сек во время настройки режимов - Убрана кнопка upload в режимах - Лампа чуть мигает при получении данных - Кастом палитра работает на огне 2020 - Вкл выкл двумя хлопками - Плавное выключение - Починил рассвет - - Версия 0.16b - Исправлен масштаб огня 2020 - Фикс невыключения рассвета - - Версия 0.14b - Мелкие баги - Вернул искры огню - Добавлены палитры - Добавлен огонь 2020 - - Версия 0.13b - Улучшена стабильность - - Версия 0.12b - Мелкие исправления - - Версия 0.11b - Добавлен редактор палитр - Исправлены мелкие баги в эффектах - Переподключение к роутеру после сброса сети - Настройка ориентации матрицы из приложения - Переработан эффект "Частицы" - Добавлена скорость огня - Переключение на новый/выбранный режим при редактировании - Отправка времени из сервиса (для АР) - Выключение по таймеру теперь плавное - Добавлен рассвет - - TODO: - плавная смена режимов - Mqtt? - Базовый пак - Эффект погода https://it4it.club/topic/40-esp8266-i-parsing-pogodyi-s-openweathermap/ + ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! + ДЛЯ КОМПИЛЯЦИИ ПРОШИВКИ ПОД NODEMCU/WEMOS/ESP01/ESP12 ВЫБИРАТЬ + Инструменты / Плата Generic ESP8266 + Инструменты / Flash Size 4MB (FS:2MB OTA) + CPU Frequency / 160 MHz (рекомендуется для стабильности светомузыки!!!) + При прошивке с других прошивок лампы поставить: Инструменты/Erase Flash/All Flash Contents + ESP core 2.7.4+ http://arduino.esp8266.com/stable/package_esp8266com_index.json + FastLED 3.4.0+ https://github.com/FastLED/FastLED/releases */ -// ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! ВНИМАНИЕ! -// ДЛЯ КОМПИЛЯЦИИ ПРОШИВКИ ПОД NODEMCU/WEMOS/ESP01/ESP12 ВЫБИРАТЬ -// Инструменты / Плата Generic ESP8266 -// Инструменты / Flash Size 4MB (FS:2MB OTA) -// CPU Frequency / 160 MHz (рекомендуется для стабильности светомузыки!!!) -// При прошивке с других прошивок лампы поставить: Инструменты/Erase Flash/All Flash Contents -// ESP core 2.7.4+ http://arduino.esp8266.com/stable/package_esp8266com_index.json -// FastLED 3.4.0+ https://github.com/FastLED/FastLED/releases -#define GL_BUILD 0 // 0: com 300, 1: com 900, 2: esp1 300, 3: esp1 900, 4: module 300, 5: module 900 +/* + Версия 0.23b + Поправлена яркость рассвета + + TODO: + Upload -> Применить + Длина огня в светомуз? + Плавная смена режимов + Mqtt + Базовый пак + Поддержка куба + Погода https://it4it.club/topic/40-esp8266-i-parsing-pogodyi-s-openweathermap/ +*/ // ---------- Настройки ----------- #define GL_KEY "GL" // ключ сети @@ -103,7 +37,7 @@ #define PHOT_VCC 14 // питание фоторезистора GPIO14 (D5 на wemos/node) // ------------ Лента ------------- -#define STRIP_PIN 2 // пин ленты GPIO2 (D4 на wemos/node) +#define STRIP_PIN 2 // пин ленты GPIO2 (D4 на wemos/node), GPIO5 (D1) для module #define MAX_LEDS 300 // макс. светодиодов #define STRIP_CHIP WS2812 // чип ленты #define STRIP_COLOR GRB // порядок цветов в ленте @@ -121,7 +55,7 @@ const char AP_NameChar[] = "GyverLamp2"; const char WiFiPassword[] = "12345678"; // ------------ Прочее ------------- -#define GL_VERSION 22 // код версии прошивки +#define GL_VERSION 23 // код версии прошивки #define EE_TOUT 30000 // таймаут сохранения епром после изменения, мс //#define DEBUG_SERIAL // закомментируй чтобы выключить отладку (скорость 115200) #define EE_KEY 56 // ключ сброса eeprom @@ -129,6 +63,8 @@ const char WiFiPassword[] = "12345678"; //#define SKIP_WIFI // пропустить подключение к вафле (для отладки) // ------------ БИЛДЕР ------------- +#define GL_BUILD 0 // 0: com 300, 1: com 900, 2: esp1 300, 3: esp1 900, 4: module 300, 5: module 900 + #if (GL_BUILD == 0) #elif (GL_BUILD == 1) #define MAX_LEDS 900 diff --git a/firmware/GyverLamp2/effects.ino b/firmware/GyverLamp2/effects.ino index 0f12193..4dcefc7 100644 --- a/firmware/GyverLamp2/effects.ino +++ b/firmware/GyverLamp2/effects.ino @@ -3,6 +3,7 @@ void effectsRoutine() { if (!effTmr.isReady()) return; if (dawnTmr.running() || postDawn.running()) { + FastLED.setBrightness(255); byte thisColor = dawnTmr.getLength8(); if (postDawn.running()) thisColor = 255; fill_solid(leds, MAX_LEDS, ColorFromPalette(HeatColors_p, thisColor, scaleFF(thisColor, dawn.bright), LINEARBLEND)); diff --git a/firmware/GyverLamp2/time.ino b/firmware/GyverLamp2/time.ino index 4b9ac70..a1d6d09 100644 --- a/firmware/GyverLamp2/time.ino +++ b/firmware/GyverLamp2/time.ino @@ -64,8 +64,7 @@ void checkDawn() { DEBUG("dawn start "); DEBUGLN(dawn.time * 60000ul); dawnTmr.setInterval(dawn.time * 60000ul); - dawnTmr.restart(); - FastLED.setBrightness(255); + dawnTmr.restart(); } } }