Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8019386347 | ||
|
336830e5be |
BIN
bin/firmware.bin
BIN
bin/firmware.bin
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -281,14 +281,14 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="influxdb2-bucket" class="col-sm-2 col-form-label">InfluxDB v2 Bucket</label>
|
<label for="influxdb2-bucket" class="col-sm-2 col-form-label">InfluxDB v2 Bucket ID</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" maxlength="50" class="form-control" name="influxdb2-bucket" id="influxdb2-bucket" data-bs-toggle="tooltip" title="Identifier for the data bucket to use">
|
<input type="text" maxlength="50" class="form-control" name="influxdb2-bucket" id="influxdb2-bucket" data-bs-toggle="tooltip" title="Identifier for the data bucket to use">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="influxdb2-auth" class="col-sm-2 col-form-label">InfluxDB v2 Auth</label>
|
<label for="influxdb2-auth" class="col-sm-2 col-form-label">InfluxDB v2 Auth Token</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" maxlength="100" class="form-control" name="influxdb2-auth" id="influxdb2-auth" data-bs-toggle="tooltip" title="Authentication token for accessing data bucket">
|
<input type="text" maxlength="100" class="form-control" name="influxdb2-auth" id="influxdb2-auth" data-bs-toggle="tooltip" title="Authentication token for accessing data bucket">
|
||||||
</div>
|
</div>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
#ifndef ESP_DOUBLE_RESET_DETECTOR_VERSION
|
#ifndef ESP_DOUBLE_RESET_DETECTOR_VERSION
|
||||||
#define ESP_DOUBLE_RESET_DETECTOR_VERSION "ESP_DoubleResetDetector v1.3.2"
|
#define ESP_DOUBLE_RESET_DETECTOR_VERSION "ESP_DoubleResetDetector v1.3.2"
|
||||||
|
|
||||||
#define ESP_DOUBLE_RESET_DETECTOR_VERSION_MAJOR 1
|
#define ESP_DOUBLE_RESET_DETECTOR_VERSION_MAJOR 1
|
||||||
#define ESP_DOUBLE_RESET_DETECTOR_VERSION_MINOR 3
|
#define ESP_DOUBLE_RESET_DETECTOR_VERSION_MINOR 3
|
||||||
#define ESP_DOUBLE_RESET_DETECTOR_VERSION_PATCH 2
|
#define ESP_DOUBLE_RESET_DETECTOR_VERSION_PATCH 2
|
||||||
@ -61,11 +61,11 @@
|
|||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
#if (!ESP_DRD_USE_EEPROM && !ESP_DRD_USE_SPIFFS && !ESP_DRD_USE_LITTLEFS)
|
#if (!ESP_DRD_USE_EEPROM && !ESP_DRD_USE_SPIFFS && !ESP_DRD_USE_LITTLEFS)
|
||||||
|
|
||||||
#if (DOUBLERESETDETECTOR_DEBUG)
|
#if (DOUBLERESETDETECTOR_DEBUG)
|
||||||
#warning Neither EEPROM, SPIFFS nor LittleFS selected. Default to EEPROM
|
#warning Neither EEPROM, SPIFFS nor LittleFS selected. Default to EEPROM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ESP_DRD_USE_EEPROM
|
#ifdef ESP_DRD_USE_EEPROM
|
||||||
#undef ESP_DRD_USE_EEPROM
|
#undef ESP_DRD_USE_EEPROM
|
||||||
#define ESP_DRD_USE_EEPROM true
|
#define ESP_DRD_USE_EEPROM true
|
||||||
@ -77,8 +77,8 @@
|
|||||||
#if (!ESP8266_DRD_USE_RTC && !ESP_DRD_USE_EEPROM && !ESP_DRD_USE_SPIFFS && !ESP_DRD_USE_LITTLEFS)
|
#if (!ESP8266_DRD_USE_RTC && !ESP_DRD_USE_EEPROM && !ESP_DRD_USE_SPIFFS && !ESP_DRD_USE_LITTLEFS)
|
||||||
#if (DOUBLERESETDETECTOR_DEBUG)
|
#if (DOUBLERESETDETECTOR_DEBUG)
|
||||||
#warning Neither RTC, EEPROM, LITTLEFS nor SPIFFS selected. Default to EEPROM
|
#warning Neither RTC, EEPROM, LITTLEFS nor SPIFFS selected. Default to EEPROM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ESP_DRD_USE_EEPROM
|
#ifdef ESP_DRD_USE_EEPROM
|
||||||
#undef ESP_DRD_USE_EEPROM
|
#undef ESP_DRD_USE_EEPROM
|
||||||
#define ESP_DRD_USE_EEPROM true
|
#define ESP_DRD_USE_EEPROM true
|
||||||
@ -102,55 +102,55 @@
|
|||||||
|
|
||||||
#elif ( ESP_DRD_USE_LITTLEFS || ESP_DRD_USE_SPIFFS )
|
#elif ( ESP_DRD_USE_LITTLEFS || ESP_DRD_USE_SPIFFS )
|
||||||
|
|
||||||
#include <FS.h>
|
#include <FS.h>
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
|
|
||||||
#if ESP_DRD_USE_LITTLEFS
|
#if ESP_DRD_USE_LITTLEFS
|
||||||
// Check cores/esp32/esp_arduino_version.h and cores/esp32/core_version.h
|
// Check cores/esp32/esp_arduino_version.h and cores/esp32/core_version.h
|
||||||
//#if ( ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(2, 0, 0) ) //(ESP_ARDUINO_VERSION_MAJOR >= 2)
|
//#if ( ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(2, 0, 0) ) //(ESP_ARDUINO_VERSION_MAJOR >= 2)
|
||||||
#if ( defined(ESP_ARDUINO_VERSION_MAJOR) && (ESP_ARDUINO_VERSION_MAJOR >= 2) )
|
#if ( defined(ESP_ARDUINO_VERSION_MAJOR) && (ESP_ARDUINO_VERSION_MAJOR >= 2) )
|
||||||
#if (DOUBLERESETDETECTOR_DEBUG)
|
#if (DOUBLERESETDETECTOR_DEBUG)
|
||||||
#warning Using ESP32 Core 1.0.6 or 2.0.0+
|
#warning Using ESP32 Core 1.0.6 or 2.0.0+
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// The library has been merged into esp32 core from release 1.0.6
|
// The library has been merged into esp32 core from release 1.0.6
|
||||||
#include <LittleFS.h>
|
#include <LittleFS.h>
|
||||||
|
|
||||||
#define FileFS LittleFS
|
#define FileFS LittleFS
|
||||||
#define FS_Name "LittleFS"
|
#define FS_Name "LittleFS"
|
||||||
|
#else
|
||||||
|
#if (DOUBLERESETDETECTOR_DEBUG)
|
||||||
|
#warning Using ESP32 Core 1.0.5-. You must install LITTLEFS library
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The library has been merged into esp32 core from release 1.0.6
|
||||||
|
#include <LITTLEFS.h> // https://github.com/lorol/LITTLEFS
|
||||||
|
|
||||||
|
#define FileFS LITTLEFS
|
||||||
|
#define FS_Name "LittleFS"
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#if (DOUBLERESETDETECTOR_DEBUG)
|
#include "SPIFFS.h"
|
||||||
#warning Using ESP32 Core 1.0.5-. You must install LITTLEFS library
|
// ESP32 core 1.0.4 still uses SPIFFS
|
||||||
#endif
|
#define FileFS SPIFFS
|
||||||
|
|
||||||
// The library has been merged into esp32 core from release 1.0.6
|
|
||||||
#include <LITTLEFS.h> // https://github.com/lorol/LITTLEFS
|
|
||||||
|
|
||||||
#define FileFS LITTLEFS
|
|
||||||
#define FS_Name "LittleFS"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#include "SPIFFS.h"
|
// From ESP8266 core 2.7.1
|
||||||
// ESP32 core 1.0.4 still uses SPIFFS
|
#include <LittleFS.h>
|
||||||
#define FileFS SPIFFS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
#if ESP_DRD_USE_LITTLEFS
|
||||||
// From ESP8266 core 2.7.1
|
#define FileFS LittleFS
|
||||||
#include <LittleFS.h>
|
#else
|
||||||
|
#define FileFS SPIFFS
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ESP_DRD_USE_LITTLEFS
|
#endif // #if ESP_DRD_USE_EEPROM
|
||||||
#define FileFS LittleFS
|
|
||||||
#else
|
|
||||||
#define FileFS SPIFFS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // #if ESP_DRD_USE_EEPROM
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define DRD_FILENAME "/drd.dat"
|
#define DRD_FILENAME "/drd.dat"
|
||||||
|
|
||||||
#endif //#if ESP_DRD_USE_EEPROM
|
#endif //#if ESP_DRD_USE_EEPROM
|
||||||
|
|
||||||
@ -171,6 +171,7 @@ class DoubleResetDetector
|
|||||||
|
|
||||||
EEPROM.begin(EEPROM_SIZE);
|
EEPROM.begin(EEPROM_SIZE);
|
||||||
#elif ( ESP_DRD_USE_LITTLEFS || ESP_DRD_USE_SPIFFS )
|
#elif ( ESP_DRD_USE_LITTLEFS || ESP_DRD_USE_SPIFFS )
|
||||||
|
|
||||||
// LittleFS / SPIFFS code
|
// LittleFS / SPIFFS code
|
||||||
if (!FileFS.begin())
|
if (!FileFS.begin())
|
||||||
{
|
{
|
||||||
@ -184,6 +185,7 @@ class DoubleResetDetector
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
//RTC only for ESP8266
|
//RTC only for ESP8266
|
||||||
@ -221,7 +223,7 @@ class DoubleResetDetector
|
|||||||
return doubleResetDetected;
|
return doubleResetDetected;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bool waitingForDRD()
|
bool waitingForDRD()
|
||||||
{
|
{
|
||||||
return waitingForDoubleReset;
|
return waitingForDoubleReset;
|
||||||
@ -264,6 +266,7 @@ class DoubleResetDetector
|
|||||||
Serial.printf("EEPROM Flag read = 0x%X\n", DOUBLERESETDETECTOR_FLAG);
|
Serial.printf("EEPROM Flag read = 0x%X\n", DOUBLERESETDETECTOR_FLAG);
|
||||||
#endif
|
#endif
|
||||||
#elif ( ESP_DRD_USE_LITTLEFS || ESP_DRD_USE_SPIFFS )
|
#elif ( ESP_DRD_USE_LITTLEFS || ESP_DRD_USE_SPIFFS )
|
||||||
|
|
||||||
// LittleFS / SPIFFS code
|
// LittleFS / SPIFFS code
|
||||||
if (FileFS.exists(DRD_FILENAME))
|
if (FileFS.exists(DRD_FILENAME))
|
||||||
{
|
{
|
||||||
@ -292,6 +295,7 @@ class DoubleResetDetector
|
|||||||
|
|
||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
//RTC only for ESP8266
|
//RTC only for ESP8266
|
||||||
@ -340,6 +344,7 @@ class DoubleResetDetector
|
|||||||
Serial.println("Saving config file failed");
|
Serial.println("Saving config file failed");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
//RTC only for ESP8266
|
//RTC only for ESP8266
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -15,8 +15,8 @@
|
|||||||
|
|
||||||
Built by Khoi Hoang https://github.com/khoih-prog/ESP_WiFiManager
|
Built by Khoi Hoang https://github.com/khoih-prog/ESP_WiFiManager
|
||||||
Licensed under MIT license
|
Licensed under MIT license
|
||||||
|
|
||||||
Version: 1.11.0
|
Version: 1.12.1
|
||||||
|
|
||||||
Version Modified By Date Comments
|
Version Modified By Date Comments
|
||||||
------- ----------- ---------- -----------
|
------- ----------- ---------- -----------
|
||||||
@ -28,6 +28,8 @@
|
|||||||
1.10.1 K Hoang 11/02/2022 Add LittleFS support to ESP32-C3. Use core LittleFS instead of Lorol's LITTLEFS for v2.0.0+
|
1.10.1 K Hoang 11/02/2022 Add LittleFS support to ESP32-C3. Use core LittleFS instead of Lorol's LITTLEFS for v2.0.0+
|
||||||
1.10.2 K Hoang 13/03/2022 Send CORS header in handleWifiSave() function
|
1.10.2 K Hoang 13/03/2022 Send CORS header in handleWifiSave() function
|
||||||
1.11.0 K Hoang 09/09/2022 Fix ESP32 chipID and add ESP_getChipOUI()
|
1.11.0 K Hoang 09/09/2022 Fix ESP32 chipID and add ESP_getChipOUI()
|
||||||
|
1.12.0 K Hoang 07/10/2022 Optional display Credentials (SSIDs, PWDs) in Config Portal
|
||||||
|
1.12.1 K Hoang 25/10/2022 Using random channel for softAP without password. Add astyle using allman style
|
||||||
*****************************************************************************************************************************/
|
*****************************************************************************************************************************/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
Built by Khoi Hoang https://github.com/khoih-prog/ESP_WiFiManager
|
Built by Khoi Hoang https://github.com/khoih-prog/ESP_WiFiManager
|
||||||
Licensed under MIT license
|
Licensed under MIT license
|
||||||
|
|
||||||
Version: 1.11.0
|
Version: 1.12.1
|
||||||
|
|
||||||
Version Modified By Date Comments
|
Version Modified By Date Comments
|
||||||
------- ----------- ---------- -----------
|
------- ----------- ---------- -----------
|
||||||
@ -28,6 +28,8 @@
|
|||||||
1.10.1 K Hoang 11/02/2022 Add LittleFS support to ESP32-C3. Use core LittleFS instead of Lorol's LITTLEFS for v2.0.0+
|
1.10.1 K Hoang 11/02/2022 Add LittleFS support to ESP32-C3. Use core LittleFS instead of Lorol's LITTLEFS for v2.0.0+
|
||||||
1.10.2 K Hoang 13/03/2022 Send CORS header in handleWifiSave() function
|
1.10.2 K Hoang 13/03/2022 Send CORS header in handleWifiSave() function
|
||||||
1.11.0 K Hoang 09/09/2022 Fix ESP32 chipID and add ESP_getChipOUI()
|
1.11.0 K Hoang 09/09/2022 Fix ESP32 chipID and add ESP_getChipOUI()
|
||||||
|
1.12.0 K Hoang 07/10/2022 Optional display Credentials (SSIDs, PWDs) in Config Portal
|
||||||
|
1.12.1 K Hoang 25/10/2022 Using random channel for softAP without password. Add astyle using allman style
|
||||||
*****************************************************************************************************************************/
|
*****************************************************************************************************************************/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -35,6 +37,8 @@
|
|||||||
#ifndef ESP_WiFiManager_hpp
|
#ifndef ESP_WiFiManager_hpp
|
||||||
#define ESP_WiFiManager_hpp
|
#define ESP_WiFiManager_hpp
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if !( defined(ESP8266) || defined(ESP32) )
|
#if !( defined(ESP8266) || defined(ESP32) )
|
||||||
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
|
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
|
||||||
#elif ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_ESP32S2_THING_PLUS || ARDUINO_MICROS2 || \
|
#elif ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_ESP32S2_THING_PLUS || ARDUINO_MICROS2 || \
|
||||||
@ -52,9 +56,10 @@
|
|||||||
#else
|
#else
|
||||||
#warning Using ESP32_C3 using core v1.0.6-. To follow library instructions to install esp32-c3 core. Only SPIFFS and EEPROM OK.
|
#warning Using ESP32_C3 using core v1.0.6-. To follow library instructions to install esp32-c3 core. Only SPIFFS and EEPROM OK.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#warning You have to select Flash size 2MB and Minimal APP (1.3MB + 700KB) for some boards
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// #warning You have to select Flash size 2MB and Minimal APP (1.3MB + 700KB) for some boards
|
|
||||||
#define USING_ESP32_C3 true
|
#define USING_ESP32_C3 true
|
||||||
#elif ( defined(ARDUINO_ESP32S3_DEV) || defined(ARDUINO_ESP32_S3_BOX) || defined(ARDUINO_TINYS3) || \
|
#elif ( defined(ARDUINO_ESP32S3_DEV) || defined(ARDUINO_ESP32_S3_BOX) || defined(ARDUINO_TINYS3) || \
|
||||||
defined(ARDUINO_PROS3) || defined(ARDUINO_FEATHERS3) )
|
defined(ARDUINO_PROS3) || defined(ARDUINO_FEATHERS3) )
|
||||||
@ -64,16 +69,22 @@
|
|||||||
#define USING_ESP32_S3 true
|
#define USING_ESP32_S3 true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ESP_WIFIMANAGER_VERSION "ESP_WiFiManager v1.11.0"
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define ESP_WIFIMANAGER_VERSION "ESP_WiFiManager v1.12.1"
|
||||||
|
|
||||||
#define ESP_WIFIMANAGER_VERSION_MAJOR 1
|
#define ESP_WIFIMANAGER_VERSION_MAJOR 1
|
||||||
#define ESP_WIFIMANAGER_VERSION_MINOR 11
|
#define ESP_WIFIMANAGER_VERSION_MINOR 12
|
||||||
#define ESP_WIFIMANAGER_VERSION_PATCH 0
|
#define ESP_WIFIMANAGER_VERSION_PATCH 1
|
||||||
|
|
||||||
#define ESP_WIFIMANAGER_VERSION_INT 1011000
|
#define ESP_WIFIMANAGER_VERSION_INT 1012001
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "ESP_WiFiManager_Debug.h"
|
#include "ESP_WiFiManager_Debug.h"
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if ( defined(HTTP_PORT) && (HTTP_PORT < 65536) && (HTTP_PORT > 0) )
|
#if ( defined(HTTP_PORT) && (HTTP_PORT < 65536) && (HTTP_PORT > 0) )
|
||||||
#if (_WIFIMGR_LOGLEVEL_ > 3)
|
#if (_WIFIMGR_LOGLEVEL_ > 3)
|
||||||
#warning Using custom HTTP_PORT
|
#warning Using custom HTTP_PORT
|
||||||
@ -88,6 +99,8 @@
|
|||||||
#define HTTP_PORT_TO_USE 80
|
#define HTTP_PORT_TO_USE 80
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
//KH, for ESP32
|
//KH, for ESP32
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
@ -103,6 +116,8 @@
|
|||||||
#undef max
|
#undef max
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
//KH, for ESP32
|
//KH, for ESP32
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
extern "C"
|
extern "C"
|
||||||
@ -127,7 +142,8 @@
|
|||||||
#define ESP_getChipOUI() getChipOUI() // ((uint32_t)ESP.getEfuseMac())
|
#define ESP_getChipOUI() getChipOUI() // ((uint32_t)ESP.getEfuseMac())
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// New in v1.4.0
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
IPAddress _ap_static_ip;
|
IPAddress _ap_static_ip;
|
||||||
@ -136,6 +152,8 @@ typedef struct
|
|||||||
|
|
||||||
} WiFi_AP_IPConfig;
|
} WiFi_AP_IPConfig;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Thanks to @Amorphous for the feature and code
|
// Thanks to @Amorphous for the feature and code
|
||||||
// (https://community.blynk.cc/t/esp-wifimanager-for-esp32-and-esp8266/42257/13)
|
// (https://community.blynk.cc/t/esp-wifimanager-for-esp32-and-esp8266/42257/13)
|
||||||
// To enable to configure from sketch
|
// To enable to configure from sketch
|
||||||
@ -143,6 +161,8 @@ typedef struct
|
|||||||
#define USE_CONFIGURABLE_DNS false
|
#define USE_CONFIGURABLE_DNS false
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
IPAddress _sta_static_ip;
|
IPAddress _sta_static_ip;
|
||||||
@ -151,11 +171,14 @@ typedef struct
|
|||||||
IPAddress _sta_static_dns1;
|
IPAddress _sta_static_dns1;
|
||||||
IPAddress _sta_static_dns2;
|
IPAddress _sta_static_dns2;
|
||||||
} WiFi_STA_IPConfig;
|
} WiFi_STA_IPConfig;
|
||||||
//////
|
|
||||||
|
|
||||||
#define WFM_LABEL_BEFORE 1
|
////////////////////////////////////////////////////
|
||||||
#define WFM_LABEL_AFTER 2
|
|
||||||
#define WFM_NO_LABEL 0
|
#define WFM_LABEL_BEFORE 1
|
||||||
|
#define WFM_LABEL_AFTER 2
|
||||||
|
#define WFM_NO_LABEL 0
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
/** Handle CORS in pages */
|
/** Handle CORS in pages */
|
||||||
// Default false for using only whenever necessary to avoid security issue when using CORS (Cross-Origin Resource Sharing)
|
// Default false for using only whenever necessary to avoid security issue when using CORS (Cross-Origin Resource Sharing)
|
||||||
@ -165,25 +188,32 @@ typedef struct
|
|||||||
#define USING_CORS_FEATURE false
|
#define USING_CORS_FEATURE false
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
//KH
|
//KH
|
||||||
//Mofidy HTTP_HEAD to WM_HTTP_HEAD_START to avoid conflict in Arduino esp8266 core 2.6.0+
|
//Mofidy HTTP_HEAD to WM_HTTP_HEAD_START to avoid conflict in Arduino esp8266 core 2.6.0+
|
||||||
const char WM_HTTP_200[] PROGMEM = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
|
const char WM_HTTP_200[] PROGMEM = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
|
||||||
const char WM_HTTP_HEAD_START[] PROGMEM = "<!DOCTYPE html><html lang='en'><head><meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'/><title>{v}</title>";
|
const char WM_HTTP_HEAD_START[] PROGMEM = "<!DOCTYPE html><html lang='en'><head><meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'/><title>{v}</title>";
|
||||||
|
|
||||||
// KH, update from v1.0.10
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_STYLE[] PROGMEM = "<style>div{padding:2px;font-size:1em;}body,textarea,input,select{background: 0;border-radius: 0;font: 16px sans-serif;margin: 0}textarea,input,select{outline: 0;font-size: 14px;border: 1px solid #ccc;padding: 8px;width: 90%}.btn a{text-decoration: none}.container{margin: auto;width: 90%}@media(min-width:1200px){.container{margin: auto;width: 30%}}@media(min-width:768px) and (max-width:1200px){.container{margin: auto;width: 50%}}.btn,h2{font-size: 2em}h1{font-size: 3em}.btn{background: #0ae;border-radius: 4px;border: 0;color: #fff;cursor: pointer;display: inline-block;margin: 2px 0;padding: 10px 14px 11px;width: 100%}.btn:hover{background: #09d}.btn:active,.btn:focus{background: #08b}label>*{display: inline}form>*{display: block;margin-bottom: 10px}textarea:focus,input:focus,select:focus{border-color: #5ab}.msg{background: #def;border-left: 5px solid #59d;padding: 1.5em}.q{float: right;width: 64px;text-align: right}.l{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAALVBMVEX///8EBwfBwsLw8PAzNjaCg4NTVVUjJiZDRUUUFxdiZGSho6OSk5Pg4eFydHTCjaf3AAAAZElEQVQ4je2NSw7AIAhEBamKn97/uMXEGBvozkWb9C2Zx4xzWykBhFAeYp9gkLyZE0zIMno9n4g19hmdY39scwqVkOXaxph0ZCXQcqxSpgQpONa59wkRDOL93eAXvimwlbPbwwVAegLS1HGfZAAAAABJRU5ErkJggg==') no-repeat left center;background-size: 1em}input[type='checkbox']{float: left;width: 20px}.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:#ddd}fieldset{border-radius:0.5rem;margin:0px;}</style>";
|
const char WM_HTTP_STYLE[] PROGMEM = "<style>div{padding:2px;font-size:1em;}body,textarea,input,select{background: 0;border-radius: 0;font: 16px sans-serif;margin: 0}textarea,input,select{outline: 0;font-size: 14px;border: 1px solid #ccc;padding: 8px;width: 90%}.btn a{text-decoration: none}.container{margin: auto;width: 90%}@media(min-width:1200px){.container{margin: auto;width: 30%}}@media(min-width:768px) and (max-width:1200px){.container{margin: auto;width: 50%}}.btn,h2{font-size: 2em}h1{font-size: 3em}.btn{background: #0ae;border-radius: 4px;border: 0;color: #fff;cursor: pointer;display: inline-block;margin: 2px 0;padding: 10px 14px 11px;width: 100%}.btn:hover{background: #09d}.btn:active,.btn:focus{background: #08b}label>*{display: inline}form>*{display: block;margin-bottom: 10px}textarea:focus,input:focus,select:focus{border-color: #5ab}.msg{background: #def;border-left: 5px solid #59d;padding: 1.5em}.q{float: right;width: 64px;text-align: right}.l{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAALVBMVEX///8EBwfBwsLw8PAzNjaCg4NTVVUjJiZDRUUUFxdiZGSho6OSk5Pg4eFydHTCjaf3AAAAZElEQVQ4je2NSw7AIAhEBamKn97/uMXEGBvozkWb9C2Zx4xzWykBhFAeYp9gkLyZE0zIMno9n4g19hmdY39scwqVkOXaxph0ZCXQcqxSpgQpONa59wkRDOL93eAXvimwlbPbwwVAegLS1HGfZAAAAABJRU5ErkJggg==') no-repeat left center;background-size: 1em}input[type='checkbox']{float: left;width: 20px}.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:#ddd}fieldset{border-radius:0.5rem;margin:0px;}</style>";
|
||||||
//////
|
|
||||||
|
|
||||||
// KH, update from v1.1.0
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_SCRIPT[] PROGMEM = "<script>function c(l){document.getElementById('s').value=l.innerText||l.textContent;document.getElementById('p').focus();document.getElementById('s1').value=l.innerText||l.textContent;document.getElementById('p1').focus();document.getElementById('timezone').value=timezone.name();}</script>";
|
const char WM_HTTP_SCRIPT[] PROGMEM = "<script>function c(l){document.getElementById('s').value=l.innerText||l.textContent;document.getElementById('p').focus();document.getElementById('s1').value=l.innerText||l.textContent;document.getElementById('p1').focus();document.getElementById('timezone').value=timezone.name();}</script>";
|
||||||
//////
|
|
||||||
|
|
||||||
// From v1.0.9 to permit disable or configure NTP from sketch
|
////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// To permit disable or configure NTP from sketch
|
||||||
#ifndef USE_ESP_WIFIMANAGER_NTP
|
#ifndef USE_ESP_WIFIMANAGER_NTP
|
||||||
// From v1.0.6 to enable NTP config
|
// To enable NTP config
|
||||||
#define USE_ESP_WIFIMANAGER_NTP true
|
#define USE_ESP_WIFIMANAGER_NTP true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if USE_ESP_WIFIMANAGER_NTP
|
#if USE_ESP_WIFIMANAGER_NTP
|
||||||
|
|
||||||
#include "utils/TZ.h"
|
#include "utils/TZ.h"
|
||||||
@ -219,38 +249,62 @@ const char WM_HTTP_SCRIPT_NTP[] PROGMEM = "<script>(function(e){var t=function()
|
|||||||
const char WM_HTTP_SCRIPT_NTP[] PROGMEM = "";
|
const char WM_HTTP_SCRIPT_NTP[] PROGMEM = "";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// KH, update from v1.0.10
|
////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_HEAD_END[] PROGMEM = "</head><body><div class='container'><div style='text-align:left;display:inline-block;min-width:260px;'>";
|
const char WM_HTTP_HEAD_END[] PROGMEM = "</head><body><div class='container'><div style='text-align:left;display:inline-block;min-width:260px;'>";
|
||||||
|
|
||||||
const char WM_FLDSET_START[] PROGMEM = "<fieldset>";
|
const char WM_FLDSET_START[] PROGMEM = "<fieldset>";
|
||||||
const char WM_FLDSET_END[] PROGMEM = "</fieldset>";
|
const char WM_FLDSET_END[] PROGMEM = "</fieldset>";
|
||||||
//////
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_PORTAL_OPTIONS[] PROGMEM = "<form action='/wifi' method='get'><button class='btn'>Configuration</button></form><br/><form action='/i' method='get'><button class='btn'>Information</button></form><br/><form action='/close' method='get'><button class='btn'>Exit Portal</button></form><br/>";
|
const char WM_HTTP_PORTAL_OPTIONS[] PROGMEM = "<form action='/wifi' method='get'><button class='btn'>Configuration</button></form><br/><form action='/i' method='get'><button class='btn'>Information</button></form><br/><form action='/close' method='get'><button class='btn'>Exit Portal</button></form><br/>";
|
||||||
const char WM_HTTP_ITEM[] PROGMEM = "<div><a href='#p' onclick='c(this)'>{v}</a> <span class='q {i}'>{r}%</span></div>";
|
const char WM_HTTP_ITEM[] PROGMEM = "<div><a href='#p' onclick='c(this)'>{v}</a> <span class='q {i}'>{r}%</span></div>";
|
||||||
const char JSON_ITEM[] PROGMEM = "{\"SSID\":\"{v}\", \"Encryption\":{i}, \"Quality\":\"{r}\"}";
|
const char JSON_ITEM[] PROGMEM = "{\"SSID\":\"{v}\", \"Encryption\":{i}, \"Quality\":\"{r}\"}";
|
||||||
|
|
||||||
// KH, update from v1.1.0
|
////////////////////////////////////////////////////
|
||||||
const char WM_HTTP_FORM_START[] PROGMEM = "<form method='get' action='wifisave'><fieldset><div><label>SSID</label><input id='s' name='s' length=32 placeholder='SSID'><div></div></div><div><label>Password</label><input id='p' name='p' length=64 placeholder='password'><div></div></div><div><label>SSID1</label><input id='s1' name='s1' length=32 placeholder='SSID1'><div></div></div><div><label>Password</label><input id='p1' name='p1' length=64 placeholder='password1'><div></div></div></fieldset>";
|
|
||||||
//////
|
// KH, update from v1.12.0
|
||||||
|
// To permit display stored Credentials on CP
|
||||||
|
#ifndef DISPLAY_STORED_CREDENTIALS_IN_CP
|
||||||
|
#define DISPLAY_STORED_CREDENTIALS_IN_CP true
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ( (_WIFIMGR_LOGLEVEL_ > 3) && DISPLAY_STORED_CREDENTIALS_IN_CP )
|
||||||
|
#warning Enable DISPLAY_STORED_CREDENTIALS_IN_CP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if DISPLAY_STORED_CREDENTIALS_IN_CP
|
||||||
|
const char WM_HTTP_FORM_START[] PROGMEM = "<form method='get' action='wifisave'><fieldset><div><label>SSID</label><input value='[[ssid]]' id='s' name='s' length=32 placeholder='SSID'><div></div></div><div><label>Password</label><input value='[[pwd]]' id='p' name='p' length=64 placeholder='password'><div></div></div><div><label>SSID1</label><input value='[[ssid1]]' id='s1' name='s1' length=32 placeholder='SSID1'><div></div></div><div><label>Password</label><input value='[[pwd1]]' id='p1' name='p1' length=64 placeholder='password1'><div></div></div></fieldset>";
|
||||||
|
#else
|
||||||
|
const char WM_HTTP_FORM_START[] PROGMEM = "<form method='get' action='wifisave'><fieldset><div><label>SSID</label><input id='s' name='s' length=32 placeholder='SSID'><div></div></div><div><label>Password</label><input id='p' name='p' length=64 placeholder='password'><div></div></div><div><label>SSID1</label><input id='s1' name='s1' length=32 placeholder='SSID1'><div></div></div><div><label>Password</label><input id='p1' name='p1' length=64 placeholder='password1'><div></div></div></fieldset>";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
// KH, add from v1.0.10
|
|
||||||
const char WM_HTTP_FORM_LABEL_BEFORE[] PROGMEM = "<div><label for='{i}'>{p}</label><input id='{i}' name='{n}' length={l} placeholder='{p}' value='{v}' {c}><div></div></div>";
|
const char WM_HTTP_FORM_LABEL_BEFORE[] PROGMEM = "<div><label for='{i}'>{p}</label><input id='{i}' name='{n}' length={l} placeholder='{p}' value='{v}' {c}><div></div></div>";
|
||||||
const char WM_HTTP_FORM_LABEL_AFTER[] PROGMEM = "<div><input id='{i}' name='{n}' length={l} placeholder='{p}' value='{v}' {c}><label for='{i}'>{p}</label><div></div></div>";
|
const char WM_HTTP_FORM_LABEL_AFTER[] PROGMEM = "<div><input id='{i}' name='{n}' length={l} placeholder='{p}' value='{v}' {c}><label for='{i}'>{p}</label><div></div></div>";
|
||||||
//////
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_FORM_LABEL[] PROGMEM = "<label for='{i}'>{p}</label>";
|
const char WM_HTTP_FORM_LABEL[] PROGMEM = "<label for='{i}'>{p}</label>";
|
||||||
const char WM_HTTP_FORM_PARAM[] PROGMEM = "<input id='{i}' name='{n}' length={l} placeholder='{p}' value='{v}' {c}>";
|
const char WM_HTTP_FORM_PARAM[] PROGMEM = "<input id='{i}' name='{n}' length={l} placeholder='{p}' value='{v}' {c}>";
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_FORM_END[] PROGMEM = "<button class='btn' type='submit'>Save</button></form>";
|
const char WM_HTTP_FORM_END[] PROGMEM = "<button class='btn' type='submit'>Save</button></form>";
|
||||||
|
|
||||||
// KH, update from v1.1.0
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_SAVED[] PROGMEM = "<div class='msg'><b>Credentials Saved</b><br>Try connecting ESP to the {x}/{x1} network. Wait around 10 seconds then check <a href='/'>if it's OK.</a> <p/>The {v} AP will run on the same WiFi channel of the {x}/{x1} AP. You may have to manually reconnect to the {v} AP.</div>";
|
const char WM_HTTP_SAVED[] PROGMEM = "<div class='msg'><b>Credentials Saved</b><br>Try connecting ESP to the {x}/{x1} network. Wait around 10 seconds then check <a href='/'>if it's OK.</a> <p/>The {v} AP will run on the same WiFi channel of the {x}/{x1} AP. You may have to manually reconnect to the {v} AP.</div>";
|
||||||
//////
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_END[] PROGMEM = "</div></body></html>";
|
const char WM_HTTP_END[] PROGMEM = "</div></body></html>";
|
||||||
|
|
||||||
//KH, from v1.1.0
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_HTTP_HEAD_CL[] PROGMEM = "Content-Length";
|
const char WM_HTTP_HEAD_CL[] PROGMEM = "Content-Length";
|
||||||
const char WM_HTTP_HEAD_CT[] PROGMEM = "text/html";
|
const char WM_HTTP_HEAD_CT[] PROGMEM = "text/html";
|
||||||
const char WM_HTTP_HEAD_CT2[] PROGMEM = "text/plain";
|
const char WM_HTTP_HEAD_CT2[] PROGMEM = "text/plain";
|
||||||
@ -264,6 +318,8 @@ const char WM_HTTP_EXPIRES[] PROGMEM = "Expires";
|
|||||||
const char WM_HTTP_CORS[] PROGMEM = "Access-Control-Allow-Origin";
|
const char WM_HTTP_CORS[] PROGMEM = "Access-Control-Allow-Origin";
|
||||||
const char WM_HTTP_CORS_ALLOW_ALL[] PROGMEM = "*";
|
const char WM_HTTP_CORS_ALLOW_ALL[] PROGMEM = "*";
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if USE_AVAILABLE_PAGES
|
#if USE_AVAILABLE_PAGES
|
||||||
const char WM_HTTP_AVAILABLE_PAGES[] PROGMEM = "<h3>Available Pages</h3><table class='table'><thead><tr><th>Page</th><th>Function</th></tr></thead><tbody><tr><td><a href='/'>/</a></td><td>Menu page.</td></tr><tr><td><a href='/wifi'>/wifi</a></td><td>Show WiFi scan results and enter WiFi configuration.</td></tr><tr><td><a href='/wifisave'>/wifisave</a></td><td>Save WiFi configuration information and configure device. Needs variables supplied.</td></tr><tr><td><a href='/close'>/close</a></td><td>Close the configuration server and configuration WiFi network.</td></tr><tr><td><a href='/i'>/i</a></td><td>This page.</td></tr><tr><td><a href='/r'>/r</a></td><td>Delete WiFi configuration and reboot. ESP device will not reconnect to a network until new WiFi configuration data is entered.</td></tr><tr><td><a href='/state'>/state</a></td><td>Current device state in JSON format. Interface for programmatic WiFi configuration.</td></tr><tr><td><a href='/scan'>/scan</a></td><td>Run a WiFi scan and return results in JSON format. Interface for programmatic WiFi configuration.</td></tr></table>";
|
const char WM_HTTP_AVAILABLE_PAGES[] PROGMEM = "<h3>Available Pages</h3><table class='table'><thead><tr><th>Page</th><th>Function</th></tr></thead><tbody><tr><td><a href='/'>/</a></td><td>Menu page.</td></tr><tr><td><a href='/wifi'>/wifi</a></td><td>Show WiFi scan results and enter WiFi configuration.</td></tr><tr><td><a href='/wifisave'>/wifisave</a></td><td>Save WiFi configuration information and configure device. Needs variables supplied.</td></tr><tr><td><a href='/close'>/close</a></td><td>Close the configuration server and configuration WiFi network.</td></tr><tr><td><a href='/i'>/i</a></td><td>This page.</td></tr><tr><td><a href='/r'>/r</a></td><td>Delete WiFi configuration and reboot. ESP device will not reconnect to a network until new WiFi configuration data is entered.</td></tr><tr><td><a href='/state'>/state</a></td><td>Current device state in JSON format. Interface for programmatic WiFi configuration.</td></tr><tr><td><a href='/scan'>/scan</a></td><td>Run a WiFi scan and return results in JSON format. Interface for programmatic WiFi configuration.</td></tr></table>";
|
||||||
#else
|
#else
|
||||||
@ -273,8 +329,8 @@ const char WM_HTTP_AVAILABLE_PAGES[] PROGMEM = "";
|
|||||||
//KH
|
//KH
|
||||||
#define WIFI_MANAGER_MAX_PARAMS 20
|
#define WIFI_MANAGER_MAX_PARAMS 20
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
// New in v1.4.0
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
const char *_id;
|
const char *_id;
|
||||||
@ -284,7 +340,9 @@ typedef struct
|
|||||||
int _labelPlacement;
|
int _labelPlacement;
|
||||||
|
|
||||||
} WMParam_Data;
|
} WMParam_Data;
|
||||||
//////
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
class ESP_WMParameter
|
class ESP_WMParameter
|
||||||
{
|
{
|
||||||
@ -292,17 +350,13 @@ class ESP_WMParameter
|
|||||||
ESP_WMParameter(const char *custom);
|
ESP_WMParameter(const char *custom);
|
||||||
ESP_WMParameter(const char *id, const char *placeholder, const char *defaultValue, const int& length,
|
ESP_WMParameter(const char *id, const char *placeholder, const char *defaultValue, const int& length,
|
||||||
const char *custom = "", const int& labelPlacement = WFM_LABEL_BEFORE);
|
const char *custom = "", const int& labelPlacement = WFM_LABEL_BEFORE);
|
||||||
|
|
||||||
// New in v1.4.0
|
|
||||||
ESP_WMParameter(const WMParam_Data& WMParam_data);
|
ESP_WMParameter(const WMParam_Data& WMParam_data);
|
||||||
//////
|
|
||||||
|
|
||||||
~ESP_WMParameter();
|
~ESP_WMParameter();
|
||||||
|
|
||||||
// New in v1.4.0
|
|
||||||
void setWMParam_Data(const WMParam_Data& WMParam_data);
|
void setWMParam_Data(const WMParam_Data& WMParam_data);
|
||||||
void getWMParam_Data(WMParam_Data& WMParam_data);
|
void getWMParam_Data(WMParam_Data& WMParam_data);
|
||||||
//////
|
|
||||||
|
|
||||||
const char *getID();
|
const char *getID();
|
||||||
const char *getValue();
|
const char *getValue();
|
||||||
@ -323,6 +377,8 @@ class ESP_WMParameter
|
|||||||
friend class ESP_WiFiManager;
|
friend class ESP_WiFiManager;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#define USE_DYNAMIC_PARAMS true
|
#define USE_DYNAMIC_PARAMS true
|
||||||
#define DEFAULT_PORTAL_TIMEOUT 60000L
|
#define DEFAULT_PORTAL_TIMEOUT 60000L
|
||||||
|
|
||||||
@ -332,6 +388,9 @@ class ESP_WMParameter
|
|||||||
#define USE_STATIC_IP_CONFIG_IN_CP true
|
#define USE_STATIC_IP_CONFIG_IN_CP true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
class ESP_WiFiManager
|
class ESP_WiFiManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -340,10 +399,9 @@ class ESP_WiFiManager
|
|||||||
|
|
||||||
~ESP_WiFiManager();
|
~ESP_WiFiManager();
|
||||||
|
|
||||||
// Update feature from v1.0.11. Can use with STA staticIP now
|
// Can use with STA staticIP now
|
||||||
bool autoConnect();
|
bool autoConnect();
|
||||||
bool autoConnect(char const *apName, char const *apPassword = NULL);
|
bool autoConnect(char const *apName, char const *apPassword = NULL);
|
||||||
//////
|
|
||||||
|
|
||||||
//if you want to start the config portal
|
//if you want to start the config portal
|
||||||
bool startConfigPortal();
|
bool startConfigPortal();
|
||||||
@ -351,6 +409,7 @@ class ESP_WiFiManager
|
|||||||
|
|
||||||
// get the AP name of the config portal, so it can be used in the callback
|
// get the AP name of the config portal, so it can be used in the callback
|
||||||
String getConfigPortalSSID();
|
String getConfigPortalSSID();
|
||||||
|
|
||||||
// get the AP password of the config portal, so it can be used in the callback
|
// get the AP password of the config portal, so it can be used in the callback
|
||||||
String getConfigPortalPW();
|
String getConfigPortalPW();
|
||||||
|
|
||||||
@ -365,30 +424,25 @@ class ESP_WiFiManager
|
|||||||
//sets timeout for which to attempt connecting, usefull if you get a lot of failed connects
|
//sets timeout for which to attempt connecting, usefull if you get a lot of failed connects
|
||||||
void setConnectTimeout(const unsigned long& seconds);
|
void setConnectTimeout(const unsigned long& seconds);
|
||||||
|
|
||||||
|
|
||||||
void setDebugOutput(bool debug);
|
void setDebugOutput(bool debug);
|
||||||
//defaults to not showing anything under 8% signal quality if called
|
//defaults to not showing anything under 8% signal quality if called
|
||||||
void setMinimumSignalQuality(const int& quality = 8);
|
void setMinimumSignalQuality(const int& quality = 8);
|
||||||
|
|
||||||
// KH, new from v1.0.10 to enable dynamic/random channel
|
// KH, To enable dynamic/random channel
|
||||||
int setConfigPortalChannel(const int& channel = 1);
|
int setConfigPortalChannel(const int& channel = 1);
|
||||||
//////
|
//////
|
||||||
|
|
||||||
//sets a custom ip /gateway /subnet configuration
|
//sets a custom ip /gateway /subnet configuration
|
||||||
void setAPStaticIPConfig(const IPAddress& ip, const IPAddress& gw, const IPAddress& sn);
|
void setAPStaticIPConfig(const IPAddress& ip, const IPAddress& gw, const IPAddress& sn);
|
||||||
|
|
||||||
// New in v1.4.0
|
|
||||||
void setAPStaticIPConfig(const WiFi_AP_IPConfig& WM_AP_IPconfig);
|
void setAPStaticIPConfig(const WiFi_AP_IPConfig& WM_AP_IPconfig);
|
||||||
void getAPStaticIPConfig(WiFi_AP_IPConfig& WM_AP_IPconfig);
|
void getAPStaticIPConfig(WiFi_AP_IPConfig& WM_AP_IPconfig);
|
||||||
//////
|
|
||||||
|
|
||||||
//sets config for a static IP
|
//sets config for a static IP
|
||||||
void setSTAStaticIPConfig(const IPAddress& ip, const IPAddress& gw, const IPAddress& sn);
|
void setSTAStaticIPConfig(const IPAddress& ip, const IPAddress& gw, const IPAddress& sn);
|
||||||
|
|
||||||
// New in v1.4.0
|
|
||||||
void setSTAStaticIPConfig(const WiFi_STA_IPConfig& WM_STA_IPconfig);
|
void setSTAStaticIPConfig(const WiFi_STA_IPConfig& WM_STA_IPconfig);
|
||||||
void getSTAStaticIPConfig(WiFi_STA_IPConfig& WM_STA_IPconfig);
|
void getSTAStaticIPConfig(WiFi_STA_IPConfig& WM_STA_IPconfig);
|
||||||
//////
|
|
||||||
|
|
||||||
#if USE_CONFIGURABLE_DNS
|
#if USE_CONFIGURABLE_DNS
|
||||||
void setSTAStaticIPConfig(const IPAddress& ip, const IPAddress& gw, const IPAddress& sn,
|
void setSTAStaticIPConfig(const IPAddress& ip, const IPAddress& gw, const IPAddress& sn,
|
||||||
@ -397,50 +451,75 @@ class ESP_WiFiManager
|
|||||||
|
|
||||||
//called when AP mode and config portal is started
|
//called when AP mode and config portal is started
|
||||||
void setAPCallback(void(*func)(ESP_WiFiManager*));
|
void setAPCallback(void(*func)(ESP_WiFiManager*));
|
||||||
|
|
||||||
//called when settings have been changed and connection was successful
|
//called when settings have been changed and connection was successful
|
||||||
void setSaveConfigCallback(void(*func)());
|
void setSaveConfigCallback(void(*func)());
|
||||||
|
|
||||||
#if USE_DYNAMIC_PARAMS
|
#if USE_DYNAMIC_PARAMS
|
||||||
//adds a custom parameter
|
//adds a custom parameter
|
||||||
bool addParameter(ESP_WMParameter *p);
|
bool addParameter(ESP_WMParameter *p);
|
||||||
#else
|
#else
|
||||||
//adds a custom parameter
|
//adds a custom parameter
|
||||||
void addParameter(ESP_WMParameter *p);
|
void addParameter(ESP_WMParameter *p);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//if this is set, it will exit after config, even if connection is unsucessful.
|
//if this is set, it will exit after config, even if connection is unsucessful.
|
||||||
void setBreakAfterConfig(bool shouldBreak);
|
void setBreakAfterConfig(bool shouldBreak);
|
||||||
|
|
||||||
//if this is set, try WPS setup when starting (this will delay config portal for up to 2 mins)
|
//if this is set, try WPS setup when starting (this will delay config portal for up to 2 mins)
|
||||||
//TODO
|
//TODO
|
||||||
//if this is set, customise style
|
//if this is set, customise style
|
||||||
void setCustomHeadElement(const char* element);
|
void setCustomHeadElement(const char* element);
|
||||||
|
|
||||||
//if this is true, remove duplicated Access Points - defaut true
|
//if this is true, remove duplicated Access Points - defaut true
|
||||||
void setRemoveDuplicateAPs(bool removeDuplicates);
|
void setRemoveDuplicateAPs(bool removeDuplicates);
|
||||||
|
|
||||||
//Scan for WiFiNetworks in range and sort by signal strength
|
//Scan for WiFiNetworks in range and sort by signal strength
|
||||||
//space for indices array allocated on the heap and should be freed when no longer required
|
//space for indices array allocated on the heap and should be freed when no longer required
|
||||||
int scanWifiNetworks(int **indicesptr);
|
int scanWifiNetworks(int **indicesptr);
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// KH add to display SSIDs and PWDs in CP
|
||||||
|
void setCredentials(const char* ssid, const char* pwd, const char* ssid1, const char* pwd1)
|
||||||
|
{
|
||||||
|
_ssid = String(ssid);
|
||||||
|
_pass = String(pwd);
|
||||||
|
_ssid1 = String(ssid1);
|
||||||
|
_pass1 = String(pwd1);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void setCredentials(String & ssid, String & pwd, String & ssid1, String & pwd1)
|
||||||
|
{
|
||||||
|
_ssid = ssid;
|
||||||
|
_pass = pwd;
|
||||||
|
_ssid1 = ssid1;
|
||||||
|
_pass1 = pwd1;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
// return SSID of router in STA mode got from config portal. NULL if no user's input //KH
|
// return SSID of router in STA mode got from config portal. NULL if no user's input //KH
|
||||||
String getSSID()
|
inline String getSSID()
|
||||||
{
|
{
|
||||||
return _ssid;
|
return _ssid;
|
||||||
}
|
}
|
||||||
|
|
||||||
// return password of router in STA mode got from config portal. NULL if no user's input //KH
|
// return password of router in STA mode got from config portal. NULL if no user's input //KH
|
||||||
String getPW()
|
inline String getPW()
|
||||||
{
|
{
|
||||||
return _pass;
|
return _pass;
|
||||||
}
|
}
|
||||||
|
|
||||||
// New from v1.1.0
|
// New from v1.1.0
|
||||||
// return SSID of router in STA mode got from config portal. NULL if no user's input //KH
|
// return SSID of router in STA mode got from config portal. NULL if no user's input //KH
|
||||||
String getSSID1()
|
inline String getSSID1()
|
||||||
{
|
{
|
||||||
return _ssid1;
|
return _ssid1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// return password of router in STA mode got from config portal. NULL if no user's input //KH
|
// return password of router in STA mode got from config portal. NULL if no user's input //KH
|
||||||
String getPW1()
|
inline String getPW1()
|
||||||
{
|
{
|
||||||
return _pass1;
|
return _pass1;
|
||||||
}
|
}
|
||||||
@ -466,9 +545,10 @@ class ESP_WiFiManager
|
|||||||
else
|
else
|
||||||
return String("");
|
return String("");
|
||||||
}
|
}
|
||||||
//////
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
// New from v1.1.1, for configure CORS Header, default to WM_HTTP_CORS_ALLOW_ALL = "*"
|
// New For configuring CORS Header, default to WM_HTTP_CORS_ALLOW_ALL = "*"
|
||||||
#if USING_CORS_FEATURE
|
#if USING_CORS_FEATURE
|
||||||
void setCORSHeader(const char* CORSHeaders)
|
void setCORSHeader(const char* CORSHeaders)
|
||||||
{
|
{
|
||||||
@ -477,11 +557,13 @@ class ESP_WiFiManager
|
|||||||
LOGWARN1(F("Set CORS Header to : "), _CORS_Header);
|
LOGWARN1(F("Set CORS Header to : "), _CORS_Header);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* getCORSHeader()
|
inline const char* getCORSHeader()
|
||||||
{
|
{
|
||||||
return _CORS_Header;
|
return _CORS_Header;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
//returns the list of Parameters
|
//returns the list of Parameters
|
||||||
ESP_WMParameter** getParameters();
|
ESP_WMParameter** getParameters();
|
||||||
@ -495,7 +577,7 @@ class ESP_WiFiManager
|
|||||||
String getStoredWiFiPass();
|
String getStoredWiFiPass();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
String WiFi_SSID()
|
inline String WiFi_SSID()
|
||||||
{
|
{
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
return WiFi.SSID();
|
return WiFi.SSID();
|
||||||
@ -504,7 +586,7 @@ class ESP_WiFiManager
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
String WiFi_Pass()
|
inline String WiFi_Pass()
|
||||||
{
|
{
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
return WiFi.psk();
|
return WiFi.psk();
|
||||||
@ -538,18 +620,19 @@ class ESP_WiFiManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if USE_ESP_WIFIMANAGER_NTP
|
#if USE_ESP_WIFIMANAGER_NTP
|
||||||
|
|
||||||
String getTimezoneName()
|
inline String getTimezoneName()
|
||||||
{
|
{
|
||||||
return _timezoneName;
|
return _timezoneName;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setTimezoneName(const String& inTimezoneName)
|
inline void setTimezoneName(const String& inTimezoneName)
|
||||||
{
|
{
|
||||||
_timezoneName = inTimezoneName;
|
_timezoneName = inTimezoneName;
|
||||||
}
|
}
|
||||||
//////
|
|
||||||
|
|
||||||
//See: https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html
|
//See: https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html
|
||||||
// EST5EDT,M3.2.0,M11.1.0 (for America/New_York)
|
// EST5EDT,M3.2.0,M11.1.0 (for America/New_York)
|
||||||
@ -584,10 +667,10 @@ class ESP_WiFiManager
|
|||||||
{
|
{
|
||||||
return getTZ(timezoneName.c_str());
|
return getTZ(timezoneName.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<DNSServer> dnsServer;
|
std::unique_ptr<DNSServer> dnsServer;
|
||||||
|
|
||||||
@ -613,16 +696,18 @@ class ESP_WiFiManager
|
|||||||
String _ssid = "";
|
String _ssid = "";
|
||||||
String _pass = "";
|
String _pass = "";
|
||||||
|
|
||||||
// New from v1.1.0
|
|
||||||
String _ssid1 = "";
|
String _ssid1 = "";
|
||||||
String _pass1 = "";
|
String _pass1 = "";
|
||||||
//////
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if USE_ESP_WIFIMANAGER_NTP
|
#if USE_ESP_WIFIMANAGER_NTP
|
||||||
// Timezone info
|
// Timezone info
|
||||||
String _timezoneName = "";
|
String _timezoneName = "";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
unsigned long _configPortalTimeout = 0;
|
unsigned long _configPortalTimeout = 0;
|
||||||
|
|
||||||
unsigned long _connectTimeout = 0;
|
unsigned long _connectTimeout = 0;
|
||||||
@ -631,20 +716,19 @@ class ESP_WiFiManager
|
|||||||
int numberOfNetworks;
|
int numberOfNetworks;
|
||||||
int *networkIndices;
|
int *networkIndices;
|
||||||
|
|
||||||
// KH, new from v1.0.10 to enable dynamic/random channel
|
// KH, To enable dynamic/random channel
|
||||||
// default to channel 1
|
// default to channel 1
|
||||||
#define MIN_WIFI_CHANNEL 1
|
#define MIN_WIFI_CHANNEL 1
|
||||||
#define MAX_WIFI_CHANNEL 11 // Channel 12,13 is flaky, because of bad number 13 ;-)
|
#define MAX_WIFI_CHANNEL 11 // Channel 12,13 is flaky, because of bad number 13 ;-)
|
||||||
|
|
||||||
int _WiFiAPChannel = 1;
|
int _WiFiAPChannel = 1;
|
||||||
//////
|
|
||||||
|
|
||||||
// New in v1.4.0
|
|
||||||
WiFi_AP_IPConfig _WiFi_AP_IPconfig;
|
WiFi_AP_IPConfig _WiFi_AP_IPconfig;
|
||||||
|
|
||||||
WiFi_STA_IPConfig _WiFi_STA_IPconfig = { IPAddress(0, 0, 0, 0), IPAddress(192, 168, 2, 1), IPAddress(255, 255, 255, 0),
|
WiFi_STA_IPConfig _WiFi_STA_IPconfig = { IPAddress(0, 0, 0, 0), IPAddress(192, 168, 2, 1), IPAddress(255, 255, 255, 0),
|
||||||
IPAddress(192, 168, 2, 1), IPAddress(8, 8, 8, 8) };
|
IPAddress(192, 168, 2, 1), IPAddress(8, 8, 8, 8) };
|
||||||
//////
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
int _paramsCount = 0;
|
int _paramsCount = 0;
|
||||||
int _minimumQuality = -1;
|
int _minimumQuality = -1;
|
||||||
@ -656,23 +740,15 @@ class ESP_WiFiManager
|
|||||||
|
|
||||||
int status = WL_IDLE_STATUS;
|
int status = WL_IDLE_STATUS;
|
||||||
|
|
||||||
// New from v1.1.0, for configure CORS Header, default to WM_HTTP_CORS_ALLOW_ALL = "*"
|
// For configuring CORS Header, default to WM_HTTP_CORS_ALLOW_ALL = "*"
|
||||||
#if USING_CORS_FEATURE
|
#if USING_CORS_FEATURE
|
||||||
const char* _CORS_Header = WM_HTTP_CORS_ALLOW_ALL; //"*";
|
const char* _CORS_Header = WM_HTTP_CORS_ALLOW_ALL; //"*";
|
||||||
#endif
|
#endif
|
||||||
//////
|
|
||||||
|
void setWifiStaticIP();
|
||||||
// New v1.0.8
|
|
||||||
void setWifiStaticIP();
|
|
||||||
|
|
||||||
// New v1.1.0
|
|
||||||
int reconnectWifi();
|
int reconnectWifi();
|
||||||
//////
|
|
||||||
|
|
||||||
// New v1.0.11
|
|
||||||
int connectWifi(const String& ssid = "", const String& pass = "");
|
int connectWifi(const String& ssid = "", const String& pass = "");
|
||||||
//////
|
|
||||||
|
|
||||||
uint8_t waitForConnectResult();
|
uint8_t waitForConnectResult();
|
||||||
|
|
||||||
void handleRoot();
|
void handleRoot();
|
||||||
@ -702,7 +778,9 @@ class ESP_WiFiManager
|
|||||||
bool _debug = false; //true;
|
bool _debug = false; //true;
|
||||||
|
|
||||||
void(*_apcallback) (ESP_WiFiManager*) = NULL;
|
void(*_apcallback) (ESP_WiFiManager*) = NULL;
|
||||||
void(*_savecallback)() = NULL;
|
void(*_savecallback)() = NULL;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if USE_DYNAMIC_PARAMS
|
#if USE_DYNAMIC_PARAMS
|
||||||
int _max_params;
|
int _max_params;
|
||||||
@ -711,6 +789,8 @@ class ESP_WiFiManager
|
|||||||
ESP_WMParameter* _params[WIFI_MANAGER_MAX_PARAMS];
|
ESP_WMParameter* _params[WIFI_MANAGER_MAX_PARAMS];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
template <typename Generic>
|
template <typename Generic>
|
||||||
void DEBUG_WM(Generic text);
|
void DEBUG_WM(Generic text);
|
||||||
|
|
||||||
@ -723,9 +803,12 @@ class ESP_WiFiManager
|
|||||||
auto optionalIPFromString(...) -> bool
|
auto optionalIPFromString(...) -> bool
|
||||||
{
|
{
|
||||||
LOGINFO("NO fromString METHOD ON IPAddress, you need ESP8266 core 2.1.0 or newer for Custom IP configuration to work.");
|
LOGINFO("NO fromString METHOD ON IPAddress, you need ESP8266 core 2.1.0 or newer for Custom IP configuration to work.");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
#endif // ESP_WiFiManager_h
|
#endif // ESP_WiFiManager_h
|
||||||
|
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
|
|
||||||
Built by Khoi Hoang https://github.com/khoih-prog/ESP_WiFiManager
|
Built by Khoi Hoang https://github.com/khoih-prog/ESP_WiFiManager
|
||||||
Licensed under MIT license
|
Licensed under MIT license
|
||||||
|
|
||||||
Version: 1.11.0
|
Version: 1.12.1
|
||||||
|
|
||||||
Version Modified By Date Comments
|
Version Modified By Date Comments
|
||||||
------- ----------- ---------- -----------
|
------- ----------- ---------- -----------
|
||||||
@ -28,6 +28,8 @@
|
|||||||
1.10.1 K Hoang 11/02/2022 Add LittleFS support to ESP32-C3. Use core LittleFS instead of Lorol's LITTLEFS for v2.0.0+
|
1.10.1 K Hoang 11/02/2022 Add LittleFS support to ESP32-C3. Use core LittleFS instead of Lorol's LITTLEFS for v2.0.0+
|
||||||
1.10.2 K Hoang 13/03/2022 Send CORS header in handleWifiSave() function
|
1.10.2 K Hoang 13/03/2022 Send CORS header in handleWifiSave() function
|
||||||
1.11.0 K Hoang 09/09/2022 Fix ESP32 chipID and add ESP_getChipOUI()
|
1.11.0 K Hoang 09/09/2022 Fix ESP32 chipID and add ESP_getChipOUI()
|
||||||
|
1.12.0 K Hoang 07/10/2022 Optional display Credentials (SSIDs, PWDs) in Config Portal
|
||||||
|
1.12.1 K Hoang 25/10/2022 Using random channel for softAP without password. Add astyle using allman style
|
||||||
*****************************************************************************************************************************/
|
*****************************************************************************************************************************/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -35,12 +37,16 @@
|
|||||||
#ifndef ESP_WiFiManager_Debug_H
|
#ifndef ESP_WiFiManager_Debug_H
|
||||||
#define ESP_WiFiManager_Debug_H
|
#define ESP_WiFiManager_Debug_H
|
||||||
|
|
||||||
|
//////////////////////////////////////////
|
||||||
|
|
||||||
#ifdef WIFIMGR_DEBUG_PORT
|
#ifdef WIFIMGR_DEBUG_PORT
|
||||||
#define WM_DBG_PORT WIFIMGR_DEBUG_PORT
|
#define WM_DBG_PORT WIFIMGR_DEBUG_PORT
|
||||||
#else
|
#else
|
||||||
#define WM_DBG_PORT Serial
|
#define WM_DBG_PORT Serial
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//////////////////////////////////////////
|
||||||
|
|
||||||
// Change _WIFIMGR_LOGLEVEL_ to set tracing and logging verbosity
|
// Change _WIFIMGR_LOGLEVEL_ to set tracing and logging verbosity
|
||||||
// 0: DISABLED: no logging
|
// 0: DISABLED: no logging
|
||||||
// 1: ERROR: errors
|
// 1: ERROR: errors
|
||||||
@ -52,6 +58,8 @@
|
|||||||
#define _WIFIMGR_LOGLEVEL_ 0
|
#define _WIFIMGR_LOGLEVEL_ 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//////////////////////////////////////////
|
||||||
|
|
||||||
const char WM_MARK[] = "[WM] ";
|
const char WM_MARK[] = "[WM] ";
|
||||||
const char WM_SP[] = " ";
|
const char WM_SP[] = " ";
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -15,8 +15,8 @@ include_dir = lib
|
|||||||
[common_env_data]
|
[common_env_data]
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
platform = espressif8266 @ 4.0.1
|
platform = espressif8266 @ 4.1.0
|
||||||
platform32 = espressif32 @ 5.2.0
|
platform32 = espressif32 @ 6.0.0
|
||||||
framework = arduino
|
framework = arduino
|
||||||
board = d1_mini
|
board = d1_mini
|
||||||
build_unflags =
|
build_unflags =
|
||||||
@ -49,13 +49,13 @@ lib_deps =
|
|||||||
# https://github.com/mp-se/Arduino-Temperature-Control-Library
|
# https://github.com/mp-se/Arduino-Temperature-Control-Library
|
||||||
# https://github.com/khoih-prog/ESP_WiFiManager
|
# https://github.com/khoih-prog/ESP_WiFiManager
|
||||||
# https://github.com/khoih-prog/ESP_DoubleResetDetector
|
# https://github.com/khoih-prog/ESP_DoubleResetDetector
|
||||||
https://github.com/mp-se/tinyexpr # https://github.com/codeplea/tinyexpr
|
https://github.com/mp-se/tinyexpr#v1.0.0
|
||||||
https://github.com/mp-se/Arduino-Log#1.1.1 # https://github.com/thijse/Arduino-Log
|
https://github.com/mp-se/Arduino-Log#1.1.1
|
||||||
https://github.com/mp-se/ArduinoJson#v6.18.5 # https://github.com/bblanchon/ArduinoJson
|
https://github.com/mp-se/ArduinoJson#v6.20.0
|
||||||
https://github.com/mp-se/arduinoCurveFitting#v1.0.6 # https://github.com/Rotario/arduinoCurveFitting
|
https://github.com/mp-se/arduinoCurveFitting#v1.0.6
|
||||||
https://github.com/mp-se/arduino-mqtt#v2.5.0 # https://github.com/256dpi/arduino-mqtt
|
https://github.com/mp-se/arduino-mqtt#v2.5.1
|
||||||
lib_deps32 =
|
lib_deps32 =
|
||||||
https://github.com/mp-se/NimBLE-Arduino#1.3.8 # https://github.com/h2zero/NimBLE-Arduino
|
https://github.com/mp-se/NimBLE-Arduino#1.4.1
|
||||||
extra_scripts =
|
extra_scripts =
|
||||||
script/copy_firmware.py
|
script/copy_firmware.py
|
||||||
script/create_versionjson.py
|
script/create_versionjson.py
|
||||||
@ -118,7 +118,7 @@ build_flags =
|
|||||||
${common_env_data.build_flags}
|
${common_env_data.build_flags}
|
||||||
-D LOG_LEVEL=4
|
-D LOG_LEVEL=4
|
||||||
lib_deps =
|
lib_deps =
|
||||||
https://github.com/mp-se/incbin # https://github.com/graphitemaster/incbin
|
https://github.com/mp-se/incbin#v1.0.0
|
||||||
https://github.com/bxparks/AUnit#v1.6.1
|
https://github.com/bxparks/AUnit#v1.6.1
|
||||||
${common_env_data.lib_deps}
|
${common_env_data.lib_deps}
|
||||||
board = ${common_env_data.board}
|
board = ${common_env_data.board}
|
||||||
|
@ -3,6 +3,25 @@
|
|||||||
Releases
|
Releases
|
||||||
########
|
########
|
||||||
|
|
||||||
|
v1.3.0
|
||||||
|
======
|
||||||
|
|
||||||
|
Issues adressed
|
||||||
|
++++++++++++++++
|
||||||
|
* BUG: Clarified that its the bucket ID and auth TOKEN for influxdb (config page)
|
||||||
|
|
||||||
|
Other
|
||||||
|
+++++
|
||||||
|
* Updated platformio esp8266 to v4.1.0
|
||||||
|
* Updated platformio esp32 to v6.0.0
|
||||||
|
* Updated h2zero/NimBLE-Arduino to b 1.4.1
|
||||||
|
* Updated 256dpi/arduino-mqtt to v2.5.1
|
||||||
|
* Created tag v1.0.0 for codeplea/tinyexpr to get control over releases
|
||||||
|
* Created tag v1.0.0 for graphitemaster/incbin to get control over releases
|
||||||
|
* Updated bblanchon/ArduinoJson to v6.20.0
|
||||||
|
* Updated khoih-prog/ESP_WiFiManager to v1.12.1
|
||||||
|
* Updated khoih-prog/ESP_DoubleResetDetector to v1.3.2
|
||||||
|
|
||||||
v1.2.1
|
v1.2.1
|
||||||
======
|
======
|
||||||
|
|
||||||
@ -12,7 +31,7 @@ Issues adressed
|
|||||||
|
|
||||||
Other
|
Other
|
||||||
+++++
|
+++++
|
||||||
* Update tinyexpr library to latest baseline. For forumula evaluation.
|
* Update tinyexpr library to latest baseline (Used for forumula evaluation).
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
+++++++++++++
|
+++++++++++++
|
||||||
|
Loading…
Reference in New Issue
Block a user