Home-Dynamic-IoT-Module-Protocol-v2.ino 1.8 KB

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