|
18 | 18 | #include <WiFiClientSecure.h>
|
19 | 19 | #include <EEPROM.h>
|
20 | 20 |
|
21 |
| -const char* ssid = "GoogleGuest"; |
22 |
| -const char* password = ""; |
23 |
| - |
24 | 21 | const char* host = "burning-heat-7044.firebaseio.com";
|
25 | 22 | const int httpsPort = 443;
|
26 | 23 | const char* fingerprint = "C1 56 CD D8 49 A3 7D D2 1D 49 60 7E 0D 59 A7 7C C1 0E 58 D2";
|
27 | 24 | struct Credential {
|
28 | 25 | char token[148];
|
| 26 | + char ssid[32]; |
| 27 | + char password[32]; |
29 | 28 | } cred;
|
30 | 29 |
|
31 | 30 | String buffer;
|
32 | 31 |
|
33 | 32 | void setup() {
|
34 | 33 | Serial.begin(115200);
|
35 | 34 |
|
36 |
| - EEPROM.begin(512); |
| 35 | + EEPROM.begin(4096); |
37 | 36 | EEPROM.get(0, cred);
|
38 | 37 | Serial.println();
|
39 |
| - Serial.println("!I #!/dev/chiplet"); |
| 38 | + Serial.println("!I #!/dev/fail"); |
40 | 39 | Serial.print("!I token: ");
|
41 | 40 | Serial.println(cred.token);
|
| 41 | + if (strlen(cred.ssid) > 0) { |
| 42 | + wifiConnect(); |
| 43 | + } |
| 44 | +} |
| 45 | + |
| 46 | +bool wifiConnect() { |
42 | 47 | Serial.print("!I connecting to wifi");
|
43 |
| - WiFi.begin(ssid, password); |
44 |
| - while (WiFi.status() != WL_CONNECTED) { |
| 48 | + WiFi.begin(cred.ssid, cred.password); |
| 49 | + for (int i = 0; i < 20; i++) { |
45 | 50 | delay(500);
|
46 | 51 | Serial.print(".");
|
| 52 | + if (WiFi.status() == WL_CONNECTED) { |
| 53 | + Serial.println(""); |
| 54 | + Serial.print("!I wifi connected: "); |
| 55 | + Serial.println(WiFi.localIP()); |
| 56 | + return true; |
| 57 | + } |
47 | 58 | }
|
48 | 59 | Serial.println("");
|
49 |
| - Serial.print("!I wifi connected: "); |
50 |
| - Serial.println(WiFi.localIP()); |
| 60 | + Serial.println("!I wifi connection failed"); |
| 61 | + return false; |
51 | 62 | }
|
52 | 63 |
|
53 | 64 | String buildRequest(String data) {
|
@@ -82,12 +93,24 @@ void loop() {
|
82 | 93 | EEPROM.put(0, cred);
|
83 | 94 | EEPROM.commit();
|
84 | 95 | Serial.println(String("!I token updated: ") + cred.token);
|
| 96 | + } else if (data.startsWith("AT+CWJAP=")) { |
| 97 | + String ssidPwd = data.substring(9); |
| 98 | + int i = ssidPwd.indexOf(","); |
| 99 | + ssidPwd.substring(0, i).toCharArray(cred.ssid, sizeof(cred.token)); |
| 100 | + ssidPwd.substring(i+1).toCharArray(cred.password, sizeof(cred.password)); |
| 101 | + Serial.println("!I ssid: " + String(cred.ssid)); |
| 102 | + Serial.println("!I password: " + String(cred.password)); |
| 103 | + if (wifiConnect()) { |
| 104 | + EEPROM.put(0, cred); |
| 105 | + EEPROM.commit(); |
| 106 | + } |
85 | 107 | } else {
|
86 | 108 | Serial.println("!E usage:");
|
87 | 109 | Serial.println("!E GET /path");
|
88 | 110 | Serial.println("!E POST /path");
|
89 | 111 | Serial.println("!E payload");
|
90 | 112 | Serial.println("!E TOKEN token");
|
| 113 | + Serial.println("!E AT+CWJAP=ssid,passwd"); |
91 | 114 | }
|
92 | 115 | }
|
93 | 116 |
|
|
0 commit comments