#include #include #include #include ESP8266WebServer server(80); char *APssid = "Home_Dynamic"; char *APpw = "homedynamic"; //Global variables for mode int CurrentMode = 0; //0 = softAP, 1 = STA void setup() { Serial.begin(9600); delay(1000); WiFi.hostname("Home_Dynamic"); boolean result = WiFi.softAP(APssid, APpw); if(result == true){ Serial.println("Soft AP Starting Ready"); }else{ Serial.println("Soft AP Starting Failed!"); } server.on("/", showForm); server.on("/submitForm", submitForm); server.begin(); Serial.println("Home Dynamic controller started at:"); Serial.println(WiFi.softAPIP()); } void showForm(){ int size=1000; char temp[size]; snprintf( temp, size, "
Your Wifi name:

Your Wifi password:


"); server.send(200, "text/html", temp); } void submitForm(){ WiFiClient client; // ssid and pw from user form GET String ssidStr = server.arg("ssid"); String pwStr = server.arg("wifipw"); Serial.println(ssidStr); Serial.println(pwStr); // use the ssid and pw to connect int sl1 = ssidStr.length(); int sl2 = pwStr.length(); char ssidbuf[sl1]; char pwbuf[sl2]; char temp[50]; snprintf( temp, 50, "Please wait while processing..."); ssidStr.toCharArray(ssidbuf,sl1); pwStr.toCharArray(pwbuf,sl2); WiFi.begin(ssidbuf, pwbuf); WiFi.mode(WIFI_STA); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("Home Dynamic controller connected to user WIFI at: "); Serial.println(WiFi.localIP()); client.print("Connected"); CurrentMode = 1; } void loop() { if (CurrentMode == 0){ Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum()); delay(300); } server.handleClient(); }