mirror of
https://github.com/gunner47/GyverLamp.git
synced 2025-08-07 17:10:30 +03:00
Добавлен переход на летнее/зимнее время; Добавлен эффект Белый огонь; Исправлены ошибки
This commit is contained in:
@@ -80,11 +80,12 @@
|
||||
- * обновление его оттенка/яркости происходит 1 раз в 3 секунды вместо 1 раза в минуту
|
||||
- * диоды разбиты на 6 групп, первой из которых назначается новый оттенок/яркость 1 раз в 3 секунды, вторая "отстаёт" на 1 шаг, третья - на 2 шага и т.д. (для большей плавности)
|
||||
- Добавлена визуальная сигнализация о некоторых важных действиях/состояниях лампы:
|
||||
- * при запуске в режиме WiFi клиента и ещё не настроенных параметрах WiFi сети (когда их нужно ввести) - 1 короткая (0,25 сек) вспышка жёлтым
|
||||
- * если лампа стартовала в режиме WiFi клиента с ненастроенными параметрами WiFi сети, и они не были введены за отведённый таймаут (перед перезагрузкой) - 1 короткая вспышка красным
|
||||
- * при переходе лампы в режим обновления по воздуху (OTA) по двум четырёхкратным кликам по кнопке или по кнопке OTA из android приложения - 2 стандартных (0,5 сек) вспышки жёлтым
|
||||
- * если лампа была переведена в режим OTA, но не дождалась прошивки за отведённый таймаут (перед перезагрузкой) - 2 стандартных вспышки красным
|
||||
- * при переключении рабочего режима лампы WiFi точка доступа/WiFi клиент семикратным кликом по кнопке (перед перезагрузкой) - 3 стандартных вспышки красным
|
||||
- * при запуске в режиме WiFi клиента и ещё не настроенных параметрах WiFi сети (когда их нужно ввести) - 1 вспышка жёлтым
|
||||
- * если лампа стартовала в режиме WiFi клиента с ненастроенными параметрами WiFi сети, и они не были введены за отведённый таймаут (перед перезагрузкой) - 1 вспышка красным
|
||||
- * при переходе лампы в режим обновления по воздуху (OTA) по двум четырёхкратным кликам по кнопке или по кнопке OTA из android приложения - 2 вспышки жёлтым
|
||||
- * если лампа была переведена в режим OTA, но не дождалась прошивки за отведённый таймаут (перед перезагрузкой) - 2 вспышки красным
|
||||
- * при переключении рабочего режима лампы WiFi точка доступа/WiFi клиент семикратным кликом по кнопке (перед перезагрузкой) - 3 вспышки красным
|
||||
- * при запросе вывода времени бегущей строкой, если время не синхронизировано - 4 вспышки красным
|
||||
- Уменьшен таймаут подключения к WiFi сети до 6 секунд; вызвано увеличившейся продолжительностью работы функции setup(), она в сумме должна быть меньше 8 секунд
|
||||
- Оптимизирован код
|
||||
--- 14.10.2019
|
||||
@@ -99,6 +100,11 @@
|
||||
--- 24.10.2019
|
||||
- Добавлен вывод сигнала (HIGH/LOW - настраивается константой MOSFET_LEVEL) синхронно с включением матрицы на пин MOSFET транзистора (настраивается константой MOSFET_PIN)
|
||||
- Добавлен вывод сигнала (HIGH/LOW - настраивается константой ALARM_LEVEL) на пин будильника (настраивается константой ALARM_PIN); сигнал подаётся в течение одной минуты, начиная со времени, на которое заведён будильник
|
||||
--- 02.11.2019
|
||||
- Добавлен переход на летнее/зимнее время (изменены настройки часового пояса, см. Constants.h); добавлена библиотека Timezone
|
||||
- Добавлен эффект Белый огонь
|
||||
- Исправлена ошибка сброса сигнала на пине ALARM_PIN при отключении будильника вручную
|
||||
- Добавлена сигнализация (4 вспышки красным) при запросе вывода времени шестикратным кликом, если время не синхронизировано
|
||||
*/
|
||||
|
||||
// Ссылка для менеджера плат:
|
||||
@@ -121,7 +127,9 @@
|
||||
#include "fonts.h"
|
||||
#ifdef USE_NTP
|
||||
#include <NTPClient.h>
|
||||
#include <Timezone.h>
|
||||
#endif
|
||||
#include <TimeLib.h>
|
||||
#ifdef OTA
|
||||
#include "OtaManager.h"
|
||||
#endif
|
||||
@@ -141,11 +149,20 @@ WiFiUDP Udp;
|
||||
|
||||
#ifdef USE_NTP
|
||||
WiFiUDP ntpUDP;
|
||||
NTPClient timeClient(ntpUDP, NTP_ADDRESS, GMT * 3600, NTP_INTERVAL);
|
||||
NTPClient timeClient(ntpUDP, NTP_ADDRESS, 0, NTP_INTERVAL); // объект, запрашивающий время с ntp сервера; в нём смещение часового пояса не используется (перенесено в объект localTimeZone); здесь всегда должно быть время UTC
|
||||
#ifdef SUMMER_WINTER_TIME
|
||||
TimeChangeRule summerTime = { SUMMER_TIMEZONE_NAME, SUMMER_WEEK_NUM, SUMMER_WEEKDAY, SUMMER_MONTH, SUMMER_HOUR, SUMMER_OFFSET };
|
||||
TimeChangeRule winterTime = { WINTER_TIMEZONE_NAME, WINTER_WEEK_NUM, WINTER_WEEKDAY, WINTER_MONTH, WINTER_HOUR, WINTER_OFFSET };
|
||||
Timezone localTimeZone(summerTime, winterTime);
|
||||
#else
|
||||
TimeChangeRule localTime = { LOCAL_TIMEZONE_NAME, LOCAL_WEEK_NUM, LOCAL_WEEKDAY, LOCAL_MONTH, LOCAL_HOUR, LOCAL_OFFSET };
|
||||
Timezone localTimeZone(localTime);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
timerMinim timeTimer(3000);
|
||||
bool ntpServerAddressResolved = false;
|
||||
bool timeSynched = false;
|
||||
uint32_t lastTimePrinted = 0U;
|
||||
|
||||
#ifdef ESP_USE_BUTTON
|
||||
@@ -171,7 +188,6 @@ bool MqttManager::needToPublish = false;
|
||||
char MqttManager::mqttBuffer[] = {};
|
||||
uint32_t MqttManager::mqttLastConnectingAttempt = 0;
|
||||
SendCurrentDelegate MqttManager::sendCurrentDelegate = NULL;
|
||||
// volatile uint32_t wifiLastConnectingAttempt = 0;
|
||||
#endif
|
||||
|
||||
// --- ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ -------
|
||||
@@ -318,7 +334,7 @@ void setup()
|
||||
else
|
||||
{
|
||||
LOG.println(F("WiFi сеть не определена, запуск WiFi точки доступа для настройки параметров подключения к WiFi сети..."));
|
||||
showWarning(CRGB::Yellow, 250U, 250U); // мигание жёлтым цветом 0,25 секунды (1 раз) - нужно ввести параметры WiFi сети для подключения
|
||||
showWarning(CRGB::Yellow, 1000U, 500U); // мигание жёлтым цветом 0,5 секунды (1 раз) - нужно ввести параметры WiFi сети для подключения
|
||||
}
|
||||
|
||||
if (sizeof(STA_STATIC_IP))
|
||||
@@ -345,7 +361,7 @@ void setup()
|
||||
LOG.printf_P(PSTR("Рабочий режим лампы изменён и сохранён в энергонезависимую память\nНовый рабочий режим: ESP_MODE = %d, %s\nРестарт...\n"),
|
||||
espMode, espMode == 0U ? F("WiFi точка доступа") : F("WiFi клиент (подключение к роутеру)"));
|
||||
|
||||
showWarning(CRGB::Red, 250U, 250U); // мигание красным цветом 0,25 секунды (1 раз) - ожидание ввода SSID'а и пароля WiFi сети прекращено, перезагрузка
|
||||
showWarning(CRGB::Red, 1000U, 500U); // мигание красным цветом 0,5 секунды (1 раз) - ожидание ввода SSID'а и пароля WiFi сети прекращено, перезагрузка
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user