UStawienie anyklikania
Automatyczne yłączenie ledów przy braku oświetlenia Automatyczne wyłączenie wiatraka gdy brakuje wody
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
#include "DHT.h"
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
#include <BH1750.h>
|
||||
#define Version "0.3.3"
|
||||
#define Version "0.3.4"
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ const uint8_t ledMap[LED_COUNT] = { 3, 0, 1, 8, 2, 5, 4, 7, 6 };
|
||||
#define WTR_LVL 33 //GPIO33 D33
|
||||
// SDA D21
|
||||
// SCL D22
|
||||
#define DIMM_MAX_VALUE 3 // docelowo 4, tylko na testy
|
||||
#define DIMM_MAX_VALUE 4 //
|
||||
|
||||
//NEO PIXEL ARDESES:
|
||||
#define NEOPXL_MULTIPLIER 25
|
||||
@@ -77,8 +77,8 @@ bool turnOnFlag = true;
|
||||
int8_t resetVal = 0;
|
||||
int8_t fanSpeedVal = 1;
|
||||
int8_t hygrostatVal = 55;
|
||||
int8_t dimmStep = 1;
|
||||
int8_t dimmVal = 1;
|
||||
int8_t dimmStep = 3;
|
||||
int8_t dimmVal ;
|
||||
int8_t waterLvlVal = 0;
|
||||
int8_t photoVal = 0;
|
||||
float temp = 0.0;
|
||||
@@ -103,6 +103,11 @@ int8_t neoPixelWaterLvlR = 1;
|
||||
int8_t neoPixelWaterLvlG = 1;
|
||||
int8_t neoPixelWaterLvlB = 1;
|
||||
int8_t neoPixelTank = 1;
|
||||
uint8_t LastSpdInpt = 0;
|
||||
unsigned long spdInptTimeStamp = 0;
|
||||
int changeSpdDelay = 30000; //interwał zmiany predkości - nie mniej niż wartość milisekund
|
||||
int8_t wtrLvlOff = 0;
|
||||
int8_t nightMode = 0;
|
||||
|
||||
|
||||
|
||||
@@ -118,28 +123,45 @@ void IRAM_ATTR speedButtonFcn() {
|
||||
if (fanSpeedVal >= 3) {
|
||||
fanSpeedVal = 1;
|
||||
}
|
||||
spdInptTimeStamp = millis() - changeSpdDelay;
|
||||
}
|
||||
void IRAM_ATTR hygrostatButtonFcn() {
|
||||
hygrostatVal = hygrostatVal + 5;
|
||||
if (hygrostatVal > 65) {
|
||||
hygrostatVal = 45;
|
||||
}
|
||||
spdInptTimeStamp = millis() - changeSpdDelay;
|
||||
}
|
||||
|
||||
void setFanSpeed(uint8_t spdInpt) {
|
||||
if (spdInpt == 1) {
|
||||
digitalWrite(PIN_SPEED_2, LOW);
|
||||
delay(300);
|
||||
digitalWrite(PIN_SPEED_1, HIGH);
|
||||
} else if (spdInpt == 2) {
|
||||
digitalWrite(PIN_SPEED_1, LOW);
|
||||
delay(300);
|
||||
digitalWrite(PIN_SPEED_2, HIGH);
|
||||
} else {
|
||||
digitalWrite(PIN_SPEED_1, LOW);
|
||||
delay(300);
|
||||
digitalWrite(PIN_SPEED_2, LOW);
|
||||
// if (wtrLvlOff == 1) { dokomentować do testów wody
|
||||
// spdInpt = 0;
|
||||
// }
|
||||
|
||||
if (nightMode == 1 && spdInpt == 2 ){
|
||||
spdInpt = 1;
|
||||
}
|
||||
|
||||
if ( millis() > (spdInptTimeStamp + changeSpdDelay)) {
|
||||
if (LastSpdInpt != spdInpt) {
|
||||
if (spdInpt == 1) {
|
||||
digitalWrite(PIN_SPEED_2, LOW);
|
||||
digitalWrite(PIN_SPEED_1, HIGH);
|
||||
LastSpdInpt = spdInpt;
|
||||
spdInptTimeStamp = millis();
|
||||
} else if (spdInpt == 2) {
|
||||
digitalWrite(PIN_SPEED_1, LOW);
|
||||
digitalWrite(PIN_SPEED_2, HIGH);
|
||||
LastSpdInpt = spdInpt;
|
||||
spdInptTimeStamp = millis();
|
||||
} else {
|
||||
digitalWrite(PIN_SPEED_1, LOW);
|
||||
digitalWrite(PIN_SPEED_2, LOW);
|
||||
LastSpdInpt = spdInpt;
|
||||
spdInptTimeStamp = millis();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void rainbowCycle(uint8_t wait) {
|
||||
@@ -179,6 +201,20 @@ uint32_t Wheel(byte pos) {
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
|
||||
pinMode(BTN_RST, INPUT);
|
||||
pinMode(BTN_DIMM, INPUT);
|
||||
pinMode(BTN_SPEED, INPUT);
|
||||
pinMode(BTN_HYGRSTT, INPUT);
|
||||
pinMode(PIN_SPEED_1, OUTPUT);
|
||||
pinMode(PIN_SPEED_2, OUTPUT);
|
||||
digitalWrite(PIN_SPEED_1, LOW);
|
||||
digitalWrite(PIN_SPEED_2, LOW);
|
||||
pinMode(LED_RED_TANK, OUTPUT);
|
||||
pinMode(LED_WHT_TANK, OUTPUT);
|
||||
pinMode(IN_PHOTOTRA, INPUT_PULLDOWN);
|
||||
pinMode(WTR_LVL, INPUT);
|
||||
|
||||
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
|
||||
Serial.println(F("SSD1306 allocation failed"));
|
||||
}
|
||||
@@ -192,18 +228,6 @@ void setup() {
|
||||
display.println(Version);
|
||||
display.display();
|
||||
|
||||
// delay(500);
|
||||
pinMode(BTN_RST, INPUT);
|
||||
pinMode(BTN_DIMM, INPUT);
|
||||
pinMode(BTN_SPEED, INPUT);
|
||||
pinMode(BTN_HYGRSTT, INPUT);
|
||||
pinMode(PIN_SPEED_1, OUTPUT);
|
||||
pinMode(PIN_SPEED_2, OUTPUT);
|
||||
pinMode(LED_RED_TANK, OUTPUT);
|
||||
pinMode(LED_WHT_TANK, OUTPUT);
|
||||
pinMode(IN_PHOTOTRA, INPUT_PULLDOWN);
|
||||
pinMode(WTR_LVL, INPUT);
|
||||
|
||||
attachInterrupt(digitalPinToInterrupt(BTN_DIMM), dimmButtonFcn, FALLING);
|
||||
attachInterrupt(digitalPinToInterrupt(BTN_SPEED), speedButtonFcn, FALLING);
|
||||
attachInterrupt(digitalPinToInterrupt(BTN_HYGRSTT), hygrostatButtonFcn, FALLING);
|
||||
@@ -222,6 +246,7 @@ void setup() {
|
||||
} else {
|
||||
dimmVal = 24;
|
||||
}
|
||||
} //setup end
|
||||
void loop() {
|
||||
// ###################################################
|
||||
// WYŚWIETLACZ
|
||||
@@ -340,11 +365,11 @@ void loop() {
|
||||
} else if (dimmStep == 1) {
|
||||
dimmVal = 1;
|
||||
} else if (dimmStep == 2) {
|
||||
dimmVal = 6;
|
||||
dimmVal = 2;
|
||||
} else if (dimmStep == 3) {
|
||||
dimmVal = 12;
|
||||
dimmVal = 4;
|
||||
} else {
|
||||
dimmVal = 24;
|
||||
dimmVal = 8;
|
||||
}
|
||||
|
||||
// Ustawianie LED docelowych wartości
|
||||
@@ -424,7 +449,7 @@ void loop() {
|
||||
neoPixelWaterLvlB = 0;
|
||||
analogWrite(LED_WHT_TANK, dimmVal * 8);
|
||||
analogWrite(LED_RED_TANK, 0);
|
||||
// tu set fan
|
||||
wtrLvlOff = 1;
|
||||
}
|
||||
if (waterLvlVal < 40 && waterLvlVal >= 25) { //a bit of water TANK
|
||||
neoPixelWaterLvlR = 10;
|
||||
@@ -432,6 +457,8 @@ void loop() {
|
||||
neoPixelWaterLvlB = 0;
|
||||
analogWrite(LED_WHT_TANK, 0);
|
||||
analogWrite(LED_RED_TANK, dimmVal * 8);
|
||||
wtrLvlOff = 0;
|
||||
|
||||
}
|
||||
if (waterLvlVal <= 24) { // FULL TANK
|
||||
neoPixelWaterLvlR = neoPixelRed;
|
||||
@@ -439,7 +466,7 @@ void loop() {
|
||||
neoPixelWaterLvlB = neoPixelBlue;
|
||||
analogWrite(LED_WHT_TANK, 0);
|
||||
analogWrite(LED_RED_TANK, dimmVal * 8);
|
||||
// tu set fan
|
||||
wtrLvlOff = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -451,6 +478,12 @@ void loop() {
|
||||
neoPixelFilter = 1;
|
||||
}
|
||||
|
||||
if ( lux < 0.5 ) {
|
||||
dimmVal = 0;
|
||||
nightMode = 1;
|
||||
} else {
|
||||
nightMode = 0;
|
||||
}
|
||||
|
||||
|
||||
//NEOPIXELS
|
||||
|
||||
Reference in New Issue
Block a user