From acf2c7d59c910f85a5301ca2716c16123c5b29c7 Mon Sep 17 00:00:00 2001 From: sieja Date: Sun, 23 Feb 2025 21:12:25 +0100 Subject: [PATCH] =?UTF-8?q?Obs=C5=82uga=20poziomu=20baterii=20podczs=20?= =?UTF-8?q?=C5=82adowania?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Battery analyze charge.xlsx | Bin 0 -> 45505 bytes .../Battery analyze dicharge.xlsx | Bin 0 -> 74145 bytes .../TempHumLogVizualization.xlsx | Bin 18040 -> 27685 bytes .../TempHumLoggerHomeKit.ino | 179 +++++++++++++----- 4 files changed, 135 insertions(+), 44 deletions(-) create mode 100644 ESP32/TempHumLoggerHomeKit/Battery analyze charge.xlsx create mode 100644 ESP32/TempHumLoggerHomeKit/Battery analyze dicharge.xlsx diff --git a/ESP32/TempHumLoggerHomeKit/Battery analyze charge.xlsx b/ESP32/TempHumLoggerHomeKit/Battery analyze charge.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..cf5e7af0ea5ba47f67b737bb4dfdaba6b48ec510 GIT binary patch literal 45505 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 literal 0 HcmV?d00001 diff --git a/ESP32/TempHumLoggerHomeKit/Battery analyze dicharge.xlsx b/ESP32/TempHumLoggerHomeKit/Battery analyze dicharge.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c91628f98016c3f5441974a8d235aca32f6748d6 GIT binary patch literal 74145 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

