Skip to content

Commit

Permalink
Merge pull request #10 from MishanyaTS/Vetka
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
MishanyaTS committed Dec 8, 2023
2 parents 3fb40f5 + 2c80151 commit 68e0009
Show file tree
Hide file tree
Showing 121 changed files with 969 additions and 1,770 deletions.
60 changes: 31 additions & 29 deletions FieryLedLamp_New_WEB/FieryLedLamp_New_WEB/Constants.h
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// Текущая версия : FieryLedLamp v3.6_new_web 121 эффектов
// Текущая версия : FieryLedLamp v3.7_new_web 122 эффектов
// ВНИМАНИЕ!!! Большая часть настроек перенесена в файл data/config и может изменяться в процессе эксплуатации лампы.
// Внимательно читайте файл ПРОЧТИ МЕНЯ!!!.txt и ПРОЧТИ МЕНЯ.doc (тут с картинками)

#pragma once

#define FLL_VERSION (" Ver.3.6.121")
#define FLL_VERSION (" Ver.3.7.122")

//#include <ESP8266WebServer.h>

Expand Down Expand Up @@ -253,33 +253,34 @@ uint8_t MATRIX_TYPE = 0; // тип матри
#define EFF_LIGHTER_TRACES ( 93U) // Светлячки со шлейфом
#define EFF_FEATHER_CANDLE ( 94U) // Свеча
#define EFF_AURORA ( 95U) // Северное сияние
#define EFF_SINUSOID3 ( 96U) // Синусоид
#define EFF_COLORS ( 97U) // Смена цвета
#define EFF_SNOW ( 98U) // Снегопад
#define EFF_SPECTRUM ( 99U) // Спектрум
#define EFF_SPIRO (100U) // Спирали
#define EFF_FLOCK (101U) // Стая
#define EFF_FLOCK_N_PR (102U) // Стая и хищник
#define EFF_ARROWS (103U) // Стрелки
#define EFF_STROBE (104U) // Строб.Хаос.Дифузия
#define EFF_SHADOWS (105U) // Тени
#define EFF_PACIFIC (106U) // Тихий океан
#define EFF_TORNADO (107U) // Торнадо
#define EFF_SIMPLE_RAIN (108U) // Tyчкa в банке
#define EFF_FIREWORK (109U) // Фейерверк
#define EFF_FIREWORK_2 (110U) // Фейерверк 2
#define EFF_FAIRY (111U) // Фея
#define EFF_COLOR (112U) // Цвет
#define EFF_EFF_COLORED_PYTHON (113U) // Цветной Питон
#define EFF_EFF_SAND (114U) // Цветные драже
#define EFF_COLOR_FRIZZLES (115U) // Цветные кудри
#define EFF_EFF_LOTUS (116U) // Цветок лотоса
#define EFF_TURBULENCE (117U) // Цифровая турбулентность
#define EFF_SPHERES (118U) // Шapы
#define EFF_NEXUS (119U) // Nexus
#define EFF_CLOCK (120U) // Часы

#define MODE_AMOUNT (121U) // количество режимов
#define EFF_SERPENTINE ( 96U) // Серпантин
#define EFF_SINUSOID3 ( 97U) // Синусоид
#define EFF_COLORS ( 98U) // Смена цвета
#define EFF_SNOW ( 99U) // Снегопад
#define EFF_SPECTRUM (100U) // Спектрум
#define EFF_SPIRO (101U) // Спирали
#define EFF_FLOCK (102U) // Стая
#define EFF_FLOCK_N_PR (103U) // Стая и хищник
#define EFF_ARROWS (104U) // Стрелки
#define EFF_STROBE (105U) // Строб.Хаос.Дифузия
#define EFF_SHADOWS (106U) // Тени
#define EFF_PACIFIC (107U) // Тихий океан
#define EFF_TORNADO (108U) // Торнадо
#define EFF_SIMPLE_RAIN (109U) // Tyчкa в банке
#define EFF_FIREWORK (110U) // Фейерверк
#define EFF_FIREWORK_2 (111U) // Фейерверк 2
#define EFF_FAIRY (112U) // Фея
#define EFF_COLOR (113U) // Цвет
#define EFF_EFF_COLORED_PYTHON (114U) // Цветной Питон
#define EFF_EFF_SAND (115U) // Цветные драже
#define EFF_COLOR_FRIZZLES (116U) // Цветные кудри
#define EFF_EFF_LOTUS (117U) // Цветок лотоса
#define EFF_TURBULENCE (118U) // Цифровая турбулентность
#define EFF_SPHERES (119U) // Шapы
#define EFF_NEXUS (120U) // Nexus
#define EFF_CLOCK (121U) // Часы

#define MODE_AMOUNT (122U) // количество режимов

