#include #include #include #include #include "defines.h" #include "configuration.h" tConfigBlock configBlock; const uint32_t MAGIC = 0xC0DE0001; extern ESP8266WebServer webServer; bool configSaved = false; void configServeIndex() { bool configValid = (configBlock.magic == MAGIC); if (! configValid) { strcpy(configBlock.wifiSsid, "EG-WLAN"); strcpy(configBlock.wifiKey, "shae3sheuthai2oluNgiqueiyahyumeiphughi8jequeil6taethooyeik1joh5"); strcpy(configBlock.mqttBroker, "broker.hottis.de"); strcpy(configBlock.mqttUser, "esp1"); strcpy(configBlock.mqttPass, "geheim123"); strcpy(configBlock.mqttClientId, "espClient1"); strcpy(configBlock.mqttTopic, "IoT/espThermometer2/espTherm1/measurement"); configBlock.mqttPort = 8883; configBlock.measurePeriod = 300; } String buffer = "" " " " ESP8266 Thermometer Configuration Page" " " " " "

ESP8266 Configuration Page

"; if (configSaved) { configSaved = false; buffer += "

Configuration saved

"; } buffer += "
" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " "
" "
" " " ""; webServer.send(200, "text/html", buffer); #ifdef DEBUG Serial.println("indexHtml request served"); #endif } void configServeGetConfiguration() { String arg; arg = webServer.arg("wifiSsid"); strcpy(configBlock.wifiSsid, arg.c_str()); arg = webServer.arg("wifiKey"); strcpy(configBlock.wifiKey, arg.c_str()); arg = webServer.arg("mqttBroker"); strcpy(configBlock.mqttBroker, arg.c_str()); arg = webServer.arg("mqttUser"); strcpy(configBlock.mqttUser, arg.c_str()); arg = webServer.arg("mqttPass"); strcpy(configBlock.mqttPass, arg.c_str()); arg = webServer.arg("mqttClientId"); strcpy(configBlock.mqttClientId, arg.c_str()); arg = webServer.arg("mqttTopic"); strcpy(configBlock.mqttTopic, arg.c_str()); arg = webServer.arg("mqttPort"); configBlock.mqttPort = atoi(arg.c_str()); arg = webServer.arg("measurePeriod"); configBlock.measurePeriod = atoi(arg.c_str()); configBlock.magic = MAGIC; showConfiguration(); EEPROM.begin(512); EEPROM.put(EEPROM_ADDR, configBlock); EEPROM.commit(); Serial.println("EEPROM saved"); configSaved = true; webServer.sendHeader("Location", String("/"), true); webServer.send(302, "text/plain", ""); //webServer.send(200, "text/html", "configuration saved"); } void showConfiguration() { Serial.println("Configuration is"); Serial.print("magic = "); Serial.println(configBlock.magic); Serial.print("wifiSsid = "); Serial.println(configBlock.wifiSsid); Serial.print("wifiKey = "); Serial.println(configBlock.wifiKey); Serial.print("mqttBroker = "); Serial.println(configBlock.mqttBroker); Serial.print("mqttUser = "); Serial.println(configBlock.mqttUser); Serial.print("mqttPass = "); Serial.println(configBlock.mqttPass); Serial.print("mqttClientId = "); Serial.println(configBlock.mqttClientId); Serial.print("mqttTopic = "); Serial.println(configBlock.mqttTopic); Serial.print("mqttPort = "); Serial.println(configBlock.mqttPort); Serial.print("measurePeriod = "); Serial.println(configBlock.measurePeriod); Serial.println("---"); }