// Load Wi-Fi library #include #include #include #include #include Preferences preferences; ESP8266WebServer server(80); ESP8266HTTPUpdateServer httpUpdater; String header = " \n" "\n" "Truhensteuerung\n" "\n" "\n" "\n" "

Truhensteuerung Web Server

\n"; String ssid = "REPLACE_WITH_YOUR_SSID"; String password = "REPLACE_WITH_YOUR_PASSWORD"; unsigned long currentTime = millis(); unsigned long previousTime= 0; //const long timeoutTime= 2000; void WifiConnect(String _ssid, String _password){ // Connect to Wi-Fi network with SSID and password Serial.print("Connecting to "); Serial.println(_ssid); WiFi.begin(_ssid, _password); if(WiFi.waitForConnectResult() == WL_CONNECTED) { Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } else { Serial.println("WiFi Connection failed! Restarting in SoftAP mode instead"); WiFi.mode(WIFI_AP); WiFi.softAP("Truhensteuerung", "12345678"); Serial.print("AP IP address: "); Serial.println(WiFi.softAPIP()); } // Print local IP address and start web server } void handleWifiSetup(){ String ptr = header; boolean reset = false; // ptr += "URI: "; // ptr += server.uri(); // ptr += "
\nMethod: "; // ptr += (server.method() == HTTP_GET) ? "GET" : "POST"; // ptr += "
\nArguments: "; // ptr += server.args(); // ptr += "
\n"; Dictionary arguments = Dictionary(); for (uint8_t i = 0; i < server.args(); i++) { arguments.set(server.argName(i), server.arg(i));} if(server.method() == HTTP_GET){ int n = WiFi.scanNetworks(false, true); String ssid; uint8_t encryptionType; int32_t RSSI; uint8_t* BSSID; int32_t channel; bool isHidden; ptr += "Home"; ptr += "
"; ptr +="
"; ptr +="\n\n"; for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) { ptr +="\n\n\n\n\n"; } ptr += "
NameTemp MinTemp Max
"; ptr +=""; ptr +=""; ptr +=""; ptr +=""; ptr +=""; ptr += "
\n"; ptr += ""; ptr +=""; ptr +=""; ptr +=""; ptr +="
"; ptr +="
"; ptr +="\n\n"; for (int i = 0; i < n; i++) { WiFi.getNetworkInfo(i, ssid, encryptionType, RSSI, BSSID, channel, isHidden); ptr +="\n"; } ptr += "
IDSSIDChannelRSSI
"+String(i + 1)+""+String(ssid.c_str())+""+String(channel)+""+String(RSSI)+"dBm"+String(encryptionType == ENC_TYPE_NONE ? "open" : "")+""+String(isHidden ? "hidden" : "")+"
\n"; ptr += ""; ptr += ""; ptr +="
"; ptr +="
"; ptr +="\n\n"; ptr +="\n\n\n\n"; ptr +="\n\n\n\n"; ptr +="\n\n\n\n"; ptr +="\n\n\n\n"; ptr +="\n\n\n\n"; ptr +="\n\n\n\n"; ptr += "
ESP.getResetReason()"; ptr +=String(ESP.getResetReason()); ptr += "
ESP.getFreeHeap()"; ptr +=String(ESP.getFreeHeap()); ptr += "
ESP.getHeapFragmentation()"; ptr +=String(ESP.getHeapFragmentation()); ptr += "
ESP.getMaxFreeBlockSize()"; ptr +=String(ESP.getMaxFreeBlockSize()); ptr += "
ESP.getChipId()"; ptr +=String(ESP.getChipId()); ptr += "
ESP.getCpuFreqMHz()"; ptr +=String(ESP.getCpuFreqMHz()); ptr += "
\n"; ptr += "
\n"; ptr += "
"; }else{ ptr += "

\n"; if(arguments.get("submit_truhen") != NULL){ reset = true; preferences.begin("my-app", false); for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) { preferences.putString(String("t"+String(i)+"_name").c_str(), arguments.get("t"+String(i)+"_name")); preferences.putInt(String("t"+String(i)+"_min").c_str(), arguments.get("t"+String(i)+"_min").toInt()); preferences.putInt(String("t"+String(i)+"_max").c_str(), arguments.get("t"+String(i)+"_max").toInt()); } preferences.end(); } if(arguments.get("submit_wlan") != NULL){ reset = true; String ssid = arguments.get("ssid"); String password = arguments.get("password"); ptr += "Connecting to "+ssid+"
\n"; Serial.println("Connecting to "+ssid+", "+password+""); WiFi.begin(ssid, password); if(WiFi.waitForConnectResult() == WL_CONNECTED) { Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); preferences.begin("my-app", false); preferences.putString("ssid", ssid); preferences.putString("password", password); preferences.end(); ptr += "WiFi connected.
"; // ptr += "IP address: "; // ptr += WiFi.localIP(); ptr += "
\n"; } else { Serial.println("WiFi Connection failed! Restarting in SoftAP mode instead"); ptr += "WiFi Connection failed! Restarting in SoftAP mode instead
\n"; WiFi.mode(WIFI_AP); WiFi.softAP("Truhensteuerung", "12345678"); Serial.print("AP IP address: "); Serial.println(WiFi.softAPIP()); //ptr += "AP IP address: "; //ptr += WiFi.softAPIP(); ptr += "
\n"; } // Print local IP address and start web server ptr += "

\n"; } } ptr +="\n"; ptr +="\n"; if(reset){ ptr +="

Neustart, bitte warten...

\n"; ptr +="\n"; } server.send(200, "text/html", ptr); if(reset){ delay(2000); ESP.restart(); } } void handleRoot(){ String ptr = header; ptr += "Setup Wifi"; ptr +="\n\n"; for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) { ptr +="\n\n\n\n\n"; } ptr += "
NameTempStatus
"; ptr +=truhen[i].getName(); ptr +=""; ptr +=String(truhen[i].getCurTemp())+"℃"; ptr +=""; if (truhen[i].getStat() == -1) { ptr +="Nicht bekannt"; } else if (truhen[i].getStat() == 1) { ptr +="An"; } else if (truhen[i].getStat() == 0) { ptr +="Aus"; } else if (truhen[i].getStat() == 2) { ptr +="Error"; } ptr += "
\n"; ptr +="\n"; ptr +="\n"; server.send(200, "text/html", ptr); } 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 WifiSetup() { preferences.begin("my-app", false); ssid = preferences.getString("ssid", ssid); password = preferences.getString("password", password); preferences.end(); WifiConnect(ssid, password); httpUpdater.setup(&server); server.on("/setup",handleWifiSetup); server.on("/",handleRoot); server.begin(); };