wo2HlGb{x(&j2{e(v`f3X8&WE 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 b(f{DRp4J&4eq`rgrmzD70p literal 0 HcmV?d00001 diff --git a/ESP32/TempHumLoggerHomeKit/TempHumLogVizualization.xlsx b/ESP32/TempHumLoggerHomeKit/TempHumLogVizualization.xlsx index 4004a3d66c30dda583691f82542aac5a5f6a2c58..8feeda7205291e81bbe9afc903288297b834bc93 100644 GIT binary patch delta 18359 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 Px0J~NZc1zn=^!BhPE5GK delta 8636 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 diff --git a/ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino b/ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino index 2e46d15..d3495ee 100644 --- a/ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino +++ b/ESP32/TempHumLoggerHomeKit/TempHumLoggerHomeKit.ino @@ -9,7 +9,7 @@ #include "SD.h" #include "SPI.h" -#define Version "0.30" +#define Version "0.33" #define WIRE Wire #define DHTTYPE DHT22 #define DHTPIN 4 @@ -49,6 +49,10 @@ int adcVoltValue; float measuredVoltage = 0; float batteryVoltage = 0; +float quickBatteryVoltage = 0; +float quickBatteryVoltage2 = 0; +float quickBatteryVoltage3 = 0; +float quickBatteryVoltage4 = 0; float currentBatteryVoltage = 0; float lastBatteryVoltage = 0; int battLifeMins = 998; @@ -58,6 +62,12 @@ int estMins = 0; int batteryPercent = 0; int batteryBarWidth = 0; char dateString[21]; +std::string chrgState; + +unsigned long previousMillis = 0; +const unsigned long interval = 1000; +unsigned long currentMillis = millis(); + String formatNumber(float number, int decimalPlaces = 1 ) { String str = String(number, decimalPlaces); @@ -65,6 +75,96 @@ String formatNumber(float number, int decimalPlaces = 1 ) { return str; } + +String leadZero(float number) { + String str = String(int(number)); + str.trim(); + if (number < 10) { + str = "0" + str; + } + return str; +} + + + +float voltageToPercentage(float voltage) { + // Reprezentatywne punkty (wolt, procent) + const int nPoints = 9; + // Napięcia – uporządkowane malejąco + float vPoints[nPoints] = {4.06, 4.00, 3.95, 3.90, 3.85, 3.80, 3.70, 3.45, 2.75}; + // Odpowiednie poziomy naładowania + float pPoints[nPoints] = {100, 95, 90, 80, 70, 60, 50, 10, 0}; + if (voltage >= vPoints[0]) + return pPoints[0]; + if (voltage <= vPoints[nPoints - 1]) + return pPoints[nPoints - 1]; + for (int i = 0; i < nPoints - 1; i++) { + if (voltage <= vPoints[i] && voltage > vPoints[i + 1]) { + // Obliczamy współczynnik interpolacji + float fraction = (voltage - vPoints[i + 1]) / (vPoints[i] - vPoints[i + 1]); + // Interpolacja liniowa między punktami + return pPoints[i + 1] + fraction * (pPoints[i] - pPoints[i + 1]); + } + } + return 0; // Domyślnie – choć powinno się tu już nie dojść +} + +// Funkcja liniowej interpolacji +float interpolate(float x, float x0, float x1, float y0, float y1) { + return y0 + (x - x0) * (y1 - y0) / (x1 - x0); +} + +// Funkcja przeliczająca napięcie (w V) na procent naładowania baterii w trakcie ładowania +float chargeVoltageToPercentage(float voltage) { + // Przykładowe punkty (napięcie w V rosnąco) + // Dopasuj je do własnych obserwacji / charakterystyki baterii + const int nPoints = 10; + float vPoints[nPoints] = { + 4.03, // ~0% + 4.06, // ~1% + 4.12, // ~5% + 4.14, // ~10% + 4.16, // ~30% + 4.18, // ~60% + 4.19, // ~80% + 4.20, // ~95% + 4.21, // ~98% + 4.22 // 100% + }; + float pPoints[nPoints] = { + 0, // 4.03 V + 1, // 4.06 V + 5, // 4.12 V + 10, // 4.14 V + 30, // 4.16 V + 60, // 4.18 V + 80, // 4.19 V + 95, // 4.20 V + 98, // 4.21 V + 100 // 4.22 V + }; + + // 1. Jeśli napięcie jest poniżej najniższego punktu, zwróć minimalny procent + if (voltage <= vPoints[0]) { + return pPoints[0]; + } + + // 2. Jeśli napięcie przekracza najwyższy punkt, zwróć maksymalny procent + if (voltage >= vPoints[nPoints - 1]) { + return pPoints[nPoints - 1]; + } + + // 3. Znajdź przedział, w którym mieści się zmierzone napięcie + for (int i = 0; i < nPoints - 1; i++) { + if (voltage >= vPoints[i] && voltage < vPoints[i + 1]) { + // Interpolacja liniowa między sąsiednimi punktami + return interpolate(voltage, vPoints[i], vPoints[i + 1], pPoints[i], pPoints[i + 1]); + } + } + // Nie powinniśmy tu trafić, ale na wszelki wypadek: + return 0.0; +} + void setup() { Serial.begin(115200); Wire.begin(21, 22); @@ -151,11 +251,16 @@ void setup() { measuredVoltage = (adcVoltValue * adcMaxVoltage) / adcResolution; batteryVoltage = (measuredVoltage * voltageDividerFactor)+0.1; currentBatteryVoltage = batteryVoltage; + quickBatteryVoltage = batteryVoltage; + quickBatteryVoltage2 = batteryVoltage; + quickBatteryVoltage3 = batteryVoltage; + quickBatteryVoltage4 = batteryVoltage; //setup END //###################### } void loop() { + currentMillis = millis(); display.clearDisplay(); ////DIAGNOSTIC menu nr diag // display.setCursor(75, 16); @@ -339,19 +444,30 @@ void loop() { display.setCursor(80,8); display.print("V:"); display.setCursor(95, 8); - display.print(batteryVoltage); + display.print(formatNumber(batteryVoltage,2)); display.setCursor(0, 24); if (currentBatteryVoltage >= 4.20 ){ display.print("Full"); - } else if ((lastBatteryVoltage < currentBatteryVoltage && currentBatteryVoltage >= 2.0) || currentBatteryVoltage >= 4.06 ){ + chrgState = "FUL"; + } else if ((lastBatteryVoltage < currentBatteryVoltage && currentBatteryVoltage >= 2.0&& currentBatteryVoltage >= 4.0 ) || currentBatteryVoltage >= 4.10 ){ display.print("Charging"); + chrgState = "CHR"; } else if (lastBatteryVoltage > currentBatteryVoltage && currentBatteryVoltage >= 2.0 ) { display.print("Discharge"); + chrgState = "DSG"; } else { display.print("---"); + chrgState = "---"; } - batteryPercent = voltageToPercentage(currentBatteryVoltage); + if (chrgState == "DSG"){ + batteryPercent = voltageToPercentage(currentBatteryVoltage); + } else if (chrgState == "CHR") { + batteryPercent = chargeVoltageToPercentage(currentBatteryVoltage); + } else { + batteryPercent = 100; + } + display.setCursor(60, 24); display.print("Est:"); @@ -434,10 +550,17 @@ void loop() { } } - adcVoltValue = analogRead(VOLT_IN); // Odczyt wartości ADC z GPIO36 - measuredVoltage = (adcVoltValue * adcMaxVoltage) / adcResolution; - batteryVoltage = (measuredVoltage * voltageDividerFactor)+0.1; - + if (currentMillis - previousMillis >= interval) { + previousMillis = currentMillis; + adcVoltValue = analogRead(VOLT_IN); // Odczyt wartości ADC z GPIO36 + measuredVoltage = (adcVoltValue * adcMaxVoltage) / adcResolution; + quickBatteryVoltage4 = quickBatteryVoltage3; + quickBatteryVoltage3 = quickBatteryVoltage2; + quickBatteryVoltage2 = quickBatteryVoltage; + quickBatteryVoltage = (measuredVoltage * voltageDividerFactor)+0.1; + batteryVoltage = (quickBatteryVoltage + quickBatteryVoltage2 + quickBatteryVoltage3 + quickBatteryVoltage4)/4; + } + // Log napiećia docelowoe procent baterii // kiedy zaden przycisk nie jest wcisniety if (abs (batteryVoltage - currentBatteryVoltage) >= 0.14 && digitalRead(BTN_DOWN) == LOW && digitalRead(BTN_UP) == LOW && digitalRead(BTN_ENTER) == LOW ) { @@ -457,7 +580,9 @@ void loop() { display.fillRect(0, 0, 124, 64, SSD1306_WHITE); file.print(dateString); file.print(" Battery %: "); - file.println(batteryPercent); + file.print(batteryPercent); + file.print(" V: "); + file.println(currentBatteryVoltage); file.close(); } } @@ -491,43 +616,9 @@ void loop() { yield(); } -String leadZero(float number) { - String str = String(int(number)); - str.trim(); - if (number < 10) { - str = "0" + str; - } - return str; -} - - - -float voltageToPercentage(float voltage) { - // Reprezentatywne punkty (wolt, procent) - const int nPoints = 9; - // Napięcia – uporządkowane malejąco - float vPoints[nPoints] = {4.06, 4.00, 3.95, 3.90, 3.85, 3.80, 3.70, 3.45, 2.75}; - // Odpowiednie poziomy naładowania - float pPoints[nPoints] = {100, 95, 90, 80, 70, 60, 50, 10, 0}; - if (voltage >= vPoints[0]) - return pPoints[0]; - if (voltage <= vPoints[nPoints - 1]) - return pPoints[nPoints - 1]; - for (int i = 0; i < nPoints - 1; i++) { - if (voltage <= vPoints[i] && voltage > vPoints[i + 1]) { - // Obliczamy współczynnik interpolacji - float fraction = (voltage - vPoints[i + 1]) / (vPoints[i] - vPoints[i + 1]); - // Interpolacja liniowa między punktami - return pPoints[i + 1] + fraction * (pPoints[i] - pPoints[i + 1]); - } - } - return 0; // Domyślnie – choć powinno się tu już nie dojść -} - - //Main feature: // RTC z możliwością ustawienia godziny // odczyt wilgotności, temperatury i temperatury odcuwalnej -// zasilanie bateryjne +// zasilanie bateryjne wraz z obsługą poziomu baterii i estymowanym czasem pracy na baterii // menu //2DO zapis na karcie SD