mirror of
https://github.com/gunner47/GyverLamp.git
synced 2025-08-07 17:10:30 +03:00
Добавлены 4 новых эффекта; Исправлены ошибки
This commit is contained in:
@@ -49,6 +49,10 @@
|
||||
- Реорганизован код, исправлены ошибки
|
||||
--- 28.08.2019
|
||||
- Добавлен вызов режима обновления модуля esp из android приложения
|
||||
--- 30.08.2019
|
||||
- Эффект "Светлячки со шлейфами" переименован в "Угасающие пиксели"
|
||||
- Добавлены 4 новых эффекта: "Радуга диагональная", "Метель", "Звездопад" и "Светлячки со шлейфами" (новый)
|
||||
- Исправлены ошибки
|
||||
*/
|
||||
|
||||
// Ссылка для менеджера плат:
|
||||
@@ -58,41 +62,41 @@
|
||||
// ============= НАСТРОЙКИ =============
|
||||
// --- ВРЕМЯ ---------------------------
|
||||
#define USE_NTP // закомментировать или удалить эту строку, если нужно, чтобы устройство не лезло в интернет
|
||||
#define GMT (3) // часовой пояс (москва 3)
|
||||
#define NTP_ADDRESS ("ntp2.colocall.net") // сервер времени
|
||||
#define NTP_INTERVAL (30UL * 60UL * 1000UL) // интервал синхронизации времени (30 минут)
|
||||
#define GMT (3) // часовой пояс (москва 3)
|
||||
#define NTP_ADDRESS ("ntp2.colocall.net") // сервер времени
|
||||
#define NTP_INTERVAL (30UL * 60UL * 1000UL) // интервал синхронизации времени (30 минут)
|
||||
|
||||
// --- РАССВЕТ -------------------------
|
||||
#define DAWN_BRIGHT (200U) // максимальная яркость рассвета (0-255)
|
||||
#define DAWN_TIMEOUT (1U) // сколько рассвет светит после времени будильника, минут
|
||||
#define DAWN_BRIGHT (200U) // максимальная яркость рассвета (0-255)
|
||||
#define DAWN_TIMEOUT (1U) // сколько рассвет светит после времени будильника, минут
|
||||
|
||||
// --- МАТРИЦА -------------------------
|
||||
#define BRIGHTNESS (40U) // стандартная маскимальная яркость (0-255)
|
||||
#define CURRENT_LIMIT (2000U) // лимит по току в миллиамперах, автоматически управляет яркостью (пожалей свой блок питания!) 0 - выключить лимит
|
||||
#define BRIGHTNESS (40U) // стандартная маскимальная яркость (0-255)
|
||||
#define CURRENT_LIMIT (2000U) // лимит по току в миллиамперах, автоматически управляет яркостью (пожалей свой блок питания!) 0 - выключить лимит
|
||||
|
||||
#define WIDTH (16U) // ширина матрицы
|
||||
#define HEIGHT (16U) // высота матрицы
|
||||
#define WIDTH (16U) // ширина матрицы
|
||||
#define HEIGHT (16U) // высота матрицы
|
||||
|
||||
#define COLOR_ORDER (GRB) // порядок цветов на ленте. Если цвет отображается некорректно - меняйте. Начать можно с RGB
|
||||
#define COLOR_ORDER (GRB) // порядок цветов на ленте. Если цвет отображается некорректно - меняйте. Начать можно с RGB
|
||||
|
||||
#define MATRIX_TYPE (0U) // тип матрицы: 0 - зигзаг, 1 - параллельная
|
||||
#define CONNECTION_ANGLE (0U) // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний
|
||||
#define STRIP_DIRECTION (0U) // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз
|
||||
#define MATRIX_TYPE (0U) // тип матрицы: 0 - зигзаг, 1 - параллельная
|
||||
#define CONNECTION_ANGLE (0U) // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний
|
||||
#define STRIP_DIRECTION (0U) // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз
|
||||
// при неправильной настройке матрицы вы получите предупреждение "Wrong matrix parameters! Set to default"
|
||||
// шпаргалка по настройке матрицы здесь! https://alexgyver.ru/matrix_guide/
|
||||
|
||||
// --- ESP -----------------------------
|
||||
#define ESP_MODE (1U) // 0U - WiFi точка доступа, 1U - клиент WiFi (подключение к роутеру)
|
||||
#define ESP_MODE (1U) // 0U - WiFi точка доступа, 1U - клиент WiFi (подключение к роутеру)
|
||||
#define ESP_USE_BUTTON // если строка не закомментирована, должна быть подключена кнопка (иначе ESP может регистрировать "фантомные" нажатия и некорректно устанавливать яркость)
|
||||
#define ESP_HTTP_PORT (80U) // номер порта, который будет использоваться во время первой утановки имени WiFi сети (и пароля), к которой потом будет подключаться лампа в режиме WiFi клиента (лучше не менять)
|
||||
#define ESP_UDP_PORT (8888U) // номер порта, который будет "слушать" UDP сервер во время работы лампы как в режиме WiFi точки доступа, так и в режиме WiFi клиента (лучше не менять)
|
||||
#define ESP_CONN_TIMEOUT (7U) // время в секундах (ДОЛЖНО БЫТЬ МЕНЬШЕ 8, иначе сработает WDT), которое ESP будет пытаться подключиться к WiFi сети, после его истечения автоматически развернёт WiFi точку доступа
|
||||
#define ESP_CONF_TIMEOUT (300U) // время в секундах, которое ESP будет ждать ввода SSID и пароля WiFi сети роутера в конфигурационном режиме, после его истечения ESP перезагружается
|
||||
#define ESP_HTTP_PORT (80U) // номер порта, который будет использоваться во время первой утановки имени WiFi сети (и пароля), к которой потом будет подключаться лампа в режиме WiFi клиента (лучше не менять)
|
||||
#define ESP_UDP_PORT (8888U) // номер порта, который будет "слушать" UDP сервер во время работы лампы как в режиме WiFi точки доступа, так и в режиме WiFi клиента (лучше не менять)
|
||||
#define ESP_CONN_TIMEOUT (7U) // время в секундах (ДОЛЖНО БЫТЬ МЕНЬШЕ 8, иначе сработает WDT), которое ESP будет пытаться подключиться к WiFi сети, после его истечения автоматически развернёт WiFi точку доступа
|
||||
#define ESP_CONF_TIMEOUT (300U) // время в секундах, которое ESP будет ждать ввода SSID и пароля WiFi сети роутера в конфигурационном режиме, после его истечения ESP перезагружается
|
||||
#define GENERAL_DEBUG // если строка не закомментирована, будут выводиться отладочные сообщения
|
||||
#define WIFIMAN_DEBUG (true) // вывод отладочных сообщений при подключении к WiFi сети: true - выводятся, false - не выводятся; настройка не зависит от GENERAL_DEBUG
|
||||
#define WIFIMAN_DEBUG (true) // вывод отладочных сообщений при подключении к WiFi сети: true - выводятся, false - не выводятся; настройка не зависит от GENERAL_DEBUG
|
||||
#define OTA // если строка не закомментирована, модуль будет ждать два последдовательных запроса пользователя на прошивку по воздуху (см. документацию в "шапке")
|
||||
#ifdef OTA
|
||||
#define ESP_OTA_PORT (8266U) // номер порта, который будет "прослушиваться" в ожидании команды прошивки по воздуху
|
||||
#define ESP_OTA_PORT (8266U) // номер порта, который будет "прослушиваться" в ожидании команды прошивки по воздуху
|
||||
#endif
|
||||
|
||||
// --- ESP (WiFi клиент) ---------------
|
||||
@@ -100,21 +104,47 @@ uint8_t STA_STATIC_IP[] = {}; // статичес
|
||||
// SSID WiFi сети и пароль будут запрошены WiFi Manager'ом в режиме WiFi точки доступа, нет способа захардкодить их в прошивке
|
||||
|
||||
// --- AP (WiFi точка доступа) ---
|
||||
#define AP_NAME ("LedLamp") // имя WiFi точки доступа, используется как при запросе SSID и пароля WiFi сети роутера, так и при работе в режиме ESP_MODE = 0
|
||||
#define AP_PASS ("31415926") // пароль WiFi точки доступа
|
||||
uint8_t AP_STATIC_IP[] = {192, 168, 4, 1}; // статический IP точки доступа (лучше не менять)
|
||||
#define AP_NAME ("LedLamp") // имя WiFi точки доступа, используется как при запросе SSID и пароля WiFi сети роутера, так и при работе в режиме ESP_MODE = 0
|
||||
#define AP_PASS ("31415926") // пароль WiFi точки доступа
|
||||
uint8_t AP_STATIC_IP[] = {192, 168, 4, 1}; // статический IP точки доступа (лучше не менять)
|
||||
|
||||
// ============= ДЛЯ РАЗРАБОТЧИКОВ =====
|
||||
#define LED_PIN (2U) // пин ленты
|
||||
#define BTN_PIN (4U) // пин кнопки
|
||||
#define MODE_AMOUNT (20U) // количество режимов
|
||||
#define LED_PIN (2U) // пин ленты
|
||||
#define BTN_PIN (4U) // пин кнопки
|
||||
// список и номера эффектов ниже в списке согласованы с android приложением!
|
||||
#define EFF_SPARKLES (0U) // Конфетти
|
||||
#define EFF_FIRE (1U) // Огонь
|
||||
#define EFF_RAINBOW_VER (2U) // Радуга вертикальная
|
||||
#define EFF_RAINBOW_HOR (3U) // Радуга горизонтальная
|
||||
#define EFF_RAINBOW_DIAG (4U) // Радуга диагональная
|
||||
#define EFF_COLORS (5U) // Смена цвета
|
||||
#define EFF_MADNESS (6U) // Безумие 3D
|
||||
#define EFF_CLOUDS (7U) // Облака 3D
|
||||
#define EFF_LAVA (8U) // Лава 3D
|
||||
#define EFF_PLASMA (9U) // Плазма 3D
|
||||
#define EFF_RAINBOW (10U) // Радуга 3D
|
||||
#define EFF_RAINBOW_STRIPE (11U) // Павлин 3D
|
||||
#define EFF_ZEBRA (12U) // Зебра 3D
|
||||
#define EFF_FOREST (13U) // Лес 3D
|
||||
#define EFF_OCEAN (14U) // Океан 3D
|
||||
#define EFF_COLOR (15U) // Цвет
|
||||
#define EFF_SNOW (16U) // Снегопад
|
||||
#define EFF_SNOWSTORM (17U) // Метель
|
||||
#define EFF_STARFALL (18U) // Звездопад
|
||||
#define EFF_MATRIX (19U) // Матрица
|
||||
#define EFF_LIGHTERS (20U) // Светлячки
|
||||
#define EFF_LIGHTER_TRACES (21U) // Светлячки со шлейфом
|
||||
#define EFF_FADING_PIXELS (22U) // Угасающие пиксели
|
||||
#define EFF_CUBE (23U) // Блуждающий кубик
|
||||
#define EFF_WHITE_COLOR (24U) // Белый свет
|
||||
#define MODE_AMOUNT (25U) // количество режимов
|
||||
|
||||
#define NUM_LEDS (WIDTH * HEIGHT)
|
||||
#define SEGMENTS (1U) // диодов в одном "пикселе" (для создания матрицы из кусков ленты)
|
||||
#define NUM_LEDS (WIDTH * HEIGHT)
|
||||
#define SEGMENTS (1U) // диодов в одном "пикселе" (для создания матрицы из кусков ленты)
|
||||
|
||||
// --- БИБЛИОТЕКИ ----------------------
|
||||
#define FASTLED_INTERRUPT_RETRY_COUNT (0U)
|
||||
#define FASTLED_ALLOW_INTERRUPTS (0U)
|
||||
#define FASTLED_INTERRUPT_RETRY_COUNT (0U)
|
||||
#define FASTLED_ALLOW_INTERRUPTS (0U)
|
||||
#define FASTLED_ESP8266_RAW_PIN_ORDER
|
||||
|
||||
#include "Types.h"
|
||||
@@ -178,14 +208,9 @@ bool manualOff = false;
|
||||
int8_t currentMode = 0;
|
||||
bool loadingFlag = true;
|
||||
bool ONflag = true;
|
||||
uint32_t eepromTimer;
|
||||
uint32_t eepromTimeout;
|
||||
bool settChanged = false;
|
||||
|
||||
// Конфетти, Огонь, Радуга вертикальная, Радуга горизонтальная, Смена цвета,
|
||||
// Безумие 3D, Облака 3D, Лава 3D, Плазма 3D, Радуга 3D,
|
||||
// Павлин 3D, Зебра 3D, Лес 3D, Океан 3D,
|
||||
// Цвет, Снег, Матрица, Светлячки, Светлячки со шлейфом, Белый свет
|
||||
|
||||
unsigned char matrixValue[8][16];
|
||||
|
||||
bool TimerManager::TimerRunning = false;
|
||||
@@ -196,7 +221,7 @@ uint64_t TimerManager::TimeToFire = 0ULL;
|
||||
bool FavoritesManager::FavoritesRunning = false;
|
||||
uint16_t FavoritesManager::Interval = DEFAULT_FAVORITES_INTERVAL;
|
||||
uint16_t FavoritesManager::Dispersion = DEFAULT_FAVORITES_DISPERSION;
|
||||
uint8_t FavoritesManager::FavoriteModes[MODE_AMOUNT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
uint8_t FavoritesManager::FavoriteModes[MODE_AMOUNT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
uint32_t FavoritesManager::nextModeAt = 0UL;
|
||||
|
||||
|
||||
@@ -308,7 +333,6 @@ void setup()
|
||||
#endif
|
||||
|
||||
memset(matrixValue, 0, sizeof(matrixValue));
|
||||
|
||||
randomSeed(micros());
|
||||
}
|
||||
|
||||
@@ -317,7 +341,7 @@ void loop()
|
||||
{
|
||||
parseUDP();
|
||||
effectsTick();
|
||||
EepromManager::HandleEepromTick(&settChanged, &eepromTimer, ¤tMode, modes, &(FavoritesManager::SaveFavoritesToEeprom));
|
||||
EepromManager::HandleEepromTick(&settChanged, &eepromTimeout, ¤tMode, modes, &(FavoritesManager::SaveFavoritesToEeprom));
|
||||
#ifdef USE_NTP
|
||||
timeTick();
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user