From 682fbe3bec678565b66d8b46a97fb355314f4716 Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Sun, 6 Dec 2020 19:02:11 +0200 Subject: [PATCH 01/10] Added Battery monitor functionality --- .gitignore | 4 + airrohr-firmware/airrohr-cfg.h | 12 +++ airrohr-firmware/airrohr-cfg.h.py | 4 + airrohr-firmware/airrohr-firmware.ino | 123 +++++++++++++++++++++++++- airrohr-firmware/defines.h | 2 + airrohr-firmware/ext_def.h | 17 +++- airrohr-firmware/html-content.h | 2 + airrohr-firmware/intl_bg.h | 5 ++ airrohr-firmware/intl_cz.h | 5 ++ airrohr-firmware/intl_de.h | 5 ++ airrohr-firmware/intl_dk.h | 5 ++ airrohr-firmware/intl_en.h | 5 ++ airrohr-firmware/intl_es.h | 5 ++ airrohr-firmware/intl_fr.h | 5 ++ airrohr-firmware/intl_hu.h | 5 ++ airrohr-firmware/intl_it.h | 5 ++ airrohr-firmware/intl_lu.h | 5 ++ airrohr-firmware/intl_nl.h | 5 ++ airrohr-firmware/intl_pl.h | 5 ++ airrohr-firmware/intl_pt.h | 5 ++ airrohr-firmware/intl_rs.h | 5 ++ airrohr-firmware/intl_ru.h | 5 ++ airrohr-firmware/intl_se.h | 5 ++ airrohr-firmware/intl_sk.h | 5 ++ airrohr-firmware/intl_template.h | 5 ++ airrohr-firmware/intl_tr.h | 5 ++ airrohr-firmware/intl_ua.h | 5 ++ 27 files changed, 262 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 975916175..8fcbed29d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,7 @@ esp8266-arduino/.DS_Store .DS_Store compile_mac.sh + + +# Visual Studio Code +.vscode \ No newline at end of file diff --git a/airrohr-firmware/airrohr-cfg.h b/airrohr-firmware/airrohr-cfg.h index 26c7afcdd..c64fb3f1e 100644 --- a/airrohr-firmware/airrohr-cfg.h +++ b/airrohr-firmware/airrohr-cfg.h @@ -87,6 +87,10 @@ enum ConfigShapeId { Config_pwd_influx, Config_measurement_name_influx, Config_ssl_influx, + Config_enable_battery_monitor, + Config_battery_u_min, + Config_battery_u_max, + Config_adc_divider_u_max, }; static constexpr char CFG_KEY_CURRENT_LANG[] PROGMEM = "current_lang"; static constexpr char CFG_KEY_WLANSSID[] PROGMEM = "wlanssid"; @@ -150,6 +154,10 @@ static constexpr char CFG_KEY_USER_INFLUX[] PROGMEM = "user_influx"; static constexpr char CFG_KEY_PWD_INFLUX[] PROGMEM = "pwd_influx"; static constexpr char CFG_KEY_MEASUREMENT_NAME_INFLUX[] PROGMEM = "measurement_name_influx"; static constexpr char CFG_KEY_SSL_INFLUX[] PROGMEM = "ssl_influx"; +static constexpr char CFG_KEY_ENABLE_BATTERY_MONITOR[] PROGMEM = "enable_battery_monitor"; +static constexpr char CFG_KEY_BATTERY_U_MIN[] PROGMEM = "battery_u_min"; +static constexpr char CFG_KEY_BATTERY_U_MAX[] PROGMEM = "battery_u_max"; +static constexpr char CFG_KEY_ADC_DIVIDER_U_MAX[] PROGMEM = "adc_divider_u_max"; static constexpr ConfigShapeEntry configShape[] PROGMEM = { { Config_Type_String, sizeof(cfg::current_lang)-1, CFG_KEY_CURRENT_LANG, cfg::current_lang }, { Config_Type_String, sizeof(cfg::wlanssid)-1, CFG_KEY_WLANSSID, cfg::wlanssid }, @@ -213,4 +221,8 @@ static constexpr ConfigShapeEntry configShape[] PROGMEM = { { Config_Type_Password, sizeof(cfg::pwd_influx)-1, CFG_KEY_PWD_INFLUX, cfg::pwd_influx }, { Config_Type_String, sizeof(cfg::measurement_name_influx)-1, CFG_KEY_MEASUREMENT_NAME_INFLUX, cfg::measurement_name_influx }, { Config_Type_Bool, 0, CFG_KEY_SSL_INFLUX, &cfg::ssl_influx }, + { Config_Type_Bool, 0, CFG_KEY_ENABLE_BATTERY_MONITOR, &cfg::enable_battery_monitor }, + { Config_Type_UInt, 0, CFG_KEY_BATTERY_U_MIN, &cfg::battery_u_min }, + { Config_Type_UInt, 0, CFG_KEY_BATTERY_U_MAX, &cfg::battery_u_max }, + { Config_Type_UInt, 0, CFG_KEY_ADC_DIVIDER_U_MAX, &cfg::adc_divider_u_max }, }; diff --git a/airrohr-firmware/airrohr-cfg.h.py b/airrohr-firmware/airrohr-cfg.h.py index 152b4e459..21362f800 100755 --- a/airrohr-firmware/airrohr-cfg.h.py +++ b/airrohr-firmware/airrohr-cfg.h.py @@ -63,6 +63,10 @@ Password pwd_influx String measurement_name_influx Bool ssl_influx +Bool enable_battery_monitor +UInt battery_u_min +UInt battery_u_max +UInt adc_divider_u_max """ with open("airrohr-cfg.h", "w") as h: diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index 23a12611b..6d364dcb3 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -47,6 +47,10 @@ * * ************************************************************************ * + * latest with lib 2.7.1 + * DATA: [==== ] 39.5% (used 32380 bytes from 81920 bytes) + * PROGRAM: [===== ] 56.0% (used 584924 bytes from 1044464 bytes) + * * latest mit lib 2.6.1 * DATA: [==== ] 40.7% (used 33316 bytes from 81920 bytes) * PROGRAM: [===== ] 49.3% (used 514788 bytes from 1044464 bytes) @@ -196,6 +200,15 @@ namespace cfg { bool display_wifi_info = DISPLAY_WIFI_INFO; bool display_device_info = DISPLAY_DEVICE_INFO; + // ADC settings + unsigned adc_divider_u_max = ADC_DIVIDER_U_MAX; + unsigned adc_range_max = ADC_RANGE_MAX; + + // battery monitor measurement settings + bool enable_battery_monitor = ENABLE_BATTERY_MONITOR; + unsigned battery_u_max = BATTERY_U_MAX; + unsigned battery_u_min = BATTERY_U_MIN; + // API settings bool ssl_madavi = SSL_MADAVI; bool ssl_dusti = SSL_SENSORCOMMUNITY; @@ -345,6 +358,8 @@ unsigned long act_milli; unsigned long last_micro = 0; unsigned long min_micro = 1000000000; unsigned long max_micro = 0; +unsigned long battery_start_time; +unsigned long battery_monitor_period; bool is_SDS_running = true; enum { @@ -472,6 +487,12 @@ String last_data_string; int last_signal_strength; int last_disconnect_reason; +uint32_t battery_analog_value = 0; +uint32_t battery_capacity = 0; +uint32_t battery_last_value = 0; +uint32_t battery_sum = 0; +uint32_t battery_val_count = 0; + String esp_chipid; String esp_mac_id; String last_value_SDS_version; @@ -1093,6 +1114,33 @@ static void webserver_config_send_body_get(String& page_content) { add_form_checkbox(Config_display_device_info, FPSTR(INTL_DISPLAY_DEVICE_INFO)); server.sendContent(page_content); + page_content = emptyString; + + add_form_checkbox(Config_enable_battery_monitor, FPSTR(INTL_ENABLE_BATTERY_MONITOR)); + page_content += F(""); + add_form_input(page_content, Config_battery_u_min, FPSTR(INTL_BATTERY_U_MIN), 5); + add_form_input(page_content, Config_battery_u_max, FPSTR(INTL_BATTERY_U_MAX), 5); + add_form_input(page_content, Config_adc_divider_u_max, FPSTR(INTL_ADC_DIVIDER_U_MAX), 5); + page_content += FPSTR(TABLE_TAG_CLOSE_BR); + + page_content += F(""); + + server.sendContent(page_content); + //page_content = emptyString; page_content = FPSTR(WEB_BR_LF_B); page_content += F(INTL_FIRMWARE " "); add_form_checkbox(Config_auto_update, FPSTR(INTL_AUTO_UPDATE)); @@ -1590,6 +1638,11 @@ static void webserver_status() { page_content += FPSTR(EMPTY_ROW); add_table_row_from_value(page_content, FPSTR(SENSORS_SDS011), last_value_SDS_version); } + if (cfg::enable_battery_monitor){ + // String battery_state = F(String(battery_capacity) + " % (" + String(battery_analog_value / 1000.0) + "V)"); + String battery_state = String(battery_capacity) + " % (" + String(battery_analog_value / 1000.0) + "V)"; + add_table_row_from_value(page_content, FPSTR(INTL_BATTERY_CAPACITY), battery_state); + } page_content += FPSTR(EMPTY_ROW); page_content += F(""); @@ -3235,6 +3288,58 @@ static void fetchSensorSPS30(String& s) { debug_outln_verbose(FPSTR(DBG_TXT_END_READING), FPSTR(SENSORS_SPS30)); } +long battery_map(long x, long in_min, long in_max, long out_min, long out_max){ + return (x - in_min) * (out_max - out_min + 1) / (in_max - in_min + 1) + out_min; +} + +/***************************************************************** + read Battery voltage + *****************************************************************/ +static void readBatteryVoltage() { + battery_val_count++; + if(battery_val_count > 3){ + battery_sum = 0; + battery_last_value = 0; + if(msSince(battery_monitor_period) <= READINGTIME_ADC_MS) + return; + + battery_monitor_period = act_milli; + battery_val_count = 0; + return; + } + + String dbg_reading = "Battery voltage #" + String(battery_val_count); + debug_outln_verbose(FPSTR(DBG_TXT_START_READING), dbg_reading); + battery_last_value = analogRead(ADC_PIN); + battery_sum += battery_last_value; + + float battery_avg_value = battery_sum / static_cast(battery_val_count); + float ratio = cfg::adc_divider_u_max / static_cast(cfg::adc_range_max); + battery_analog_value = round(battery_avg_value * ratio); + debug_outln_verbose(F("Battery analog value (mV): "), String(battery_analog_value)); + String bat_min_max = String(cfg::battery_u_min) + " / " + String(cfg::battery_u_max); + battery_capacity = map(battery_analog_value, cfg::battery_u_min, cfg::battery_u_max, 0, 100); + if (battery_capacity < 0){ + battery_capacity = 0; + } + debug_outln_verbose(F("Battery capacity (%): "), String(battery_capacity)); + debug_outln_verbose(FPSTR(DBG_TXT_END_READING), F("Battery voltage")); + + battery_monitor_period = act_milli; +} + +/***************************************************************** + send Battery status + *****************************************************************/ +static void sendBatteryStatus(String& s) { + float battery_voltage = battery_analog_value / 1000.0; + add_Value2Json(s, F("Battery_voltage"), String(battery_voltage)); + add_Value2Json(s, F("Battery_capacity"), String(battery_capacity)); + debug_outln_info(F("Battery (V): "), String(battery_voltage)); + debug_outln_info(F("Battery (%): "), String(battery_capacity)); + debug_outln_info(FPSTR(DBG_TXT_SEP)); +} + /***************************************************************** read DNMS values *****************************************************************/ @@ -4264,6 +4369,7 @@ void setup(void) { esp_mac_id.replace(":", ""); esp_mac_id.toLowerCase(); #endif + pinMode(A0, INPUT); #if defined(ESP32) uint64_t chipid_num; chipid_num = ESP.getEfuseMac(); @@ -4310,6 +4416,7 @@ void setup(void) { starttime = millis(); // store the start time last_update_attempt = time_point_device_start_ms = starttime; last_display_millis = starttime_SDS = starttime; + battery_start_time = starttime; } /***************************************************************** @@ -4318,7 +4425,7 @@ void setup(void) { void loop(void) { String result_PPD, result_SDS, result_PMS, result_HPM; String result_GPS, result_DNMS; - + String result_BAT; unsigned sum_send_time = 0; @@ -4373,6 +4480,14 @@ void loop(void) { } } + if(cfg::enable_battery_monitor && !send_now){ + if (msSince(battery_start_time) > SAMPLETIME_BAT_MS){ + battery_start_time = act_milli; + readBatteryVoltage(); + //readBatteryVoltage(result_BAT); + } + } + if (cfg::ppd_read) { fetchSensorPPD(result_PPD); } @@ -4500,12 +4615,18 @@ void loop(void) { sum_send_time += sendSensorCommunity(result_GPS, GPS_API_PIN, F("GPS"), "GPS_"); result = emptyString; } + add_Value2Json(data, F("samples"), String(sample_count)); add_Value2Json(data, F("min_micro"), String(min_micro)); add_Value2Json(data, F("max_micro"), String(max_micro)); add_Value2Json(data, F("interval"), String(cfg::sending_intervall_ms)); add_Value2Json(data, F("signal"), String(last_signal_strength)); + if(cfg::enable_battery_monitor){ + sendBatteryStatus(result_BAT); + data += result_BAT; + } + if ((unsigned)(data.lastIndexOf(',') + 1) == data.length()) { data.remove(data.length() - 1); } diff --git a/airrohr-firmware/defines.h b/airrohr-firmware/defines.h index ea957fae6..3ca569368 100644 --- a/airrohr-firmware/defines.h +++ b/airrohr-firmware/defines.h @@ -56,6 +56,8 @@ constexpr const unsigned long DISPLAY_UPDATE_INTERVAL_MS = 5000; // time be constexpr const unsigned long ONE_DAY_IN_MS = 24 * 60 * 60 * 1000; constexpr const unsigned long PAUSE_BETWEEN_UPDATE_ATTEMPTS_MS = ONE_DAY_IN_MS; // check for firmware updates once a day constexpr const unsigned long DURATION_BEFORE_FORCED_RESTART_MS = ONE_DAY_IN_MS * 28; // force a reboot every ~4 weeks +constexpr const unsigned long READINGTIME_ADC_MS = 10000; +constexpr const unsigned long SAMPLETIME_BAT_MS = 1000; // Definition GPIOs for Zero based Arduino Feather M0 LoRaWAN #if defined(ARDUINO_SAMD_ZERO) && defined(SERIAL_PORT_USBVIRTUAL) diff --git a/airrohr-firmware/ext_def.h b/airrohr-firmware/ext_def.h index 60842f195..19e183d47 100644 --- a/airrohr-firmware/ext_def.h +++ b/airrohr-firmware/ext_def.h @@ -125,6 +125,9 @@ static const char MEASUREMENT_NAME_INFLUX[] PROGMEM = "feinstaub"; // PPD42NS, the cheaper version of the particle sensor #define PPD_PIN_PM1 GPS_SERIAL_TX #define PPD_PIN_PM2 GPS_SERIAL_RX + +#define ADC_PIN A0 +#define ADC_RANGE_MAX 1023; #endif @@ -163,6 +166,9 @@ static const char MEASUREMENT_NAME_INFLUX[] PROGMEM = "feinstaub"; //#define RFM69_CS D0 //#define RFM69_RST D2 //#define RFM69_INT D4 + +#define ADC_PIN 36 +#define ADC_RANGE_MAX 4095; #endif // === pin assignments for lolin_d32_pro board =================================== @@ -283,7 +289,7 @@ static const char MEASUREMENT_NAME_INFLUX[] PROGMEM = "feinstaub"; #define MHZ19_READ 0 // automatic firmware updates -#define AUTO_UPDATE 1 +#define AUTO_UPDATE 0 // use beta firmware #define USE_BETA 0 @@ -315,5 +321,14 @@ static const char MEASUREMENT_NAME_INFLUX[] PROGMEM = "feinstaub"; // Show device info on displays #define DISPLAY_DEVICE_INFO 1 +#define ENABLE_BATTERY_MONITOR 0 + +// Adc maximum input voltage applied to the resistor devider's input +#define ADC_DIVIDER_U_MAX 5120 + +// Battery fully charged and fully discharged voltages +#define BATTERY_U_MAX 4200 +#define BATTERY_U_MIN 2800 + // Set debug level for serial output? #define DEBUG 3 diff --git a/airrohr-firmware/html-content.h b/airrohr-firmware/html-content.h index 5515f58e5..ae35292ca 100644 --- a/airrohr-firmware/html-content.h +++ b/airrohr-firmware/html-content.h @@ -22,6 +22,8 @@ const char DBG_TXT_CONNECTING_TO[] PROGMEM = "Connecting to "; const char DBG_TXT_FOUND[] PROGMEM = " ... found"; const char DBG_TXT_NOT_FOUND[] PROGMEM = " ... not found"; const char DBG_TXT_SEP[] PROGMEM = "----"; +const char DBG_TXT_VOLTAGE[] PROGMEM = "Voltage (V): "; +const char DBG_TXT_CAPACITY[] PROGMEM = "Capacity (%): "; const char SENSORS_SDS011[] PROGMEM = "SDS011"; const char SENSORS_PPD42NS[] PROGMEM = "PPD42NS"; diff --git a/airrohr-firmware/intl_bg.h b/airrohr-firmware/intl_bg.h index d5e7c0a5c..4768a1914 100644 --- a/airrohr-firmware/intl_bg.h +++ b/airrohr-firmware/intl_bg.h @@ -112,6 +112,11 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Качество на сигнала #define INTL_SENSOR "Сензор" #define INTL_PARAMETER "Параметър" #define INTL_VALUE "Стойност" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активиране на монитора на батерията"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Капацитет на батерията"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батерията (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батерията (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "U max при делителя на АЦП (mV):"; //const char LUFTDATEN_INFO_LOGO_SVG[] PROGMEM = ""; diff --git a/airrohr-firmware/intl_cz.h b/airrohr-firmware/intl_cz.h index 0ae50774e..7b662f1db 100644 --- a/airrohr-firmware/intl_cz.h +++ b/airrohr-firmware/intl_cz.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Kvalita signálu"; #define INTL_SENSOR "Modul" #define INTL_PARAMETER "Parametr" #define INTL_VALUE "Hodnota" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Povolit sledování baterie"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Kapacita baterie"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Baterie U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Baterie U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "Dělič ADP U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_de.h b/airrohr-firmware/intl_de.h index 2fff3b6de..8d77d85fb 100644 --- a/airrohr-firmware/intl_de.h +++ b/airrohr-firmware/intl_de.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualität"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Wert" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Batteriemonitor aktivieren"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batteriekapazität"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batterie U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batterie U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADW teiler U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_dk.h b/airrohr-firmware/intl_dk.h index cc5e7a7d6..5e8953ea6 100644 --- a/airrohr-firmware/intl_dk.h +++ b/airrohr-firmware/intl_dk.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Kvalitet"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Værdi" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Aktivér batteriskærm"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batterikapacitet"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batteri U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batteri U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADK divider U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_en.h b/airrohr-firmware/intl_en.h index 76a43f994..dca558b61 100644 --- a/airrohr-firmware/intl_en.h +++ b/airrohr-firmware/intl_en.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "signal quality"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Value" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Enable battery monitor"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Battery capacity"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Battery U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Battery U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divider U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_es.h b/airrohr-firmware/intl_es.h index d488d492b..e966a4f6d 100644 --- a/airrohr-firmware/intl_es.h +++ b/airrohr-firmware/intl_es.h @@ -112,5 +112,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Calidad de Señal"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parámetro" #define INTL_VALUE "Valor" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Habilitar monitor de batería"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacidad de la batería"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batería U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batería U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "Divisor CAD U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_fr.h b/airrohr-firmware/intl_fr.h index bfcebd4c2..8ffe419f8 100644 --- a/airrohr-firmware/intl_fr.h +++ b/airrohr-firmware/intl_fr.h @@ -112,5 +112,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualité du signal"; #define INTL_SENSOR "Capteur" #define INTL_PARAMETER "Paramètres" #define INTL_VALUE "Valeur" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Activer le moniteur de batterie"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacité de la batterie"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batterie U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batterie U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "Diviseur de CAN U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_hu.h b/airrohr-firmware/intl_hu.h index b34c91f00..2a3398174 100644 --- a/airrohr-firmware/intl_hu.h +++ b/airrohr-firmware/intl_hu.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Jelminőség"; #define INTL_SENSOR "Szenzor" #define INTL_PARAMETER "Paraméter" #define INTL_VALUE "Érték" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Engedélyezze az akkumulátorfigyelőt"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Akkumulátor-kapacitás"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Akkumulátor U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Akkumulátor U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADA elválasztó U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_it.h b/airrohr-firmware/intl_it.h index 87725a8f3..bbf5842a3 100644 --- a/airrohr-firmware/intl_it.h +++ b/airrohr-firmware/intl_it.h @@ -112,5 +112,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualità del segnale"; #define INTL_SENSOR "Sensore" #define INTL_PARAMETER "Parametro" #define INTL_VALUE "Valore" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Abilita il monitoraggio della batteria"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacità della batteria"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batteria U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batteria U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divisore U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_lu.h b/airrohr-firmware/intl_lu.h index bbe1cf65f..b19c1e136 100644 --- a/airrohr-firmware/intl_lu.h +++ b/airrohr-firmware/intl_lu.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualitéit"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Wäert" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Aktivéiert Batterie Monitor"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batteriekapazitéit"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batterie U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batterie U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divider U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_nl.h b/airrohr-firmware/intl_nl.h index 54f1bf3fc..f53fc3cfe 100644 --- a/airrohr-firmware/intl_nl.h +++ b/airrohr-firmware/intl_nl.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Signaalkwaliteit"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Waarde" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Schakel de batterijmonitor in"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batterij capaciteit"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "batterij U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "batterij U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADO divider U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_pl.h b/airrohr-firmware/intl_pl.h index 7945eb298..389ec2169 100644 --- a/airrohr-firmware/intl_pl.h +++ b/airrohr-firmware/intl_pl.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Jakość sygnału"; #define INTL_SENSOR "Czujnik" #define INTL_PARAMETER "Parametr" #define INTL_VALUE "Wartość" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Włącz monitor baterii"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Pojemność baterii"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Bateria U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Bateria U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ACP dzielnik U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_pt.h b/airrohr-firmware/intl_pt.h index af8e588d5..e53a04dbb 100644 --- a/airrohr-firmware/intl_pt.h +++ b/airrohr-firmware/intl_pt.h @@ -112,5 +112,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualidade do Sinal"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parâmetro" #define INTL_VALUE "Valor" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Habilitar monitor de bateria"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacidade de carga"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Bateria U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Bateria U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divisor U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_rs.h b/airrohr-firmware/intl_rs.h index de939b926..c099b86f3 100644 --- a/airrohr-firmware/intl_rs.h +++ b/airrohr-firmware/intl_rs.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "kvalitet signala"; #define INTL_SENSOR "Senzor" #define INTL_PARAMETER "Parametar" #define INTL_VALUE "Vrednost" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активирајте монитор батерије"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Капацитет батерије"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батерије (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батерије (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "АДП разделник U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_ru.h b/airrohr-firmware/intl_ru.h index 29984680e..3640238e1 100644 --- a/airrohr-firmware/intl_ru.h +++ b/airrohr-firmware/intl_ru.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Качество"; #define INTL_SENSOR "Датчик" #define INTL_PARAMETER "Параметр" #define INTL_VALUE "Значение" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активируйте монитор батареи"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Емкость батареи"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батареи (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батареи (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "U max при делителя на АЦП (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_se.h b/airrohr-firmware/intl_se.h index 78d062156..9ed2d99f5 100644 --- a/airrohr-firmware/intl_se.h +++ b/airrohr-firmware/intl_se.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Kvalitet"; #define INTL_SENSOR "Sensor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Värde" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Aktivera batteriövervakare"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batterikapacitet"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batteri U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batteri U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADО divider U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_sk.h b/airrohr-firmware/intl_sk.h index 3526c45a9..9eb976115 100644 --- a/airrohr-firmware/intl_sk.h +++ b/airrohr-firmware/intl_sk.h @@ -112,5 +112,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "kvalita signálu"; #define INTL_SENSOR "Senzor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Hodnota" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Povoliť sledovanie batérie"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Kapacita batérie"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Batéria U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Batéria U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADP rozdeľovač U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_template.h b/airrohr-firmware/intl_template.h index 25f0b9d0a..08f8b64f5 100644 --- a/airrohr-firmware/intl_template.h +++ b/airrohr-firmware/intl_template.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = ""; #define INTL_SENSOR "" #define INTL_PARAMETER "" #define INTL_VALUE "" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Enable battery monitor"; +const char INTL_BATTERY[] PROGMEM = "Battery"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Battery U min (V):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Battery U max (V):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divider U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_tr.h b/airrohr-firmware/intl_tr.h index 64311bb1f..4e92650c6 100644 --- a/airrohr-firmware/intl_tr.h +++ b/airrohr-firmware/intl_tr.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "sinyal kalitesi"; #define INTL_SENSOR "algılayıcı(Sensör)" #define INTL_PARAMETER "Parametre" #define INTL_VALUE "değer" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Pil monitörünü etkinleştir"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Pil kapasitesi"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Pil U min (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Pil U max (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADD bölücü U max (mV):"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_ua.h b/airrohr-firmware/intl_ua.h index b89c0fc4c..5a20f5598 100644 --- a/airrohr-firmware/intl_ua.h +++ b/airrohr-firmware/intl_ua.h @@ -113,5 +113,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "якість сигналу"; #define INTL_SENSOR "Сенсор" #define INTL_PARAMETER "Параметр" #define INTL_VALUE "Значення" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активуйте монітор батареї"; +const char INTL_BATTERY_CAPACITY[] PROGMEM = "Ємкість батареї"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батареї (mV):"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батареї (mV):"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "U max при подільника на АЦП (mV):"; #include "./airrohr-logo-common.h" From ddc86c5fd4b58672738eb7ac69ee3982c861b4ca Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Tue, 8 Dec 2020 19:17:50 +0200 Subject: [PATCH 02/10] Clean-up; --- airrohr-firmware/airrohr-firmware.ino | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index 59e1df5b8..d55bb43b6 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -47,13 +47,9 @@ * * ************************************************************************ * - * latest with lib 2.7.1 - * DATA: [==== ] 39.5% (used 32380 bytes from 81920 bytes) - * PROGRAM: [===== ] 56.0% (used 584924 bytes from 1044464 bytes) - * - * latest mit lib 2.6.1 - * DATA: [==== ] 40.7% (used 33316 bytes from 81920 bytes) - * PROGRAM: [===== ] 49.3% (used 514788 bytes from 1044464 bytes) + * latest mit lib 2.6.2 + * DATA: [==== ] 39.5% (used 32392 bytes from 81920 bytes) + * PROGRAM: [===== ] 53.8% (used 580740 bytes from 1044464 bytes) * latest mit lib 2.5.2 * DATA: [==== ] 39.4% (used 32304 bytes from 81920 bytes) @@ -3288,10 +3284,6 @@ static void fetchSensorSPS30(String& s) { debug_outln_verbose(FPSTR(DBG_TXT_END_READING), FPSTR(SENSORS_SPS30)); } -long battery_map(long x, long in_min, long in_max, long out_min, long out_max){ - return (x - in_min) * (out_max - out_min + 1) / (in_max - in_min + 1) + out_min; -} - /***************************************************************** read Battery voltage *****************************************************************/ From 320567ca96b10555fbcf745d9552d3bad0c6e6da Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Wed, 9 Dec 2020 21:49:10 +0200 Subject: [PATCH 03/10] Removed "adc_range_max" from "cfg" namespace; --- airrohr-firmware/airrohr-firmware.ino | 3 +-- airrohr-firmware/ext_def.h | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index d55bb43b6..044b68598 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -198,7 +198,6 @@ namespace cfg { // ADC settings unsigned adc_divider_u_max = ADC_DIVIDER_U_MAX; - unsigned adc_range_max = ADC_RANGE_MAX; // battery monitor measurement settings bool enable_battery_monitor = ENABLE_BATTERY_MONITOR; @@ -3306,7 +3305,7 @@ static void readBatteryVoltage() { battery_sum += battery_last_value; float battery_avg_value = battery_sum / static_cast(battery_val_count); - float ratio = cfg::adc_divider_u_max / static_cast(cfg::adc_range_max); + float ratio = cfg::adc_divider_u_max / static_cast(ADC_RANGE_MAX); battery_analog_value = round(battery_avg_value * ratio); debug_outln_verbose(F("Battery analog value (mV): "), String(battery_analog_value)); String bat_min_max = String(cfg::battery_u_min) + " / " + String(cfg::battery_u_max); diff --git a/airrohr-firmware/ext_def.h b/airrohr-firmware/ext_def.h index 19e183d47..4c2eca70a 100644 --- a/airrohr-firmware/ext_def.h +++ b/airrohr-firmware/ext_def.h @@ -127,7 +127,7 @@ static const char MEASUREMENT_NAME_INFLUX[] PROGMEM = "feinstaub"; #define PPD_PIN_PM2 GPS_SERIAL_RX #define ADC_PIN A0 -#define ADC_RANGE_MAX 1023; +#define ADC_RANGE_MAX 1023 #endif @@ -168,7 +168,7 @@ static const char MEASUREMENT_NAME_INFLUX[] PROGMEM = "feinstaub"; //#define RFM69_INT D4 #define ADC_PIN 36 -#define ADC_RANGE_MAX 4095; +#define ADC_RANGE_MAX 4095 #endif // === pin assignments for lolin_d32_pro board =================================== @@ -323,10 +323,10 @@ static const char MEASUREMENT_NAME_INFLUX[] PROGMEM = "feinstaub"; #define ENABLE_BATTERY_MONITOR 0 -// Adc maximum input voltage applied to the resistor devider's input +// Adc preset maximum input voltage applied to the voltage devider's input #define ADC_DIVIDER_U_MAX 5120 -// Battery fully charged and fully discharged voltages +// Battery preset fully charged and discharged states voltages #define BATTERY_U_MAX 4200 #define BATTERY_U_MIN 2800 From 26e51775c86ebb6fa712479a074ecf732f5185bf Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Tue, 27 Apr 2021 15:48:09 +0300 Subject: [PATCH 04/10] Removed unused variable 'battery_last_value'; --- airrohr-firmware/airrohr-firmware.ino | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index eb268f2cb..1b94d92fb 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -501,7 +501,7 @@ int last_disconnect_reason; uint32_t battery_analog_value = 0; uint32_t battery_capacity = 0; -uint32_t battery_last_value = 0; +// uint32_t battery_last_value = 0; uint32_t battery_sum = 0; uint32_t battery_val_count = 0; @@ -3417,7 +3417,7 @@ static void readBatteryVoltage() { battery_val_count++; if(battery_val_count > 3){ battery_sum = 0; - battery_last_value = 0; + // battery_last_value = 0; if(msSince(battery_monitor_period) <= READINGTIME_ADC_MS) return; @@ -3428,8 +3428,9 @@ static void readBatteryVoltage() { String dbg_reading = "Battery voltage #" + String(battery_val_count); debug_outln_verbose(FPSTR(DBG_TXT_START_READING), dbg_reading); - battery_last_value = analogRead(ADC_PIN); - battery_sum += battery_last_value; + battery_sum += analogRead(ADC_PIN); + // battery_last_value = analogRead(ADC_PIN); + // battery_sum += battery_last_value; float battery_avg_value = battery_sum / static_cast(battery_val_count); float ratio = cfg::adc_divider_u_max / static_cast(ADC_RANGE_MAX); From cfabfefef03d56d914f7764de34974a46325c115 Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Tue, 27 Apr 2021 15:53:45 +0300 Subject: [PATCH 05/10] Cleanup - removed commented out 'battery_last_value'; --- airrohr-firmware/airrohr-firmware.ino | 4 ---- 1 file changed, 4 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index 1b94d92fb..a642baf14 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -501,7 +501,6 @@ int last_disconnect_reason; uint32_t battery_analog_value = 0; uint32_t battery_capacity = 0; -// uint32_t battery_last_value = 0; uint32_t battery_sum = 0; uint32_t battery_val_count = 0; @@ -3417,7 +3416,6 @@ static void readBatteryVoltage() { battery_val_count++; if(battery_val_count > 3){ battery_sum = 0; - // battery_last_value = 0; if(msSince(battery_monitor_period) <= READINGTIME_ADC_MS) return; @@ -3429,8 +3427,6 @@ static void readBatteryVoltage() { String dbg_reading = "Battery voltage #" + String(battery_val_count); debug_outln_verbose(FPSTR(DBG_TXT_START_READING), dbg_reading); battery_sum += analogRead(ADC_PIN); - // battery_last_value = analogRead(ADC_PIN); - // battery_sum += battery_last_value; float battery_avg_value = battery_sum / static_cast(battery_val_count); float ratio = cfg::adc_divider_u_max / static_cast(ADC_RANGE_MAX); From a416c1900b2940c0a97b9622dbffb8492df6302f Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Wed, 28 Apr 2021 16:40:19 +0300 Subject: [PATCH 06/10] Replaced BATTERY_CAPACITY with BATTERY_CHARGE; Also added additional BR tag befor battery settings for better UX; --- airrohr-firmware/airrohr-firmware.ino | 21 +++++++++++---------- airrohr-firmware/intl_bg.h | 2 +- airrohr-firmware/intl_cn.h | 6 ++++++ airrohr-firmware/intl_cz.h | 2 +- airrohr-firmware/intl_de.h | 2 +- airrohr-firmware/intl_dk.h | 2 +- airrohr-firmware/intl_ee.h | 5 +++++ airrohr-firmware/intl_en.h | 2 +- airrohr-firmware/intl_es.h | 2 +- airrohr-firmware/intl_fi.h | 5 +++++ airrohr-firmware/intl_fr.h | 2 +- airrohr-firmware/intl_gr.h | 5 +++++ airrohr-firmware/intl_hu.h | 2 +- airrohr-firmware/intl_it.h | 2 +- airrohr-firmware/intl_jp.h | 5 +++++ airrohr-firmware/intl_lt.h | 5 +++++ airrohr-firmware/intl_lu.h | 2 +- airrohr-firmware/intl_lv.h | 5 +++++ airrohr-firmware/intl_nl.h | 2 +- airrohr-firmware/intl_pl.h | 2 +- airrohr-firmware/intl_pt.h | 2 +- airrohr-firmware/intl_ro.h | 5 +++++ airrohr-firmware/intl_rs.h | 2 +- airrohr-firmware/intl_ru.h | 2 +- airrohr-firmware/intl_se.h | 2 +- airrohr-firmware/intl_si.h | 5 +++++ airrohr-firmware/intl_sk.h | 2 +- airrohr-firmware/intl_template.h | 8 ++++---- airrohr-firmware/intl_tr.h | 2 +- airrohr-firmware/intl_ua.h | 2 +- 30 files changed, 80 insertions(+), 33 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index a642baf14..3811adedd 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -500,7 +500,7 @@ int last_signal_strength; int last_disconnect_reason; uint32_t battery_analog_value = 0; -uint32_t battery_capacity = 0; +uint32_t battery_charge = 0; uint32_t battery_sum = 0; uint32_t battery_val_count = 0; @@ -1168,6 +1168,7 @@ static void webserver_config_send_body_get(String& page_content) { server.sendContent(page_content); page_content = emptyString; + page_content += FPSTR(BR_TAG); add_form_checkbox(Config_enable_battery_monitor, FPSTR(INTL_ENABLE_BATTERY_MONITOR)); page_content += F("
" INTL_ERROR "
"); add_form_input(page_content, Config_battery_u_min, FPSTR(INTL_BATTERY_U_MIN), 5); @@ -1712,9 +1713,9 @@ static void webserver_status() { add_table_row_from_value(page_content, FPSTR(SENSORS_SDS011), last_value_SDS_version); } if (cfg::enable_battery_monitor){ - // String battery_state = F(String(battery_capacity) + " % (" + String(battery_analog_value / 1000.0) + "V)"); - String battery_state = String(battery_capacity) + " % (" + String(battery_analog_value / 1000.0) + "V)"; - add_table_row_from_value(page_content, FPSTR(INTL_BATTERY_CAPACITY), battery_state); + // String battery_state = F(String(battery_charge) + " % (" + String(battery_analog_value / 1000.0) + "V)"); + String battery_state = String(battery_charge) + " % (" + String(battery_analog_value / 1000.0) + "V)"; + add_table_row_from_value(page_content, FPSTR(INTL_BATTERY_CHARGE), battery_state); } page_content += FPSTR(EMPTY_ROW); @@ -3433,11 +3434,11 @@ static void readBatteryVoltage() { battery_analog_value = round(battery_avg_value * ratio); debug_outln_verbose(F("Battery analog value (mV): "), String(battery_analog_value)); String bat_min_max = String(cfg::battery_u_min) + " / " + String(cfg::battery_u_max); - battery_capacity = map(battery_analog_value, cfg::battery_u_min, cfg::battery_u_max, 0, 100); - if (battery_capacity < 0){ - battery_capacity = 0; + battery_charge = map(battery_analog_value, cfg::battery_u_min, cfg::battery_u_max, 0, 100); + if (battery_charge < 0){ + battery_charge = 0; } - debug_outln_verbose(F("Battery capacity (%): "), String(battery_capacity)); + debug_outln_verbose(F("Battery capacity (%): "), String(battery_charge)); debug_outln_verbose(FPSTR(DBG_TXT_END_READING), F("Battery voltage")); battery_monitor_period = act_milli; @@ -3449,9 +3450,9 @@ static void readBatteryVoltage() { static void sendBatteryStatus(String& s) { float battery_voltage = battery_analog_value / 1000.0; add_Value2Json(s, F("Battery_voltage"), String(battery_voltage)); - add_Value2Json(s, F("Battery_capacity"), String(battery_capacity)); + add_Value2Json(s, F("battery_charge"), String(battery_charge)); debug_outln_info(F("Battery (V): "), String(battery_voltage)); - debug_outln_info(F("Battery (%): "), String(battery_capacity)); + debug_outln_info(F("Battery (%): "), String(battery_charge)); debug_outln_info(FPSTR(DBG_TXT_SEP)); } diff --git a/airrohr-firmware/intl_bg.h b/airrohr-firmware/intl_bg.h index ea27f9616..343223cd7 100644 --- a/airrohr-firmware/intl_bg.h +++ b/airrohr-firmware/intl_bg.h @@ -125,7 +125,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Качество на сигнала #define INTL_PARAMETER "Параметър" #define INTL_VALUE "Стойност" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активиране на монитора на батерията"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Капацитет на батерията"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Заряд на батерията"; const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батерията (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батерията (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "U max при делителя на АЦП (mV):"; diff --git a/airrohr-firmware/intl_cn.h b/airrohr-firmware/intl_cn.h index a0c9a8399..3fff5c0db 100644 --- a/airrohr-firmware/intl_cn.h +++ b/airrohr-firmware/intl_cn.h @@ -125,5 +125,11 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "信号质量"; #define INTL_SENSOR "传感器" #define INTL_PARAMETER "参数" #define INTL_VALUE "价值" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "启用电池监控器"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "电池充电"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "电池 U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "电池 U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC分频器 U max (mV)"; + #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_cz.h b/airrohr-firmware/intl_cz.h index 3bc63ba10..a5b0ca992 100644 --- a/airrohr-firmware/intl_cz.h +++ b/airrohr-firmware/intl_cz.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Kvalita signálu"; #define INTL_PARAMETER "Parametr" #define INTL_VALUE "Hodnota" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Povolit sledování baterie"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Kapacita baterie"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Nabíjení baterie"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Baterie U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Baterie U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "Dělič ADP U max (mV):"; diff --git a/airrohr-firmware/intl_de.h b/airrohr-firmware/intl_de.h index 16c1f5366..7c86501cd 100644 --- a/airrohr-firmware/intl_de.h +++ b/airrohr-firmware/intl_de.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualität"; #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Wert" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Batteriemonitor aktivieren"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batteriekapazität"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Batterieladung"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batterie U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batterie U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADW teiler U max (mV)"; diff --git a/airrohr-firmware/intl_dk.h b/airrohr-firmware/intl_dk.h index 4ef334599..c74474a68 100644 --- a/airrohr-firmware/intl_dk.h +++ b/airrohr-firmware/intl_dk.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Kvalitet"; #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Værdi" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Aktivér batteriskærm"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batterikapacitet"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Batteriopladning"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batteri U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batteri U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADK divider U max (mV):"; diff --git a/airrohr-firmware/intl_ee.h b/airrohr-firmware/intl_ee.h index da806af8e..57a1ff5b6 100644 --- a/airrohr-firmware/intl_ee.h +++ b/airrohr-firmware/intl_ee.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "signaali kvaliteet"; #define INTL_SENSOR "Andur" #define INTL_PARAMETER "Parameeter" #define INTL_VALUE "Väärtus" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Luba aku monitor"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Aku laadimine"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Aku U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Aku U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC eraldaja U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_en.h b/airrohr-firmware/intl_en.h index d9fb3d014..72706f451 100644 --- a/airrohr-firmware/intl_en.h +++ b/airrohr-firmware/intl_en.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "signal quality"; #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Value" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Enable battery monitor"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Battery capacity"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Battery charge"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Battery U min (mV)"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Battery U max (mV)"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divider U max (mV)"; diff --git a/airrohr-firmware/intl_es.h b/airrohr-firmware/intl_es.h index 5925093e9..dbb140173 100644 --- a/airrohr-firmware/intl_es.h +++ b/airrohr-firmware/intl_es.h @@ -125,7 +125,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Calidad de Señal"; #define INTL_PARAMETER "Parámetro" #define INTL_VALUE "Valor" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Habilitar monitor de batería"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacidad de la batería"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Bateria cargada"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batería U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batería U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "Divisor CAD U max (mV):"; diff --git a/airrohr-firmware/intl_fi.h b/airrohr-firmware/intl_fi.h index 3efa03b2d..ab5f3517a 100644 --- a/airrohr-firmware/intl_fi.h +++ b/airrohr-firmware/intl_fi.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "signaalin laatu"; #define INTL_SENSOR "Anturi" #define INTL_PARAMETER "Parametri" #define INTL_VALUE "Arvo" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Ota akkumonitori käyttöön"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Akun varaus"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Akku U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Akku U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC-jakaja U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_fr.h b/airrohr-firmware/intl_fr.h index e076d845f..f7dae8ab0 100644 --- a/airrohr-firmware/intl_fr.h +++ b/airrohr-firmware/intl_fr.h @@ -125,7 +125,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualité du signal"; #define INTL_PARAMETER "Paramètres" #define INTL_VALUE "Valeur" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Activer le moniteur de batterie"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacité de la batterie"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Charge de la batterie"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batterie U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batterie U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "Diviseur de CAN U max (mV):"; diff --git a/airrohr-firmware/intl_gr.h b/airrohr-firmware/intl_gr.h index e064a7797..c55d3264a 100644 --- a/airrohr-firmware/intl_gr.h +++ b/airrohr-firmware/intl_gr.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "ποιότητα σήματος"; #define INTL_SENSOR "Αισθητήρας" #define INTL_PARAMETER "Παράμετρος" #define INTL_VALUE "Αξία" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Ενεργοποίηση οθόνης μπαταρίας"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Φόρτιση μπαταρίας"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Μπαταρία U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Μπαταρία U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "Διαχωριστικό ADC U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_hu.h b/airrohr-firmware/intl_hu.h index 02b9cb342..f5a17bde0 100644 --- a/airrohr-firmware/intl_hu.h +++ b/airrohr-firmware/intl_hu.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Jelminőség"; #define INTL_PARAMETER "Paraméter" #define INTL_VALUE "Érték" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Engedélyezze az akkumulátorfigyelőt"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Akkumulátor-kapacitás"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Akkumulátortöltő"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Akkumulátor U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Akkumulátor U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADA elválasztó U max (mV):"; diff --git a/airrohr-firmware/intl_it.h b/airrohr-firmware/intl_it.h index c70327fe0..2c96d97f6 100644 --- a/airrohr-firmware/intl_it.h +++ b/airrohr-firmware/intl_it.h @@ -125,7 +125,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualità del segnale"; #define INTL_PARAMETER "Parametro" #define INTL_VALUE "Valore" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Abilita il monitoraggio della batteria"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacità della batteria"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Carica batterie"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batteria U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batteria U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divisore U max (mV):"; diff --git a/airrohr-firmware/intl_jp.h b/airrohr-firmware/intl_jp.h index 4399814a5..9c522f81c 100644 --- a/airrohr-firmware/intl_jp.h +++ b/airrohr-firmware/intl_jp.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "信号品質"; #define INTL_SENSOR "センサー" #define INTL_PARAMETER "パラメータ" #define INTL_VALUE "価値" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "バッテリーモニターを有効にする"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "充電"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "電池 U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "電池 U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC分周器 U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_lt.h b/airrohr-firmware/intl_lt.h index ccb27bac2..20a09e7bd 100644 --- a/airrohr-firmware/intl_lt.h +++ b/airrohr-firmware/intl_lt.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "signalo kokybė"; #define INTL_SENSOR "Jutiklis" #define INTL_PARAMETER "Parametras" #define INTL_VALUE "Vertė" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Įgalinti akumuliatoriaus monitorių"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Baterijos įkrovimas"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Baterija U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Baterija U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC daliklis U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_lu.h b/airrohr-firmware/intl_lu.h index 352c719ff..403a0484f 100644 --- a/airrohr-firmware/intl_lu.h +++ b/airrohr-firmware/intl_lu.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualitéit"; #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Wäert" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Aktivéiert Batterie Monitor"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batteriekapazitéit"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Batterieladung"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batterie U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batterie U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divider U max (mV):"; diff --git a/airrohr-firmware/intl_lv.h b/airrohr-firmware/intl_lv.h index 9b72665e6..2137a76f4 100644 --- a/airrohr-firmware/intl_lv.h +++ b/airrohr-firmware/intl_lv.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "signāla kvalitāte"; #define INTL_SENSOR "Sensors" #define INTL_PARAMETER "Parametrs" #define INTL_VALUE "Vērtība" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Iespējot akumulatora monitoru"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Akumulatora uzlāde"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Akumulators U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Akumulators U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC dalītājs U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_nl.h b/airrohr-firmware/intl_nl.h index 1d266a2b0..70f311032 100644 --- a/airrohr-firmware/intl_nl.h +++ b/airrohr-firmware/intl_nl.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Signaalkwaliteit"; #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Waarde" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Schakel de batterijmonitor in"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batterij capaciteit"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Batterijlading"; const char INTL_BATTERY_U_MIN[] PROGMEM = "batterij U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "batterij U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADO divider U max (mV):"; diff --git a/airrohr-firmware/intl_pl.h b/airrohr-firmware/intl_pl.h index 79c8809ba..fce29d9f0 100644 --- a/airrohr-firmware/intl_pl.h +++ b/airrohr-firmware/intl_pl.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Jakość sygnału"; #define INTL_PARAMETER "Parametr" #define INTL_VALUE "Wartość" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Włącz monitor baterii"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Pojemność baterii"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Ładowanie baterii"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Bateria U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Bateria U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ACP dzielnik U max (mV):"; diff --git a/airrohr-firmware/intl_pt.h b/airrohr-firmware/intl_pt.h index 1e84be106..0dff7d74b 100644 --- a/airrohr-firmware/intl_pt.h +++ b/airrohr-firmware/intl_pt.h @@ -125,7 +125,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Qualidade do Sinal"; #define INTL_PARAMETER "Parâmetro" #define INTL_VALUE "Valor" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Habilitar monitor de bateria"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Capacidade de carga"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Carga da bateria"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Bateria U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Bateria U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divisor U max (mV):"; diff --git a/airrohr-firmware/intl_ro.h b/airrohr-firmware/intl_ro.h index 4214041bd..aa2c409e0 100644 --- a/airrohr-firmware/intl_ro.h +++ b/airrohr-firmware/intl_ro.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "calitatea semnalului"; #define INTL_SENSOR "Senzor" #define INTL_PARAMETER "Parametru" #define INTL_VALUE "Valoare" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Iespējot akumulatora monitoru"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Akumulatora uzlāde"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Akumulators U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Akumulators U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC dalītājs U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_rs.h b/airrohr-firmware/intl_rs.h index accf4e823..8fcbfbd94 100644 --- a/airrohr-firmware/intl_rs.h +++ b/airrohr-firmware/intl_rs.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "kvalitet signala"; #define INTL_PARAMETER "Parametar" #define INTL_VALUE "Vrednost" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активирајте монитор батерије"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Капацитет батерије"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Пуњење батерије"; const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батерије (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батерије (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "АДП разделник U max (mV):"; diff --git a/airrohr-firmware/intl_ru.h b/airrohr-firmware/intl_ru.h index 776e6d71a..cbbe256b2 100644 --- a/airrohr-firmware/intl_ru.h +++ b/airrohr-firmware/intl_ru.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Качество"; #define INTL_PARAMETER "Параметр" #define INTL_VALUE "Значение" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активируйте монитор батареи"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Емкость батареи"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Заряд батареи"; const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батареи (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батареи (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "U max при делителя на АЦП (mV):"; diff --git a/airrohr-firmware/intl_se.h b/airrohr-firmware/intl_se.h index 370f23162..8fc851f2f 100644 --- a/airrohr-firmware/intl_se.h +++ b/airrohr-firmware/intl_se.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "Kvalitet"; #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Värde" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Aktivera batteriövervakare"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Batterikapacitet"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Batteriladdning"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batteri U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batteri U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADО divider U max (mV):"; diff --git a/airrohr-firmware/intl_si.h b/airrohr-firmware/intl_si.h index 2f1828a4a..f34dbb79f 100644 --- a/airrohr-firmware/intl_si.h +++ b/airrohr-firmware/intl_si.h @@ -125,5 +125,10 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "kakovost signala"; #define INTL_SENSOR "Senzor" #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Vrednost" +const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Omogoči nadzor baterije"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Polnjenje baterije"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Baterija U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Baterija U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC delilnik U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_sk.h b/airrohr-firmware/intl_sk.h index 5e36b412a..136810d15 100644 --- a/airrohr-firmware/intl_sk.h +++ b/airrohr-firmware/intl_sk.h @@ -125,7 +125,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "kvalita signálu"; #define INTL_PARAMETER "Parameter" #define INTL_VALUE "Hodnota" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Povoliť sledovanie batérie"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Kapacita batérie"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Nabitie batérie"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Batéria U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Batéria U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADP rozdeľovač U max (mV):"; diff --git a/airrohr-firmware/intl_template.h b/airrohr-firmware/intl_template.h index 1fb13976c..9bcc70e3e 100644 --- a/airrohr-firmware/intl_template.h +++ b/airrohr-firmware/intl_template.h @@ -126,9 +126,9 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = ""; #define INTL_PARAMETER "" #define INTL_VALUE "" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Enable battery monitor"; -const char INTL_BATTERY[] PROGMEM = "Battery"; -const char INTL_BATTERY_U_MIN[] PROGMEM = "Battery U min (V):"; -const char INTL_BATTERY_U_MAX[] PROGMEM = "Battery U max (V):"; -const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divider U max (mV):"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Battery charge"; +const char INTL_BATTERY_U_MIN[] PROGMEM = "Battery U min (mV)"; +const char INTL_BATTERY_U_MAX[] PROGMEM = "Battery U max (mV)"; +const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADC divider U max (mV)"; #include "./airrohr-logo-common.h" diff --git a/airrohr-firmware/intl_tr.h b/airrohr-firmware/intl_tr.h index 2922c1366..f2ccbd7d5 100644 --- a/airrohr-firmware/intl_tr.h +++ b/airrohr-firmware/intl_tr.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "sinyal kalitesi"; #define INTL_PARAMETER "Parametre" #define INTL_VALUE "değer" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Pil monitörünü etkinleştir"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Pil kapasitesi"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Pil şarjı"; const char INTL_BATTERY_U_MIN[] PROGMEM = "Pil U min (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "Pil U max (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "ADD bölücü U max (mV):"; diff --git a/airrohr-firmware/intl_ua.h b/airrohr-firmware/intl_ua.h index 71e02d8da..3fbd935b2 100644 --- a/airrohr-firmware/intl_ua.h +++ b/airrohr-firmware/intl_ua.h @@ -126,7 +126,7 @@ const char INTL_SIGNAL_QUALITY[] PROGMEM = "якість сигналу"; #define INTL_PARAMETER "Параметр" #define INTL_VALUE "Значення" const char INTL_ENABLE_BATTERY_MONITOR[] PROGMEM = "Активуйте монітор батареї"; -const char INTL_BATTERY_CAPACITY[] PROGMEM = "Ємкість батареї"; +const char INTL_BATTERY_CHARGE[] PROGMEM = "Заряд акумулятора"; const char INTL_BATTERY_U_MIN[] PROGMEM = "U min на батареї (mV):"; const char INTL_BATTERY_U_MAX[] PROGMEM = "U max на батареї (mV):"; const char INTL_ADC_DIVIDER_U_MAX[] PROGMEM = "U max при подільника на АЦП (mV):"; From 32d8b6a0b120e7950d3b0a51bc0cb1cfffde43c7 Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Wed, 28 Apr 2021 22:18:55 +0300 Subject: [PATCH 07/10] Fixed issue with the map() function and % when the value of the 'battery_analog_value' is outside of the predefined range by any circumstances; --- airrohr-firmware/airrohr-firmware.ino | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index 3811adedd..0e6fd0fbc 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -3434,10 +3434,13 @@ static void readBatteryVoltage() { battery_analog_value = round(battery_avg_value * ratio); debug_outln_verbose(F("Battery analog value (mV): "), String(battery_analog_value)); String bat_min_max = String(cfg::battery_u_min) + " / " + String(cfg::battery_u_max); - battery_charge = map(battery_analog_value, cfg::battery_u_min, cfg::battery_u_max, 0, 100); - if (battery_charge < 0){ - battery_charge = 0; - } + + // This will fix issues with the map() function when the value of the 'battery_analog_value' is outside of the predefined range by any circumstances. + uint32_t battery_voltage = (battery_analog_value < (uint32_t)cfg::battery_u_min) ? (uint32_t)cfg::battery_u_min : battery_analog_value; + battery_voltage = (battery_voltage > (uint32_t)cfg::battery_u_max) ? (uint32_t)cfg::battery_u_max : battery_voltage; + + battery_charge = map(battery_voltage, cfg::battery_u_min, cfg::battery_u_max, 0, 100); + debug_outln_verbose(F("Battery capacity (%): "), String(battery_charge)); debug_outln_verbose(FPSTR(DBG_TXT_END_READING), F("Battery voltage")); @@ -4618,7 +4621,6 @@ void loop(void) { if (msSince(battery_start_time) > SAMPLETIME_BAT_MS){ battery_start_time = act_milli; readBatteryVoltage(); - //readBatteryVoltage(result_BAT); } } From c34cc5ea3164c9a159d093839e8e0615c19ab12b Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Wed, 28 Apr 2021 22:52:46 +0300 Subject: [PATCH 08/10] Updated Memory Usage at comment area at the beginning of the airrohr-firmware.ino; --- airrohr-firmware/airrohr-firmware.ino | 8 ++++---- airrohr-firmware/platformio.ini | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index 0e6fd0fbc..96739a523 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -48,12 +48,12 @@ ************************************************************************ * * latest mit lib 2.6.2 - * DATA: [==== ] 39.5% (used 32392 bytes from 81920 bytes) - * PROGRAM: [===== ] 53.8% (used 580740 bytes from 1044464 bytes) + * DATA: [==== ] 39.8% (used 32636 bytes from 81920 bytes) + * PROGRAM: [===== ] 54.9% (used 573916 bytes from 1044464 bytes) * latest mit lib 2.5.2 - * DATA: [==== ] 39.4% (used 32304 bytes from 81920 bytes) - * PROGRAM: [===== ] 48.3% (used 504812 bytes from 1044464 bytes) + * DATA: [==== ] 39.8% (used 32604 bytes from 81920 bytes) + * PROGRAM: [===== ] 54.9% (used 573904 bytes from 1044464 bytes) * ************************************************************************/ #include diff --git a/airrohr-firmware/platformio.ini b/airrohr-firmware/platformio.ini index 842cb753d..dab632a40 100644 --- a/airrohr-firmware/platformio.ini +++ b/airrohr-firmware/platformio.ini @@ -87,6 +87,7 @@ extra_scripts = platformio_script.py # needs to be adjusted to the matching version from # https://github.com/platformio/platform-espressif8266/releases platform_version = espressif8266@2.6.2 +; platform_version = espressif8266@2.5.2 platform_version_esp32 = espressif32@1.11.1 ; using Arduino core 1.0.4 [DISABLEDenv:lolin_d32_pro_debug] From 6b150df284aa379b9ee2702ca1c083337fd08137 Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Sun, 14 Nov 2021 06:54:21 +0200 Subject: [PATCH 09/10] Added .vs to .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8fcbed29d..44fe95669 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ compile_mac.sh # Visual Studio Code -.vscode \ No newline at end of file +.vscode +.vs \ No newline at end of file From 29620d51950d73e7e736e356053518b5c2793a83 Mon Sep 17 00:00:00 2001 From: Georgi Vidinski Date: Sun, 14 Nov 2021 07:20:55 +0200 Subject: [PATCH 10/10] airrohr-firmware.ino: Updated memory usage comment --- airrohr-firmware/airrohr-firmware.ino | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/airrohr-firmware/airrohr-firmware.ino b/airrohr-firmware/airrohr-firmware.ino index 200304cea..c75cb55ca 100644 --- a/airrohr-firmware/airrohr-firmware.ino +++ b/airrohr-firmware/airrohr-firmware.ino @@ -47,14 +47,9 @@ * * ************************************************************************ * - * latest mit lib 2.6.2 - * DATA: [==== ] 39.8% (used 32636 bytes from 81920 bytes) - * PROGRAM: [===== ] 54.9% (used 573916 bytes from 1044464 bytes) - - * latest mit lib 2.5.2 - * DATA: [==== ] 39.8% (used 32604 bytes from 81920 bytes) - * PROGRAM: [===== ] 54.9% (used 573904 bytes from 1044464 bytes) - * + * latest mit lib 3.1.0 + * DATA: [==== ] 41.2% (used 33728 bytes from 81920 bytes) + * PROGRAM: [====== ] 57.6% (used 601633 bytes from 1044464 bytes) ************************************************************************/ #include #include