forked from khoih-prog/ESP_WiFiManager
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfigOnDRD_ESP8266_minimal.ino
More file actions
44 lines (43 loc) · 2.27 KB
/
ConfigOnDRD_ESP8266_minimal.ino
File metadata and controls
44 lines (43 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/****************************************************************************************************************************
Async_ConfigOnDoubleReset_minimal.ino
For ESP8266 / ESP32 boards
Built by Khoi Hoang https://github.com/khoih-prog/ESP_WiFiManager
Licensed under MIT license
*****************************************************************************************************************************/
#if defined(ESP8266)
#define USE_LITTLEFS true
#define ESP_DRD_USE_LITTLEFS true
#else
#error This code is intended to run on the ESP8266 platform! Please check your Tools->Board setting.
#endif
#include <ESP_WiFiManager.h> //https://github.com/khoih-prog/ESP_WiFiManager
#define DRD_TIMEOUT 10
#define DRD_ADDRESS 0
#include <ESP_DoubleResetDetector.h> //https://github.com/khoih-prog/ESP_DoubleResetDetector
DoubleResetDetector* drd;
const int PIN_LED = 2;
bool initialConfig = false;
void setup() {
pinMode(PIN_LED, OUTPUT);
Serial.begin(115200); while (!Serial); delay(200);
Serial.print(F("\nStarting ConfigOnDoubleReset_minimal on ")); Serial.println(ARDUINO_BOARD);
Serial.println(ESP_WIFIMANAGER_VERSION);
if (WiFi.SSID() == "") { Serial.println(F("No AP credentials")); initialConfig = true; }
drd = new DoubleResetDetector(DRD_TIMEOUT, DRD_ADDRESS);
if (drd->detectDoubleReset()) { Serial.println(F("DRD")); initialConfig = true; }
if (initialConfig) {
Serial.println(F("Starting Config Portal")); digitalWrite(PIN_LED, LOW);
ESP_WiFiManager ESP_wifiManager("ConfigOnDoubleReset");
ESP_wifiManager.setConfigPortalTimeout(0);
if (!ESP_wifiManager.startConfigPortal()) { Serial.println(F("Not connected to WiFi")); }
else { Serial.println(F("connected")); }
}
digitalWrite(PIN_LED, HIGH); Serial.print(F("After waiting ")); //WiFi.mode(WIFI_STA);
unsigned long startedAt = millis();
int connRes = WiFi.waitForConnectResult();
float waited = (millis() - startedAt);
Serial.print(waited / 1000); Serial.print(F(" secs , Connection result is ")); Serial.println(connRes);
if (WiFi.status() != WL_CONNECTED) { Serial.println(F("Failed to connect")); }
else { Serial.print(F("Local IP: ")); Serial.println(WiFi.localIP()); }
}
void loop() { drd->loop(); }