firmware wip - begin to write pump watering stuff

This commit is contained in:
Marcus 2024-06-16 03:09:50 +02:00
parent a0f3db9a77
commit d6bd0f7638
5 changed files with 39 additions and 20 deletions

View file

@ -74,6 +74,9 @@ a:active {
width: 42px; width: 42px;
} }
.helpbox {
font-size: 0.8em;
}
.nav { .nav {
background: #333; background: #333;
width: 100%; width: 100%;

View file

@ -81,11 +81,11 @@ byte MoistureSensor_Type;
// SoilmoistureLow - contains the value , when soil moisture is assumed to be low, // SoilmoistureLow - contains the value , when soil moisture is assumed to be low,
byte SoilmoistureLow = 80; byte SoilmoistureLow = 80;
// UsePump - is the pump used? bool // UsePump - is the pump used? bool
bool UsePump; byte UsePump;
// UseFan - is the fan used? bool // UseFan - is the fan used? bool
// PumpOnTime in seconds // PumpOnTime in seconds
byte PumpOnTime = 3; byte PumpOnTime = 3;
bool UseFan; byte UseFan;
// In case the user uses no 12V LED on the LED output and an relais instead // In case the user uses no 12V LED on the LED output and an relais instead
// we have to disable PWM. So we ask here for what kind of light user is going // we have to disable PWM. So we ask here for what kind of light user is going
bool UseLEDrelais; bool UseLEDrelais;
@ -94,12 +94,10 @@ bool UseFANrelais;
byte TemperatureSensor_Type; byte TemperatureSensor_Type;
unsigned short MaintenanceDuration = 300; unsigned short MaintenanceDuration = 300;
char Esp32CamIP[16]; char Esp32CamIP[16];
// PumpInterval (int) in days
byte PumpInterval;
// PumpLastOn (long) timestamp // PumpLastOn (long) timestamp
unsigned long PumpLastOn; unsigned long PumpLastOn;
// PumpMode (short) 1: Pump on every n days, 2: Pump on when Soilmoisture <= SoilmoistureLow, 3: Both // PumpMode (short) 1: Pump on every n days, 2: Pump on when Soilmoisture <= SoilmoistureLow, 3: Both
byte PumpMode; byte PumpMode = 1;
// //
// Grow Stuff // Grow Stuff
@ -134,6 +132,10 @@ byte PinFANPWM = 255;
bool SunFade; bool SunFade;
byte SunFadeDuration = 30; byte SunFadeDuration = 30;
// PumpIntervalVeg (int) in days
byte PumpIntervalVeg = 5;
byte PumpIntervalBloom = 3;
/* /*
* *
* NTP * NTP

View file

@ -104,9 +104,9 @@ bool loadEEPROM() {
* 218 SunFadeDuration * 218 SunFadeDuration
* 219 MaintenanceDuration (2 byte) * 219 MaintenanceDuration (2 byte)
* 221 Esp32CamIP (16 byte) * 221 Esp32CamIP (16 byte)
* 237 PumpInterval (1 byte) * 237 PumpLastOn (4 byte)
* 238 PumpLastOn (4 byte) * 241 PumpIntervalVeg (1 byte)
* 242 PumpMode (1 byte) * 242 PumpIntervalVeg (1 byte)
* 243 ... * 243 ...
* *
*/ */
@ -170,11 +170,9 @@ bool loadEEPROM() {
// size is 2 byte // size is 2 byte
EEPROM.get(219, MaintenanceDuration); EEPROM.get(219, MaintenanceDuration);
// size is 16 byte // size is 16 byte
EEPROM.get(237, Esp32CamIP); EEPROM.get(221, Esp32CamIP);
// size is 1 byte
EEPROM.get(237, PumpInterval);
// size is 4 byte // size is 4 byte
EEPROM.get(238, PumpLastOn); EEPROM.get(237, PumpLastOn);
// size is 1 byte // size is 1 byte
EEPROM.get(242, PumpMode); EEPROM.get(242, PumpMode);
} }
@ -211,6 +209,8 @@ bool loadEEPROM() {
EEPROM.get(216, PinFANPWM); EEPROM.get(216, PinFANPWM);
EEPROM.get(217, SunFade); EEPROM.get(217, SunFade);
EEPROM.get(218, SunFadeDuration); EEPROM.get(218, SunFadeDuration);
// size is 1 byte
EEPROM.get(237, PumpIntervalVeg);
} }

