Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Commit e19360e

Browse files
committed
Merge pull request #11 from proppy/wifi
firebase: add wifi commands
2 parents c748621 + f259c16 commit e19360e

File tree

1 file changed

+32
-9
lines changed

1 file changed

+32
-9
lines changed

firebase/firebase.ino

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,47 @@
1818
#include <WiFiClientSecure.h>
1919
#include <EEPROM.h>
2020

21-
const char* ssid = "GoogleGuest";
22-
const char* password = "";
23-
2421
const char* host = "burning-heat-7044.firebaseio.com";
2522
const int httpsPort = 443;
2623
const char* fingerprint = "C1 56 CD D8 49 A3 7D D2 1D 49 60 7E 0D 59 A7 7C C1 0E 58 D2";
2724
struct Credential {
2825
char token[148];
26+
char ssid[32];
27+
char password[32];
2928
} cred;
3029

3130
String buffer;
3231

3332
void setup() {
3433
Serial.begin(115200);
3534

36-
EEPROM.begin(512);
35+
EEPROM.begin(4096);
3736
EEPROM.get(0, cred);
3837
Serial.println();
39-
Serial.println("!I #!/dev/chiplet");
38+
Serial.println("!I #!/dev/fail");
4039
Serial.print("!I token: ");
4140
Serial.println(cred.token);
41+
if (strlen(cred.ssid) > 0) {
42+
wifiConnect();
43+
}
44+
}
45+
46+
bool wifiConnect() {
4247
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++) {
4550
delay(500);
4651
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+
}
4758
}
4859
Serial.println("");
49-
Serial.print("!I wifi connected: ");
50-
Serial.println(WiFi.localIP());
60+
Serial.println("!I wifi connection failed");
61+
return false;
5162
}
5263

5364
String buildRequest(String data) {
@@ -82,12 +93,24 @@ void loop() {
8293
EEPROM.put(0, cred);
8394
EEPROM.commit();
8495
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+
}
85107
} else {
86108
Serial.println("!E usage:");
87109
Serial.println("!E GET /path");
88110
Serial.println("!E POST /path");
89111
Serial.println("!E payload");
90112
Serial.println("!E TOKEN token");
113+
Serial.println("!E AT+CWJAP=ssid,passwd");
91114
}
92115
}
93116

0 commit comments

Comments
 (0)