Home-Dynamic-IoT-Module-Protocol-v2.1.ino 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include <ESP8266WiFi.h>
  2. #include <WiFiClient.h>
  3. #include <ESP8266WebServer.h>
  4. #include <string>
  5. ESP8266WebServer server(80);
  6. const char *APssid = "Home_Dynamic";
  7. const char *APpw = "homedynamic";
  8. void setup() {
  9. Serial.begin(9600);
  10. delay(1000);
  11. WiFi.hostname("Home_Dynamic");
  12. WiFi.softAP(APssid, APpw);
  13. server.on("/", showForm);
  14. server.on("/submitForm", submitForm);
  15. server.begin();
  16. Serial.println("Home Dynamic controller started at:");
  17. Serial.println(WiFi.softAPIP());
  18. }
  19. void showForm(){
  20. int size=1000;
  21. char temp[size];
  22. 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>");
  23. server.send(200, "text/html", temp);
  24. }
  25. void submitForm(){
  26. WiFiClient client;
  27. int size=1000;
  28. char temp[size];
  29. // ssid and pw from user form GET
  30. String ssidStr = server.arg("ssid");
  31. String pwStr = server.arg("wifipw");
  32. // SSID: put String into char array, then char pointer point to the char array
  33. char tempSSIDStr[ssidStr.length()];
  34. int i;
  35. for(i=0;i<4;i++){
  36. tempSSIDStr[i] = ssidStr[i];
  37. }
  38. tempSSIDStr[ssidStr.length()] = '\0';
  39. char *ssid = tempSSIDStr;
  40. // pw: put String into char array, then char pointer point to the char array
  41. char tempPWStr[pwStr.length()];
  42. for(i=0;i<4;i++){
  43. tempPWStr[i] = pwStr[i];
  44. }
  45. tempPWStr[pwStr.length()] = '\0';
  46. char *pw = tempPWStr;
  47. // use the ssid and pw to connect
  48. WiFi.mode(WIFI_STA);
  49. WiFi.begin(ssid, pw);
  50. Serial.println("Home Dynamic controller connected to user WIFI at: ");
  51. Serial.println(WiFi.localIP());
  52. client.print("Connected");
  53. }
  54. void loop() {
  55. server.handleClient();
  56. }