From ce55c874ec3c7e36c12a8cfd76c00e83307a964d Mon Sep 17 00:00:00 2001 From: Marcus Date: Thu, 18 Apr 2024 02:13:05 +0200 Subject: [PATCH] firmware wip --- Arduino/CanGrow/CanGrow.ino | 66 +++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/Arduino/CanGrow/CanGrow.ino b/Arduino/CanGrow/CanGrow.ino index 19b42e9..bea7945 100644 --- a/Arduino/CanGrow/CanGrow.ino +++ b/Arduino/CanGrow/CanGrow.ino @@ -80,7 +80,7 @@ char WebUiPassword[32] = "cangrow"; // configured - if false, let the user configure system settings first bool configured = false; // NTP Offset -int ntpOffset = 0; +int ntpOffset; // MoistureSensor_Type - contains which moisture sensor to use // 1: analog capacitive sensor // 2: I2C chirp sensor from catnip electronics @@ -1037,7 +1037,10 @@ void WebHandler() { // failed whole page every call. we can save up this 0,5kb traffic :o) webserver.on("/favicon.ico", [](){ webserver.send(404, "text/html", "404 - not found"); }); webserver.onNotFound(WEB404); - + + // switching MOSFETs + webserver.on("/switch", HTTP_POST, POSTswitchMOSFET); + } void WebRestart() { @@ -1245,7 +1248,28 @@ void WEBroot() { } } + + body += "
"; + body += "MOSFET
"; + + body += "On/Off:
\n"; + body += "\n"; + body += "
"; + + body += "

"; + + body += returnHTMLfooter(); webserver.send(200, "text/html", body); @@ -1529,7 +1553,7 @@ void POSTgrowSettings() { - analogWrite(PINled, PINled_PWM); + //analogWrite(PINled, PINled_PWM); Serial.println(":: POSTgrowSettings ::"); @@ -1678,7 +1702,43 @@ void POSTwifiSettings() { webserver.send(302, "text/plain", "wifiSettings/save: success!"); } + +void POSTswitchMOSFET() { + byte MosfetState = webserver.arg("state").toInt(); + byte MosfetNr = webserver.arg("output").toInt(); + Serial.println(":: GETswitchMOSFET ::"); + Serial.print("MosfetState: "); + Serial.println(MosfetState); + Serial.print("MosfetNr: "); + Serial.println(MosfetNr); + + if((MosfetState > 1) || (MosfetState < 0)) { + webserver.send(400, "text/plain", "not valid\n"); + } else { + switch(MosfetNr) { + case 1: + if( MosfetState == 1) { + analogWrite(PINled, PINled_PWM); + } else { + digitalWrite(PINled, MosfetState); + } + break; + case 2: + digitalWrite(PINpump, MosfetState); + break; + case 3: + digitalWrite(PINfan, MosfetState); + break; + default: + webserver.send(400, "text/plain", "not valid\n"); + break; + } + webserver.sendHeader("Location", String("/?success"), true); + webserver.send(302, "text/plain", "wifiSettings/save: success!"); + } +} + /* String JSreplaceStr(String elementID, String content) { String jsReturn = "";