123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #include <ESP8266WiFi.h>
- #include <SPI.h>
- #include <SD.h>
- #include <FS.h>
- #include <ESPAsyncTCP.h>
- #include <ESPAsyncWebServer.h>
- #include <ArduinoJson.h>
- #include <ESP8266mDNS.h>
- #include <ESPping.h>
- #include <NTPClient.h>
- #include <WiFiUdp.h>
- #include <WakeOnLan.h>
- #define CS_PIN D0
- #define SDSPI_HALF_SPEED 4000000
- #define SDSPI_DEFAULT_SPEED 32000000
- #define SDSPI_HIGH_SPEED 64000000
- AsyncWebServer server(80);
- String adminUsername = "";
- String adminPassword = "";
- String mdnsName = "webstick";
- String authSession = "";
- int SDCardInitSpeed = SDSPI_HIGH_SPEED;
- WiFiUDP ntpUDP;
- NTPClient timeClient(ntpUDP, "pool.ntp.org");
- WakeOnLan WOL(ntpUDP);
- String loadWiFiInfoFromSD();
- void setup() {
-
- Serial.begin(115200);
-
- while (!SD.begin(CS_PIN, SDCardInitSpeed)) {
- if (SDCardInitSpeed == SDSPI_HIGH_SPEED) {
-
- SDCardInitSpeed = SDSPI_DEFAULT_SPEED;
- Serial.println("SD card initialization failed. Falling back to default speed");
- } else if (SDCardInitSpeed == SDSPI_DEFAULT_SPEED) {
-
- SDCardInitSpeed = SDSPI_HALF_SPEED;
- Serial.println("SD card initialization failed. Falling back to legacy SPI_HALF_SPEED");
- }else{
- Serial.println("SD card initialization failed. Retrying in 3 seconds...");
- }
- delay(3000);
- }
- Serial.println("SD card initialized");
- Serial.println("\n\nStorage Info:");
- Serial.println("----------------------");
- getSDCardTotalSpace();
- getSDCardUsedSpace();
- Serial.println("----------------------");
- Serial.println();
-
- initWiFiConn();
-
- initAdminCredentials();
-
- initmDNSName();
- if (!MDNS.begin(mdnsName)) {
- Serial.println("mDNS Error. Skipping.");
- } else {
- Serial.println("mDNS started. Connect to your webstick using http://" + mdnsName + ".local");
- MDNS.addService("http", "tcp", 80);
- }
-
- timeClient.begin();
- Serial.print("Requesting time from NTP (unix timestamp): ");
- timeClient.update();
- Serial.println(getTime());
-
- WOL.setRepeat(3, 100);
- WOL.calculateBroadcastAddress(WiFi.localIP(), WiFi.subnetMask());
-
- DBInit();
-
- initLoginSessionKey();
-
- initWebServer();
- }
- void loop() {
- MDNS.update();
- timeClient.update();
- }
|