#include #include #include #include ESP8266WebServer server(80); const char *APssid = "Home_Dynamic"; const char *APpw = "homedynamic"; void setup() { Serial.begin(9600); delay(1000); WiFi.hostname("Home_Dynamic"); WiFi.softAP(APssid, APpw); 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; int size=1000; char temp[size]; // ssid and pw from user form GET String ssidStr = server.arg("ssid"); String pwStr = server.arg("wifipw"); // SSID: put String into char array, then char pointer point to the char array char tempSSIDStr[ssidStr.length()]; int i; for(i=0;i<4;i++){ tempSSIDStr[i] = ssidStr[i]; } tempSSIDStr[ssidStr.length()] = '\0'; char *ssid = tempSSIDStr; // pw: put String into char array, then char pointer point to the char array char tempPWStr[pwStr.length()]; for(i=0;i<4;i++){ tempPWStr[i] = pwStr[i]; } tempPWStr[pwStr.length()] = '\0'; char *pw = tempPWStr; // use the ssid and pw to connect WiFi.mode(WIFI_STA); WiFi.begin(ssid, pw); Serial.println("Home Dynamic controller connected to user WIFI at: "); Serial.println(WiFi.localIP()); client.print("Connected"); } void loop() { server.handleClient(); }