// ============= МАССИВ НАСТРОЕК ЭФФЕКТОВ ПО УМОЛЧАНИЮ ===================
// формат записи:
Expand Down Expand Up @@ -382,6 +383,7 @@ static const uint8_t defaultSettings[][3] PROGMEM = {
{ 15, 185, 93}, // Светлячки со шлейфом
{ 20, 220, 8}, // Свеча
{ 15, 160, 64}, // Северное сияние
{ 15, 75, 50}, // Серпантин
{ 20, 127, 75}, // Синусоид
{ 25, 240, 1}, // Смена цвета
{ 10, 205, 90}, // Снегопад
Expand Down
2 changes: 1 addition & 1 deletion FieryLedLamp_New_WEB/FieryLedLamp_New_WEB/DisplayTimer.ino
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,4 @@ void Display_Timer (uint8_t argument) {
else display.displayByte(_dash, _dash, _dash, _dash); // отображаем прочерки
}
}
#endif //TM1637_USE
#endif //TM1637_USE
99 changes: 47 additions & 52 deletions FieryLedLamp_New_WEB/FieryLedLamp_New_WEB/FieryLedLamp_New_WEB.ino
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ bool night_advert_sound_on; // Вкл.Выкл озвучивания
bool alarm_advert_sound_on; // Вкл.Выкл озвучивания времени будильником
uint8_t mp3_player_connect = 0; // Плеер не подключен. true - подключен.
uint8_t mp3_folder_last=255; // Предыдущая папка для воспроизведения
//uint8_t mp3_folder_change =0; // Указывает, была ли изменена папка
bool set_mp3_play_now=false; // Указывает, надо ли играть сейчас мелодии
uint32_t alarm_timer; // Периодичность проверки и плавного изменения громкости будильника
uint32_t mp3_timer = 0;
Expand All @@ -239,26 +240,25 @@ bool pause_on = true; // Озвучка эффектов
uint8_t eff_volume = 9; // громкость воспроизведения
uint8_t eff_sound_on = 0; // звук включен - !0 (true), выключен - 0
uint8_t CurrentFolder; // Папка, на которую переключились (будет проигрываться)
uint8_t CurrentFolder_last = 0; // Предыдущая текущая папка
SoftwareSerial mp3(MP3_RX_PIN, MP3_TX_PIN); // создаём объект mySoftwareSerial и указываем выводы, к которым подлючен плеер (RX, TX)
#ifndef TM1637_USE
uint8_t minute_tmp;
#endif
//#ifndef TM1637_USE
// uint8_t minute_tmp;
//#endif
uint8_t mp3_receive_buf[10];
uint8_t effects_folders[MODE_AMOUNT]; // Номера папок для озвучивания
uint16_t ADVERT_TIMER_H, ADVERT_TIMER_M; // продолжительность озвучивания часов и минут
uint8_t mp3_delay; // Задержка между командами плееру

uint8_t mp3_delay; // Задержка между командами проигрывателя
uint8_t send_sound = 1; // Передавать или нет сомнительным параметрам звука (папка,озвучивание_on/off,громкость)
uint8_t send_eff_volume = 1; // Передавать или нет озвучивания_on/off, громкость
#endif //MP3_TX_PIN

uint16_t current_limit; // настраиваемый Лимит тока
#ifdef TM1637_USE
uint8_t DispBrightness = 1; // +++ Яркость дисплея от 0 до 255(5 уровней яркости с шагом 51). 0 - дисплей погашен
bool dotFlag = false; // +++ флаг: в часах рисуется двоеточие или нет
uint32_t tmr_clock = 0; // +++ таймер мигания разделителя часов на дисплее
uint32_t tmr_blink = 0; // +++ таймер плавного изменения яркости дисплея
TM1637Display display(CLK, DIO); // +++ подключаем дисплей
bool aDirection = false; // +++ Направление изменения яркости
uint8_t last_minute;
uint32_t DisplayTimer; // Время отображения номера эффекта
uint8_t LastEffect = 255; // последний Проигрываемый эффект
uint8_t DisplayFlag=0; // Флаг, показывающий, что отображается номер эффекта и папки
Expand Down Expand Up @@ -299,6 +299,15 @@ IPAddress Subnet;//(255,255,255,0); // Маска подсети
IPAddress DNS1;//(208,67,222,222); // Серверы DNS. Можно также DNS1(1,1,1,1) или DNS1(8,8,4,4);
IPAddress DNS2(8,8,8,8); // Резервный DNS

uint8_t C_flag = 0;
uint16_t current_limit; // Лимит настраиваемого тока
uint8_t last_minute; // минуты
uint8_t hours; // часы
//uint8_t last_hours;
uint8_t m_date,d_date; // дата
uint8_t AutoBrightness; // Автояркость on/off
uint8_t last_day_night = 0;

