1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #include <ESP8266WiFi.h>
- #include <WiFiClient.h>
- #include <ESP8266WebServer.h>
- #include <string>
- 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, "<form action='/submitForm' method='GET'> Your Wifi name:<br> <input type='text' name='ssid'><br>Your Wifi password:<br> <input type='text' name='wifipw'><br><br><input type='submit' value='Enter'></form>");
- 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();
- }
|