diff --git a/include/Consts.h b/include/Consts.h index a0b8d159..2a228f76 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -2,11 +2,14 @@ //===========Firmware============================================================================================================================================= #define FIRMWARE_VERSION 274 -#define ESP8266_FLASH_SIZE_1MB true +#define ESP8266_FLASH_SIZE_1MB false //===========FileSystem============================================================================================================================================== -#define USE_LITTLEFS false +#define USE_LITTLEFS true //================================================================================================================================================================== #define NUM_BUTTONS 6 +#ifndef LED_BUILTIN +#define LED_BUILTIN 2 +#endif #define LED_PIN LED_BUILTIN //===========MQTT================================================================================================================================================= #define MQTT_RECONNECT_INTERVAL 20000 diff --git a/include/FileSystem.h b/include/FileSystem.h index 48706d84..ae31147e 100644 --- a/include/FileSystem.h +++ b/include/FileSystem.h @@ -8,8 +8,16 @@ #include +#ifdef ESP32 +#include +extern FS* filesystem; +#define FileFS SPIFFS +#define FS_NAME "SPIFFS" +#endif + +#ifdef ESP8266 #if USE_LITTLEFS -#include +#include "LittleFS.h" extern FS LittleFS; using littlefs_impl::LittleFSConfig; extern FS* filesystem; @@ -20,7 +28,9 @@ extern FS* filesystem; #define FileFS SPIFFS #define FS_NAME "SPIFFS" #endif - +#endif extern void getFSInfo(); -extern bool getInfo(FSInfo& info); \ No newline at end of file +#ifdef ESP8266 +extern bool getInfo(FSInfo& info); +#endif \ No newline at end of file diff --git a/include/SoftUART.h b/include/SoftUART.h index 8b928a36..6cd707f9 100644 --- a/include/SoftUART.h +++ b/include/SoftUART.h @@ -3,7 +3,14 @@ #ifdef uartEnable #include "SoftwareSerial.h" +#ifdef ESP8266 +#include extern SoftwareSerial* myUART; +#else +#include +extern HardwareSerial* myUART; +#endif + extern void uartInit(); extern void uartHandle(); diff --git a/platformio.ini b/platformio.ini index 1e8b8ece..28d42848 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [platformio] -default_envs = esp8266_01_1m +default_envs = esp32 [common_env_data] lib_deps_external = @@ -28,6 +28,7 @@ lib_deps_internal = [env:esp32] framework = arduino board = esp32dev +;board_build.ldscript = eagle.flash.4m2m.ld platform = https://github.com/platformio/platform-espressif32.git lib_deps = ${common_env_data.lib_deps_external} @@ -36,11 +37,12 @@ lib_deps = madhephaestus/ESP32Servo luc-github/ESP32SSDP CTBot + EspSoftwareSerial monitor_filters = esp32_exception_decoder upload_speed = 921600 monitor_speed = 115200 -board_build.filesystem = littlefs -extra_scripts = ./tools/littlefsbuilder.py +;board_build.filesystem = littlefs +;extra_scripts = ./tools/littlefsbuilder.py [env:esp8266_01_1m] framework = arduino diff --git a/src/FileSystem.cpp b/src/FileSystem.cpp index 2c65f899..a73e6657 100644 --- a/src/FileSystem.cpp +++ b/src/FileSystem.cpp @@ -1,21 +1,27 @@ #include "FileSystem.h" + #include "Global.h" +#ifdef ESP8266 +bool getInfo(FSInfo& info) { + return FileFS.info(info); +} + // Информация о ФС void getFSInfo() { FSInfo buf; if (getInfo(buf)) { SerialPrint("I", F("FS"), F("Get FS info completed")); - size_t totalBytes = buf.totalBytes; // всего - size_t usedBytes = buf.usedBytes; // использовано - size_t maxOpenFiles = buf.maxOpenFiles; // лимит на открые файлы + size_t totalBytes = buf.totalBytes; // всего + size_t usedBytes = buf.usedBytes; // использовано + size_t maxOpenFiles = buf.maxOpenFiles; // лимит на открые файлы size_t blockSize = buf.blockSize; size_t pageSize = buf.pageSize; - size_t maxPathLength = buf.maxPathLength; // лимит на пути и имена файлов + size_t maxPathLength = buf.maxPathLength; // лимит на пути и имена файлов size_t freeBytes = totalBytes - usedBytes; - float freePer = ((float) freeBytes / totalBytes) * 100; - + float freePer = ((float)freeBytes / totalBytes) * 100; + jsonWriteStr(configSetupJson, F("freeBytes"), String(freePer) + "% (" + prettyBytes(freeBytes) + ")"); //SerialPrint("I", F("FS"), "totalBytes=" + String(totalBytes)); @@ -26,12 +32,8 @@ void getFSInfo() { //SerialPrint("I", F("FS"), "maxPathLength=" + String(maxPathLength)); //SerialPrint("I", F("FS"), "freeBytes=" + String(freeBytes)); //SerialPrint("I", F("FS"), "freePer=" + String(freePer)); - } - else { + } else { SerialPrint("E", F("FS"), F("FS info error")); } } - -bool getInfo(FSInfo& info) { - return FileFS.info(info); -} \ No newline at end of file +#endif diff --git a/src/Utils/WiFiUtils.cpp b/src/Utils/WiFiUtils.cpp index 8a948ee7..2f09705d 100644 --- a/src/Utils/WiFiUtils.cpp +++ b/src/Utils/WiFiUtils.cpp @@ -1,11 +1,11 @@ #include "Utils/WiFiUtils.h" + #include "FileSystem.h" void routerConnect() { - WiFi.setAutoConnect(false); WiFi.persistent(false); - + setLedStatus(LED_SLOW); WiFi.mode(WIFI_STA); byte tries = 20; @@ -15,10 +15,13 @@ void routerConnect() { if (_ssid == "" && _password == "") { WiFi.begin(); - } - else { + } else { WiFi.begin(_ssid.c_str(), _password.c_str()); +#ifdef ESP32 + WiFi.setTxPower(WIFI_POWER_19_5dBm); +#else WiFi.setOutputPower(20.5); +#endif SerialPrint("I", "WIFI", "ssid: " + _ssid); } @@ -35,8 +38,7 @@ void routerConnect() { if (WiFi.status() != WL_CONNECTED) { Serial.println(""); startAPMode(); - } - else { + } else { Serial.println(""); SerialPrint("I", "WIFI", "http://" + WiFi.localIP().toString()); jsonWriteStr(configSetupJson, "ip", WiFi.localIP().toString()); @@ -80,7 +82,6 @@ bool startAPMode() { return true; } - boolean RouterFind(String ssid) { bool res = false; int n = WiFi.scanComplete(); @@ -121,24 +122,19 @@ uint8_t RSSIquality() { if (WiFi.status() == WL_CONNECTED) { int rssi = WiFi.RSSI(); if (rssi >= -50) { - res = 6; //"Excellent"; + res = 6; //"Excellent"; + } else if (rssi < -50 && rssi >= -60) { + res = 5; //"Very good"; + } else if (rssi < -60 && rssi >= -70) { + res = 4; //"Good"; + } else if (rssi < -70 && rssi >= -80) { + res = 3; //"Low"; + } else if (rssi < -80 && rssi > -100) { + res = 2; //"Very low"; + } else if (rssi <= -100) { + res = 1; //"No signal"; } - else if (rssi < -50 && rssi >= -60) { - res = 5; //"Very good"; - } - else if (rssi < -60 && rssi >= -70) { - res = 4; //"Good"; - } - else if (rssi < -70 && rssi >= -80) { - res = 3; //"Low"; - } - else if (rssi < -80 && rssi > -100) { - res = 2; //"Very low"; - } - else if (rssi <= -100) { - res = 1; //"No signal"; - } - } + } return res; } @@ -146,33 +142,32 @@ void wifiSignalInit() { ts.add( SYGNAL, 1000 * 60, [&](void*) { SerialPrint("I", "System", printMemoryStatus()); +#ifdef ESP8266 getFSInfo(); +#endif switch (RSSIquality()) { - case 0: - jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: не подключено к роутеру")); - break; - case 1: - jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: нет сигнала")); - break; - case 2: - jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: очень низкий")); - break; - case 3: - jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: низкий")); - break; - case 4: - jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: хороший")); - break; - case 5: - jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: очень хороший")); - break; - case 6: - jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: отличный")); - break; + case 0: + jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: не подключено к роутеру")); + break; + case 1: + jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: нет сигнала")); + break; + case 2: + jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: очень низкий")); + break; + case 3: + jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: низкий")); + break; + case 4: + jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: хороший")); + break; + case 5: + jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: очень хороший")); + break; + case 6: + jsonWriteStr(configSetupJson, F("signal"), F("Уровень WiFi сигнала: отличный")); + break; } }, nullptr, true); } - - - diff --git a/src/items/vSensorAnalog.cpp b/src/items/vSensorAnalog.cpp index b449c120..ea1ec282 100644 --- a/src/items/vSensorAnalog.cpp +++ b/src/items/vSensorAnalog.cpp @@ -31,8 +31,7 @@ void SensorAnalog::loop() { void SensorAnalog::readAnalog() { int value; #ifdef ESP32 - int pinInt = pin.toInt(); - value = analogRead(pinInt); + value = analogRead(_adcPin); #endif #ifdef ESP8266 value = analogRead(A0); diff --git a/src/main.cpp b/src/main.cpp index ddb16b5c..bd065a05 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -23,11 +23,11 @@ #include "items/vImpulsOut.h" #include "items/vLogging.h" #include "items/vSensorAnalog.h" +#include "items/vSensorBme280.h" +#include "items/vSensorBmp280.h" #include "items/vSensorDallas.h" #include "items/vSensorDht.h" #include "items/vSensorUltrasonic.h" -#include "items/vSensorBme280.h" -#include "items/vSensorBmp280.h" void not_async_actions(); @@ -71,7 +71,9 @@ void setup() { #ifdef SSDP_ENABLED SsdpInit(); #endif +#ifdef ESP8266 getFSInfo(); +#endif testsPerform();