|
@@ -0,0 +1,85 @@
|
|
|
+
|
|
|
+//flag for saving data
|
|
|
+bool shouldSaveConfig = false;
|
|
|
+#define TRIGGER_PIN 12
|
|
|
+Ticker tkConfig ;
|
|
|
+bool StartConfig = false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//callback notifying us of the need to save config
|
|
|
+void saveConfigCallback () {
|
|
|
+ Serial.println("Should save config");
|
|
|
+ shouldSaveConfig = true;
|
|
|
+}
|
|
|
+
|
|
|
+void ConfigAPMode () {
|
|
|
+ Serial.println("Config check");
|
|
|
+ if ( digitalRead(TRIGGER_PIN) == LOW) {
|
|
|
+ StartConfig = true;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void StartConfigAP(){
|
|
|
+
|
|
|
+ if (StartConfig) {
|
|
|
+ // detach all tickers (redLed, blueLed, OTA, wifimgr, UKI_UDP)
|
|
|
+// redLedState (1, 500);
|
|
|
+// blueLedState (1,500);
|
|
|
+// detachOTA();
|
|
|
+ tkConfig.detach();
|
|
|
+ delay (500);
|
|
|
+
|
|
|
+ //WiFiManager
|
|
|
+
|
|
|
+ //Local intialization. Once its business is done, there is no need to keep it around
|
|
|
+ WiFiManager wifiManager;
|
|
|
+
|
|
|
+ //reset settings - for testing
|
|
|
+ //wifiManager.resetSettings();
|
|
|
+
|
|
|
+ //sets timeout until configuration portal gets turned off
|
|
|
+ //useful to make it all retry or go to sleep
|
|
|
+ //in seconds
|
|
|
+ //wifiManager.setTimeout(120);
|
|
|
+
|
|
|
+ //set config save notify callback
|
|
|
+ wifiManager.setSaveConfigCallback(saveConfigCallback);
|
|
|
+
|
|
|
+ //it starts an access point with the specified name
|
|
|
+ //here "AutoConnectAP"
|
|
|
+ //and goes into a blocking loop awaiting configuration
|
|
|
+
|
|
|
+ //WITHOUT THIS THE AP DOES NOT SEEM TO WORK PROPERLY WITH SDK 1.5 , update to at least 1.5.1
|
|
|
+ //WiFi.mode(WIFI_STA);
|
|
|
+ //redLedState (0, 500);
|
|
|
+ //blueLedState (-1, 100);
|
|
|
+ delay(1000);
|
|
|
+ if (!wifiManager.startConfigPortal("UKI_AP")) {
|
|
|
+ Serial.println("failed to connect and hit timeout");
|
|
|
+ delay(3000);
|
|
|
+ //reset and try again, or maybe put it to deep sleep
|
|
|
+ ESP.reset();
|
|
|
+ delay(5000);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //if you get here you have connected to the WiFi
|
|
|
+ Serial.println("connected to UKI wifi");
|
|
|
+ // blueLedState(1,500);
|
|
|
+
|
|
|
+ //save the custom parameters to FS
|
|
|
+ if (shouldSaveConfig) {
|
|
|
+ Serial.print("should save config");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+void setupWifi() {
|
|
|
+ pinMode(TRIGGER_PIN, INPUT);
|
|
|
+ tkConfig.attach(5, ConfigAPMode); // check TRIGGER_PIN state periodically
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|