void handleRoot() { server.send(200, "text/html", "" "

You are connected


" "Current temperature " + String(temp, 2) + "C
" "Current pressure " + String(pressure, 2) + "mB
" "MQTT Status: " + (MQTT_isConnected() ? "Connected" : "Disconnected") + "
" "BMP 180 (Temp+Pression) Status: " + (isBMPConnected() ? "Connected" : "Disconnected") + "
" "Free space: "+ ESP.getFreeSketchSpace() +"
" "Free heap: "+ ESP.getFreeHeap() +"
" "Setup
" "OTA mode
" "ON
" "OFF
" ); } void handleSetup() { uint8_t mode; char *confSsid = ""; char *confPassword = ""; char *confHost = ""; char *mqttServer = ""; char *mqttUser = ""; char *mqttPasswd = ""; int mqttPort = 1883; readEEPROM(mode, &confSsid, &confPassword, &confHost, &mqttServer, &mqttUser, &mqttPasswd, mqttPort); server.send(200, "text/html", "
" "
" "Wifi configuration:" "
" "
" "
" "
" "
" "MQTT:" "
" "
" "
" "
" "
" "
" "
"); } void handleGpio() { if (!server.hasArg("gpio") || !server.hasArg("value")) { server.send(500, "text/plain", "Bad arguments\r\n"); return; } pinMode(server.arg("gpio").toInt(), OUTPUT); digitalWrite(server.arg("gpio").toInt(), server.arg("value").toInt()); server.send(200, "text/html", "

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

"); } void handleSave() { String password; String ssid; String hostName; String mqttServer; String mqttUser; String mqttPasswd; if (!server.hasArg("ssid") || !server.hasArg("password") || !server.hasArg("host") || !server.hasArg("mqttServer") || !server.hasArg("mqttUser") || !server.hasArg("mqttPasswd") || !server.hasArg("mqttPort") ) { server.send(500, "text/plain", "Bad arguments\r\n"); return; } if (saveConfig(BOOTMODE_NORMAL, server.arg("ssid"), server.arg("password"), server.arg("host"), server.arg("mqttServer"), server.arg("mqttUser"), server.arg("mqttPasswd"), server.arg("mqttPort").toInt()) < 0) { server.send(500, "text/plain", "Cannot Save Credentials (Too long ?Contains \";\"?)\r\n"); return; } server.send(200, "text/html", "

Configuration Saved


" "Reboot
"); } void handleOTA() { Serial.println("Boot mode Set to OTA"); saveBootMode(BOOTMODE_OTA); server.send(200, "text/html", "

OTA Mode set


" "You can reboot now"); } void handleNotFound() { String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET) ? "GET" : "POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i = 0; i < server.args(); i++) { message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; } server.send(404, "text/plain", message); } void handleReboot() { Serial.println("HTTP request to reboot"); server.send(200, "text/html", "

Device Reboot


"); ESP.restart(); } void setupWebServer(int bootmode) { server.on("/", handleRoot); server.on("/setup", handleSetup); server.on("/save", handleSave); server.on("/gpio", handleGpio); server.on("/otamode", handleOTA); server.on("/reboot", handleReboot); server.onNotFound(handleNotFound); server.begin(); Serial.println("HTTP server started"); }