LEdu nastawu wilgotności i poziomu wilgotnosci
drobnica
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user