View file

@ -1,5 +1,5 @@
/* CanGrow_Version.h gets generated from cangrow.sh */ /* CanGrow_Version.h gets generated from cangrow.sh */
const char* CanGrowVer = "0.1-dev"; const char* CanGrowVer = "0.1-dev";
const char* CanGrowBuild = "064db73"; const char* CanGrowBuild = "a0f3db9";

View file

@ -551,18 +551,31 @@ void WEBsystemSettings() {
body += "<form method='post' action='/systemSettings/save'>\n"; body += "<form method='post' action='/systemSettings/save'>\n";
// UseFan bool // UseFan bool
body += "Use FAN: <select id='UseFan' name='UseFan' required>\n"; body += "Fan mode: <select id='UseFan' name='UseFan' required>\n";
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";} if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
body += "<option value='1'" + returnStrSelected(UseFan, 1) + ">Yes</option>\n"; body += "<option value='1'" + returnStrSelected(UseFan, 0) + ">Off</option>\n";
body += "<option value='0'" + returnStrSelected(UseFan, 0) + ">No</option>\n"; body += "<option value='1'" + returnStrSelected(UseFan, 1) + ">Use</option>\n";
body += "<option value='0'" + returnStrSelected(UseFan, 2) + ">Do not use</option>\n";
body += "</select><br>\n"; body += "</select><br>\n";
/*
// UsePump bool // UsePump bool
body += "Use PUMP: <select id='UsePump' name='UsePump' required>\n"; body += "Use PUMP: <select id='UsePump' name='UsePump' required>\n";
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";} if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
body += "<option value='1'" + returnStrSelected(UsePump, 1) + ">Yes</option>\n"; body += "<option value='1'" + returnStrSelected(UsePump, 1) + ">Yes</option>\n";
body += "<option value='0'" + returnStrSelected(UsePump, 0) + ">No</option>\n"; body += "<option value='0'" + returnStrSelected(UsePump, 0) + ">No</option>\n";
body += "</select><br>\n"; body += "</select><br>\n";
*/
// PumpMode byte
body += "Pump mode: <select id='UsePump' name='UsePump' required>\n";
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
body += "<option value='1'" + returnStrSelected(UsePump, 0) + ">Off</option>\n";
body += "<option value='1'" + returnStrSelected(UsePump, 1) + ">1</option>\n";
body += "<option value='1'" + returnStrSelected(UsePump, 2) + ">2</option>\n";
body += "<option value='0'" + returnStrSelected(UsePump, 3) + ">3</option>\n";
body += "</select><br><p class='helpbox'><b>1:</b> Water every few days.<br> \
<b>2:</b> Water if the soil moisture falls below <i>Soilmoisture low</i> value<br> \
<b>3:</b> Water every few days if the soil moisture falls below <i>Soilmoisture low</i> value.</p>\n";
// UseLEDrelais bool // UseLEDrelais bool
body += "Use relais for LED: <select id='UseLEDrelais' name='UseLEDrelais' required>\n"; body += "Use relais for LED: <select id='UseLEDrelais' name='UseLEDrelais' required>\n";
@ -584,6 +597,7 @@ void WEBsystemSettings() {
body += PumpOnTime; body += PumpOnTime;
body += "' required> Seconds<br>\n"; body += "' required> Seconds<br>\n";
// MoistureSensor_Type byte // MoistureSensor_Type byte
body += "Soilmoisture sensor: <select id='MoistureSensor_Type' name='MoistureSensor_Type' required>\n"; body += "Soilmoisture sensor: <select id='MoistureSensor_Type' name='MoistureSensor_Type' required>\n";
if(configured == false) { if(configured == false) {