LEdu nastawu wilgotności i poziomu wilgotnosci

drobnica
This commit is contained in:
sieja
2025-07-22 10:16:07 +02:00
parent a9fba3267d
commit f650e12e80

View File

@@ -5,7 +5,7 @@
#include "DHT.h"
#include <Adafruit_NeoPixel.h>
#include <BH1750.h>
#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();