From 08d5d6022a86341246b7ac5250433771820f173c Mon Sep 17 00:00:00 2001 From: gunner47 Date: Thu, 24 Oct 2019 12:25:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20=D1=81=D0=B8=D0=B3?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D0=B0=20(HIGH/LOW=20-=20=D0=BD=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D0=B8=D0=B2=D0=B0=D0=B5=D1=82=D1=81=D1=8F)?= =?UTF-8?q?=20=D1=81=D0=B8=D0=BD=D1=85=D1=80=D0=BE=D0=BD=D0=BD=D0=BE=20?= =?UTF-8?q?=D1=81=20=D0=B2=D0=BA=D0=BB/=D0=B2=D1=8B=D0=BA=D0=BB=20=D0=BC?= =?UTF-8?q?=D0=B0=D1=82=D1=80=D0=B8=D1=86=D1=8B=20=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=B8=D0=BD=20MOSFET=20=D1=82=D1=80=D0=B0=D0=BD=D0=B7=D0=B8?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D1=80=D0=B0;=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20?= =?UTF-8?q?=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D0=BB=D0=B0=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=20=D0=B1=D1=83=D0=B4=D0=B8=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=20(=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BC=D0=B8=D0=BD=D1=83=D1=82=D1=83=20=D0=B5?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=81=D1=80=D0=B0=D0=B1=D0=B0=D1=82=D1=8B=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/GyverLamp_v1.4/Constants.h | 8 ++++++-- firmware/GyverLamp_v1.4/GyverLamp_v1.4.ino | 19 +++++++++++++++++++ firmware/GyverLamp_v1.4/effectTicker.ino | 4 ++++ firmware/GyverLamp_v1.4/time.ino | 11 +++++++++++ 4 files changed, 40 insertions(+), 2 deletions(-) diff --git a/firmware/GyverLamp_v1.4/Constants.h b/firmware/GyverLamp_v1.4/Constants.h index 79b19f1..03108d6 100644 --- a/firmware/GyverLamp_v1.4/Constants.h +++ b/firmware/GyverLamp_v1.4/Constants.h @@ -23,8 +23,12 @@ uint8_t espMode = ESP_MODE; // ESP_MODE може #ifdef OTA #define ESP_OTA_PORT (8266U) // номер порта, который будет "прослушиваться" в ожидании команды прошивки по воздуху #endif -#define LED_PIN (2U) // пин ленты -#define BTN_PIN (4U) // пин кнопки +#define LED_PIN (2U) // пин ленты (D4) +#define BTN_PIN (4U) // пин кнопки (D2) +#define MOSFET_PIN (5U) // пин MOSFET транзистора (D1) - может быть использован для управления питанием матрицы/ленты +#define ALARM_PIN (16U) // пин состояния будильника (D0) - может быть использован для управления каким-либо внешним устройством на время работы будильника +#define MOSFET_LEVEL (HIGH) // логический уровень, в который будет установлен пин MOSFET_PIN, когда матрица включена - HIGH или LOW +#define ALARM_LEVEL (HIGH) // логический уровень, в который будет установлен пин ALARM_PIN, когда "рассвет"/будильник включен // --- ESP (WiFi клиент) --------------- const uint8_t STA_STATIC_IP[] = {}; // статический IP адрес: {} - IP адрес определяется роутером; {192, 168, 1, 66} - IP адрес задан явно (если DHCP на роутере не решит иначе); должен быть из того же диапазона адресов, что разадёт роутер diff --git a/firmware/GyverLamp_v1.4/GyverLamp_v1.4.ino b/firmware/GyverLamp_v1.4/GyverLamp_v1.4.ino index 2fa3d89..e1db891 100644 --- a/firmware/GyverLamp_v1.4/GyverLamp_v1.4.ino +++ b/firmware/GyverLamp_v1.4/GyverLamp_v1.4.ino @@ -96,6 +96,9 @@ - Добавлены "ночные часы" (от NIGHT_HOURS_START до NIGHT_HOURS_STOP включительно) и "дневные часы" (всё остальное время), для которых доступна регулировка яркости для вывода времени бегущей строкой - NIGHT_HOURS_BRIGHTNESS и DAY_HOURS_BRIGHTNESS --- 20.10.2019 - Добавлена блокировка кнопки на лампе из android приложения; сохраняется в EEPROM память + --- 24.10.2019 + - Добавлен вывод сигнала (HIGH/LOW - настраивается константой MOSFET_LEVEL) синхронно с включением матрицы на пин MOSFET транзистора (настраивается константой MOSFET_PIN) + - Добавлен вывод сигнала (HIGH/LOW - настраивается константой ALARM_LEVEL) на пин будильника (настраивается константой ALARM_PIN); сигнал подаётся в течение одной минуты, начиная со времени, на которое заведён будильник */ // Ссылка для менеджера плат: @@ -215,6 +218,22 @@ void setup() ESP.wdtEnable(WDTO_8S); + // ПИНЫ + #ifdef MOSFET_PIN // инициализация пина, управляющего MOSFET транзистором в состояние "выключен" + pinMode(MOSFET_PIN, OUTPUT); + #ifdef MOSFET_LEVEL + digitalWrite(MOSFET_PIN, !MOSFET_LEVEL); + #endif + #endif + + #ifdef ALARM_PIN // инициализация пина, управляющего будильником в состояние "выключен" + pinMode(ALARM_PIN, OUTPUT); + #ifdef ALARM_LEVEL + digitalWrite(ALARM_PIN, !ALARM_LEVEL); + #endif + #endif + + // TELNET #if defined(GENERAL_DEBUG) && GENERAL_DEBUG_TELNET telnetServer.begin(); diff --git a/firmware/GyverLamp_v1.4/effectTicker.ino b/firmware/GyverLamp_v1.4/effectTicker.ino index c2dc945..04c097c 100644 --- a/firmware/GyverLamp_v1.4/effectTicker.ino +++ b/firmware/GyverLamp_v1.4/effectTicker.ino @@ -69,6 +69,10 @@ void changePower() delay(2); FastLED.show(); } + + #if defined(MOSFET_PIN) && defined(MOSFET_LEVEL) // установка сигнала в пин, управляющий MOSFET транзистором, соответственно состоянию вкл/выкл матрицы + digitalWrite(MOSFET_PIN, ONflag ? MOSFET_LEVEL : !MOSFET_LEVEL); + #endif TimerManager::TimerRunning = false; TimerManager::TimerHasFired = false; diff --git a/firmware/GyverLamp_v1.4/time.ino b/firmware/GyverLamp_v1.4/time.ino index 3471b3c..34f0058 100644 --- a/firmware/GyverLamp_v1.4/time.ino +++ b/firmware/GyverLamp_v1.4/time.ino @@ -95,6 +95,13 @@ void timeTick() delay(1); FastLED.show(); dawnFlag = true; + + #if defined(ALARM_PIN) && defined(ALARM_LEVEL) // установка сигнала в пин, управляющий будильником + if (thisTime == alarms[thisDay].Time) // установка, только в минуту, на которую заведён будильник + { + digitalWrite(ALARM_PIN, ALARM_LEVEL); + } + #endif } } else @@ -115,6 +122,10 @@ void timeTick() dawnColorMinus4 = CHSV(0, 0, 0); dawnColorMinus5 = CHSV(0, 0, 0); dawnCounter = 0; + + #if defined(ALARM_PIN) && defined(ALARM_LEVEL) // установка сигнала в пин, управляющий будильником + digitalWrite(ALARM_PIN, !ALARM_LEVEL); + #endif } } }