diff --git a/ESP32/StadlerHomeKitUpgrade/StadlerHomeKitUpgrade.ino b/ESP32/StadlerHomeKitUpgrade/StadlerHomeKitUpgrade.ino index 61108e2..64cdd80 100644 --- a/ESP32/StadlerHomeKitUpgrade/StadlerHomeKitUpgrade.ino +++ b/ESP32/StadlerHomeKitUpgrade/StadlerHomeKitUpgrade.ino @@ -5,7 +5,7 @@ #include "DHT.h" #include #include -#define Version "0.3.1" +#define Version "0.3.3" @@ -39,7 +39,7 @@ const uint8_t ledMap[LED_COUNT] = { 3, 0, 1, 8, 2, 5, 4, 7, 6 }; #define LED_RED_TANK 26 //GPIO25 D25 #define NEOPIXEL 27 //GPIO04 D27 #define IN_PHOTOTRA 12 -#define WTR_LVL 33 //GPIO04 D27 +#define WTR_LVL 33 //GPIO33 D33 #define DIMM_MAX_VALUE 3 // docelowo 4, tylko na testy @@ -80,7 +80,7 @@ float lux = 0.0; //NEOPIXELS VARIABLES int8_t neoPixelSwitch = 1; -int8_t neoPixelRed = 0; +int8_t neoPixelRed = 10; int8_t neoPixelGreen = 10; int8_t neoPixelBlue = 10; @@ -121,29 +121,23 @@ void IRAM_ATTR hygrostatButtonFcn() { void setFanSpeed(uint8_t spdInpt) { if (spdInpt == 1) { - delay(100); digitalWrite(PIN_SPEED_2, LOW); - delay(200); + delay(300); digitalWrite(PIN_SPEED_1, HIGH); - delay(100); } else if (spdInpt == 2) { - delay(100); digitalWrite(PIN_SPEED_1, LOW); - delay(200); + delay(300); digitalWrite(PIN_SPEED_2, HIGH); - delay(100); } else { - delay(100); digitalWrite(PIN_SPEED_1, LOW); - delay(200); + delay(300); digitalWrite(PIN_SPEED_2, LOW); - delay(100); } } void rainbowCycle(uint8_t wait) { uint16_t i, j; - for (j = 0; j < 256 * 3; j++) { // mniej cykli niż 5 — szybciej wraca + for (j = 0; j < 256 * 3; j++) { for (i = 0; i < LED_COUNT; i++) { uint8_t physIndex = ledMap[i]; // mapowanie pozycji logicznej na fizyczną pixels.setPixelColor(physIndex, Wheel((i * 256 / LED_COUNT + j) & 255)); @@ -348,6 +342,7 @@ void loop() { dimmVal = 24; } +// Ustawianie LED docelowych wartości if (hygrostatVal >= 65) { neoPixelLvl_1 = 1; neoPixelLvl_2 = 1; @@ -393,6 +388,23 @@ void loop() { neoPixelLvl_5 = 1; } +// Ustawianie LED osiągniętych wartości + if (hum >= 65 && hygrostatVal >= 65 ) { + neoPixelLvl_5 = 8; + } + if (hum >= 60 && hygrostatVal >= 60) { + neoPixelLvl_4 = 8; + } + if (hum >= 55 && hygrostatVal >= 55) { + neoPixelLvl_3 = 8; + } + if (hum >= 50 && hygrostatVal >= 50) { + neoPixelLvl_2 = 8; + } + if (hum >= 45 && hygrostatVal >= 45) { + neoPixelLvl_1 = 8; + } + // wartości zależne od sposobu zasilania PC/Powerbank/Ładowarka //46-47 - sonda nie dotyka wody @@ -440,14 +452,15 @@ void loop() { // ################################################################# // ################################################################# pixels.clear(); + //(G,R,B) pixels.setPixelColor(ADR_NEOPXL_SPEED_1, pixels.Color(int((neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelSpeed_1) / NON_ACTIVE_LED_DIVIDER), int((neoPixelRed * dimmVal * neoPixelSwitch * neoPixelSpeed_1) / NON_ACTIVE_LED_DIVIDER), int((neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelSpeed_1) / NON_ACTIVE_LED_DIVIDER))); pixels.setPixelColor(ADR_NEOPXL_SPEED_2, pixels.Color(int((neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelSpeed_2) / NON_ACTIVE_LED_DIVIDER), int((neoPixelRed * dimmVal * neoPixelSwitch * neoPixelSpeed_2) / NON_ACTIVE_LED_DIVIDER), int((neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelSpeed_2) / NON_ACTIVE_LED_DIVIDER))); pixels.setPixelColor(ADR_NEOPXL_FILTER, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelFilter, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelFilter, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelFilter)); - pixels.setPixelColor(ADR_NEOPXL_L1, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_1, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_1, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_1)); - pixels.setPixelColor(ADR_NEOPXL_L2, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_2, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_2, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_2)); - pixels.setPixelColor(ADR_NEOPXL_L3, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_3, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_3, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_3)); - pixels.setPixelColor(ADR_NEOPXL_L4, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_4, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_4, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_4)); - pixels.setPixelColor(ADR_NEOPXL_L5, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_5, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_5, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_5)); + pixels.setPixelColor(ADR_NEOPXL_L1, pixels.Color(int(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_1/ NON_ACTIVE_LED_DIVIDER), int(neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_1/ NON_ACTIVE_LED_DIVIDER), int(neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_1 / NON_ACTIVE_LED_DIVIDER))); + pixels.setPixelColor(ADR_NEOPXL_L2, pixels.Color(int(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_2/ NON_ACTIVE_LED_DIVIDER), int(neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_2/ NON_ACTIVE_LED_DIVIDER), int(neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_2 / NON_ACTIVE_LED_DIVIDER))); + pixels.setPixelColor(ADR_NEOPXL_L3, pixels.Color(int(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_3/ NON_ACTIVE_LED_DIVIDER), int(neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_3/ NON_ACTIVE_LED_DIVIDER), int(neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_3 / NON_ACTIVE_LED_DIVIDER))); + pixels.setPixelColor(ADR_NEOPXL_L4, pixels.Color(int(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_4/ NON_ACTIVE_LED_DIVIDER), int(neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_4/ NON_ACTIVE_LED_DIVIDER), int(neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_4 / NON_ACTIVE_LED_DIVIDER))); + pixels.setPixelColor(ADR_NEOPXL_L5, pixels.Color(int(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_5/ NON_ACTIVE_LED_DIVIDER), int(neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_5/ NON_ACTIVE_LED_DIVIDER), int(neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_5 / NON_ACTIVE_LED_DIVIDER))); pixels.setPixelColor(ADR_NEOPXL_WATERLVL, pixels.Color(dimmVal * neoPixelSwitch * neoPixelWaterLvlG, dimmVal * neoPixelSwitch * neoPixelWaterLvlR, dimmVal * neoPixelSwitch * neoPixelWaterLvlB)); // pixels.setPixelColor(ADR_NEOPXL_TANK, pixels.Color(neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelRed*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelTank)); pixels.show();