snapwire/app/app.ino

102 lines
2.3 KiB
C++

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
//#include <ESP8266HTTPClient.h>
#include <ESP8266WebServer.h>
#include <FS.h>
ESP8266WebServer server(80);
//https://steve.fi/Hardware/d1-flash/
void handleNotFound() {
// If we could serve from flash we're good.
Serial.println(server.uri());
return;
//if (loadFromSpiffs(server.uri()))
// return;
// Otherwise a generic 404.
String message = "File Not Detected\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message +=
" NAME:" + server.argName(i) + "\n VALUE:" + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
Serial.println(message);
}
void setup_mode() {
WiFi.softAP("snapwire", "snapwire"); // Start the access point
Serial.print("Access Point \"");
// Serial.print(ssid);
Serial.println("\" started");
Serial.print("IP address:\t");
Serial.println(
WiFi.softAPIP()); // Send the IP address of the ESP8266 to the computer
server.onNotFound(handleNotFound);
server.begin();
}
void connect() {
WiFi.mode(WIFI_STA);
WiFi.hostname("flash-httpd");
WiFi.begin("WEMOS", "SNAPWIRE");
// Wait until we're connected.
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void startup() {
File f = SPIFFS.open("/index.html", "r");
while (f.available()) {
// Lets read line by line from the file
String line = f.readStringUntil('\n');
Serial.println(line);
}
f = SPIFFS.open("/config.txt", "r");
if (!f.available()) {
Serial.println("Launching in access point mode.");
return;
}
Serial.println("Reading existing config.");
while (f.available()) {
// Lets read line by line from the file
String line = f.readStringUntil('\n');
Serial.println(line);
}
}
void setup() {
Serial.begin(115200);
SPIFFS.begin();
startup();
setup_mode();
}
//ESP.restart();
void loop() {
server.handleClient();
//delay(2000);
}