diff --git a/WifiControlSensor/MQTT.h b/WifiControlSensor/MQTT.h index a3544db..d3003a0 100644 --- a/WifiControlSensor/MQTT.h +++ b/WifiControlSensor/MQTT.h @@ -11,4 +11,5 @@ int MqttDryPublish(int dry); int MqttIPPublish(const String &ip); void MqttCheckSubscription(); void MqttChangeGpioValue(int gpio, int value); +void MqttChangePWMValue(int gpio, int value); bool MqttIsConfigured(); diff --git a/WifiControlSensor/WebServer.ino b/WifiControlSensor/WebServer.ino index fa6f716..e2b3f67 100644 --- a/WifiControlSensor/WebServer.ino +++ b/WifiControlSensor/WebServer.ino @@ -1,6 +1,8 @@ const int gpioWebConf[] = CONFIG_WEB_CONTROLLED_GPIO; +const int pwmWebConf[] = CONFIG_CONTROLLED_PWM; String gpioControlHTML = ""; +String pwmControlHTML = ""; void WebHandleRoot() { @@ -20,7 +22,7 @@ void WebHandleRoot() { #ifdef CONFIG_ENABLE_DRY_SENSOR "Dryness " + String((dryness*100)/1024) + "%
" #endif - "" + gpioControlHTML + "
" + "
" + gpioControlHTML + pwmControlHTML + "
" "Settings" "Enter Setup
" "Put device in OTA mode
" @@ -120,6 +122,16 @@ void WebHandleGpio() { server.send(200, "text/html", "

GPIO" + server.arg("gpio") + " changed to " + server.arg("value") + "

"); } +void WebHandlePWM() { + if (!server.hasArg("gpio") || !server.hasArg("value")) { + server.send(500, "text/plain", "Bad arguments\r\n"); + return; + } + + MqttChangePWMValue(server.arg("gpio").toInt(), server.arg("value").toInt()); + server.send(200, "text/html", "

PWM" + server.arg("gpio") + " changed to " + server.arg("value") + "

"); +} + boolean WebSetIp(IPAddress &addr, const char *id, const char *error) { if (server.arg(id) != "" && !addr.fromString(server.arg(id).c_str())) { WebSendError(error); @@ -247,13 +259,35 @@ void WebBuildGpioControl(){ } } +void WebBuildPwmControl(){ + if (NB_ELEMENTS(pwmWebConf) > 0){ + pwmControlHTML += "
" + "PWM"; + for (uint i = 0 ; i < NB_ELEMENTS(pwmWebConf) ; i++) { + pwmControlHTML += "PWM " + String(pwmWebConf[i]) + "
"; + pwmControlHTML += ""; + } + pwmControlHTML += ""; + pwmControlHTML += "
"; + } +} + void WebSetupServer(int ) { WebBuildGpioControl(); + WebBuildPwmControl(); server.on("/", WebHandleRoot); server.on("/setup", WebHandleSetup); server.on("/save", WebHandleSave); server.on("/gpio", WebHandleGpio); + server.on("/pwm", WebHandlePWM); server.on("/otamode", WebHandleOTA); server.on("/reboot", WebHandleReboot); server.on("/wifiStatus", WebHandleWifiStatus);