void setup() //================================================================== void setup() =========================================================================
{

Expand Down Expand Up @@ -393,6 +402,7 @@ void setup() //================================================================
SpeedRunningText = jsonReadtoInt(configSetup, "spt"); // Скорость бегущей строки
ColorRunningText = jsonReadtoInt(configSetup, "sct"); // Цвет бегущей строки
ColorTextFon = jsonReadtoInt(configSetup, "ctf"); // Выводить бегущую строку на цветном фоне
AutoBrightness = jsonReadtoInt(configSetup, "auto_bri"); // Автоматическое понижение яркости on/off
#ifdef USE_NTP
(jsonRead(configSetup, "ntp")).toCharArray (NTP_ADDRESS, (jsonRead(configSetup, "ntp")).length()+1);
#endif
Expand All @@ -413,6 +423,8 @@ void setup() //================================================================
alarm_advert_sound_on = jsonReadtoInt(configSetup,"on_alm_adv");
night_advert_volume = jsonReadtoInt(configSetup,"night_vol");
Equalizer = jsonReadtoInt(configSetup, "eq");
send_sound = jsonReadtoInt(configSetup, "s_s");
send_eff_volume = jsonReadtoInt(configSetup, "s_e_v");
#endif //MP3_TX_PIN
{
String configHardware = readFile(F("hardware_config.json"), 1024);
Expand Down Expand Up @@ -583,27 +595,28 @@ void setup() //================================================================
// WI-FI

LOG.printf_P(PSTR("\nРабочий режим лампы: ESP_MODE = %d\n"), espMode);

//Запускаем WIFI
//Запускаем WIFI
LOG.println(F("Старуем WIFI"));

WiFi.persistent(false); // Побережём EEPROM

if (espMode == 0U) // режим WiFi точки доступа
{
// Отключаем WIFI
WiFi.disconnect();
// Меняем режим на режим точки доступа
WiFi.mode(WIFI_AP);
// Задаем настройки сети
// Отключаем WIFI
WiFi.disconnect();
// Меняем режим на режим точки доступа
WiFi.mode(WIFI_AP);
// Задаем настройки сети
if (sizeof(AP_STATIC_IP))
{
WiFi.softAPConfig(
IPAddress(AP_STATIC_IP[0], AP_STATIC_IP[1], AP_STATIC_IP[2], AP_STATIC_IP[3]), // IP адрес WiFi точки доступа
IPAddress(AP_STATIC_IP[0], AP_STATIC_IP[1], AP_STATIC_IP[2], 1), // первый доступный IP адрес сети
IPAddress(255, 255, 255, 0)); // маска подсети
}
// Включаем WIFI в режиме точки доступа с именем и паролем
// хронящихся в переменных _ssidAP _passwordAP в фвйле config.json
WiFi.softAP(AP_NAME, AP_PASS);
// Включаем WIFI в режиме точки доступа с именем и паролем
// хронящихся в переменных _ssidAP _passwordAP в фвйле config.json
WiFi.softAP(AP_NAME, AP_PASS);
LOG.print(F("Старт WiFi в режиме точки доступа\n"));
LOG.print(F("IP адрес: "));
LOG.println(WiFi.softAPIP());
Expand All @@ -613,56 +626,38 @@ void setup() //================================================================
LOG.println(system_get_free_heap_size());
LOG.println (F("*******************************************"));
#endif
connect = true;
connect = true;
delay (100);
}
else // режим WiFi клиента. Подключаемся к роутеру
{
LOG.print(F("\nПодключение к сети "));

LOG.println(F("Старт WiFi в режиме клиента (подключение к роутеру)"));
// WIFI_start_station_mode ();


WiFi.persistent(false);

// Попытка подключения к Роутеру
{
WiFi.mode(WIFI_STA);
String _ssid = jsonRead(configSetup, "ssid");
LOG.println(_ssid);
char* Pass_STA = new char[64];
char* SSID_STA = new char[32];
_ssid.toCharArray(SSID_STA, _ssid.length()+1);
#ifdef GENERAL_DEBUG
LOG.print("\nPass_STA = ");
#endif
for (uint8_t address = 0; address < 64; address ++){
Pass_STA[address] = EEPROM.read(EEPROM_PASSWORD_START_ADDRESS + address);
#ifdef GENERAL_DEBUG
LOG.print(Pass_STA[address]);
#endif
if (Pass_STA[address] == 0) break;
}
#ifdef GENERAL_DEBUG
LOG.println( );
#endif
if (_ssid == "") {
espMode = 0;
jsonWrite(configSetup, "ESP_mode", (int)espMode);
saveConfig();
ESP.restart();
String _password = jsonRead(configSetup, "password");
if (_ssid == "" && _password == "") {
espMode = 0;
jsonWrite(configSetup, "ESP_mode", (int)espMode);
saveConfig();
ESP.restart();
}
else
{
else {

if(use_static_ip)
{
WiFi.config(Static_IP, Gateway, Subnet, DNS1, DNS2); // Конфигурация под статический IP Address
}
delay(10);
WiFi.begin(SSID_STA, Pass_STA); //WiFi.begin(_ssid.c_str(), _password.c_str()); //
delete [] Pass_STA;
delete [] SSID_STA;
WiFi.begin(_ssid.c_str(), _password.c_str());
}
}
delay (10);
delay (10);
#ifdef USE_BLYNK
Blynk.config(USE_BLYNK, "blynk.tk", 8080);
#endif
Expand Down Expand Up @@ -883,7 +878,7 @@ do { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=========
#ifdef USE_BLYNK
updateRemoteBlynkParams();
#endif
FastLED.setBrightness(modes[currentMode].Brightness);
SetBrightness(modes[currentMode].Brightness);
}

#if USE_MQTT
Expand Down
Loading

0 comments on commit 68e0009

Please sign in to comment.