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

Commit 566c303

Browse files
committed
initial import
1 parent 690accc commit 566c303

File tree

2 files changed

+131
-0
lines changed

2 files changed

+131
-0
lines changed

Diff for: button.ino

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#include <SoftwareSerial.h>
2+
3+
SoftwareSerial mySerial(1, 0); // RX, TX
4+
int pushButton = 2;
5+
6+
// the setup routine runs once when you press reset:
7+
void setup() {
8+
mySerial.begin(115200);
9+
mySerial.println("hello");
10+
pinMode(pushButton, INPUT);
11+
digitalWrite(pushButton, HIGH);
12+
}
13+
14+
int previousState = 1;
15+
16+
17+
void loop() {
18+
int buttonState = digitalRead(pushButton);
19+
if (buttonState == 0 && buttonState != previousState) {
20+
mySerial.println("POST /hits.json");
21+
mySerial.println("{\".sv\": \"timestamp\"}");
22+
}
23+
previousState = buttonState;
24+
}
25+
26+
27+

Diff for: firebase.ino

+104
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#include <ESP8266WiFi.h>
2+
#include <WiFiClientSecure.h>
3+
#include <EEPROM.h>
4+
5+
const char* ssid = "GoogleGuest";
6+
const char* password = "";
7+
8+
const char* host = "burning-heat-7044.firebaseio.com";
9+
const int httpsPort = 443;
10+
const char* fingerprint = "C1 56 CD D8 49 A3 7D D2 1D 49 60 7E 0D 59 A7 7C C1 0E 58 D2";
11+
struct Credential {
12+
char token[148];
13+
} cred;
14+
15+
String buffer;
16+
17+
void setup() {
18+
Serial.begin(115200);
19+
20+
EEPROM.begin(512);
21+
EEPROM.get(0, cred);
22+
Serial.println();
23+
Serial.println("!I #!/dev/chiplet");
24+
Serial.print("!I token: ");
25+
Serial.println(cred.token);
26+
Serial.print("!I connecting to wifi");
27+
WiFi.begin(ssid, password);
28+
while (WiFi.status() != WL_CONNECTED) {
29+
delay(500);
30+
Serial.print(".");
31+
}
32+
Serial.println("");
33+
Serial.print("!I wifi connected: ");
34+
Serial.println(WiFi.localIP());
35+
}
36+
37+
String buildRequest(String data) {
38+
return data + "?auth=" + cred.token + " HTTP/1.1\r\n" +
39+
"Host: " + host + "\r\n" +
40+
"User-Agent: Chiplet\r\n" +
41+
"Connection: close\r\n";
42+
}
43+
44+
void loop() {
45+
String request;
46+
47+
if (Serial.available() > 0) {
48+
String data = Serial.readStringUntil('\n');
49+
data.trim();
50+
51+
if (data.startsWith("GET")) {
52+
Serial.println(String("!I request: ") + data);
53+
request = buildRequest(data) + "\r\n";
54+
} else if (data.startsWith("POST")) {
55+
Serial.println(String("!I request: ") + data);
56+
Serial.println("!I waiting for payload");
57+
buffer = buildRequest(data);
58+
} else if (buffer.startsWith("POST")) {
59+
// send POST request when complete
60+
Serial.println(String("!I payload: ") + data);
61+
Serial.println(String("!I content-length: ") + data.length());
62+
request = buffer + "Content-Length: " + data.length() + "\r\n\r\n" + data;
63+
buffer = "";
64+
} else if (data.startsWith("TOKEN")) {
65+
data.substring(6).toCharArray(cred.token, sizeof(cred.token));
66+
EEPROM.put(0, cred);
67+
EEPROM.commit();
68+
Serial.println(String("!I token updated: ") + cred.token);
69+
} else {
70+
Serial.println("!E usage:");
71+
Serial.println("!E GET /path");
72+
Serial.println("!E POST /path");
73+
Serial.println("!E payload");
74+
Serial.println("!E TOKEN token");
75+
}
76+
}
77+
78+
if (request.length() > 0) {
79+
WiFiClientSecure client;
80+
if (!client.connect(host, httpsPort)) {
81+
Serial.println("!E connection failed");
82+
return;
83+
}
84+
if (!client.verify(fingerprint, host)) {
85+
Serial.println("!E certificate doesn't match");
86+
return;
87+
}
88+
Serial.println("!I connected");
89+
client.print(request);
90+
request.trim();
91+
request.replace("\r\n", "\r\n!> ");
92+
Serial.println(String("!> ") + request);
93+
Serial.println("!I headers");
94+
while (client.connected()) {
95+
String data = client.readStringUntil('\n');
96+
Serial.println("!< " + data);
97+
}
98+
Serial.println("!I body");
99+
while(client.available() > 0) {
100+
String data = client.readStringUntil('\n');
101+
Serial.println(data);
102+
}
103+
}
104+
}

0 commit comments

Comments
 (0)