diff --git a/data/igate_conf.json b/data/igate_conf.json index 68f5b45..a06b91e 100644 --- a/data/igate_conf.json +++ b/data/igate_conf.json @@ -56,6 +56,8 @@ "other": { "beaconInterval": 15, "rememberStationTime": 30, - "sendBatteryVoltage": false + "sendBatteryVoltage": false, + "externalVoltageMeasurement" : true, + "externalVoltagePin": 13 } } \ No newline at end of file diff --git a/src/configuration.cpp b/src/configuration.cpp index 66abfab..a03e638 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -37,6 +37,8 @@ void Configuration::readFile(fs::FS &fs, const char *fileName) { beaconInterval = data["other"]["beaconInterval"].as(); rememberStationTime = data["other"]["rememberStationTime"].as(); sendBatteryVoltage = data["other"]["sendBatteryVoltage"].as(); + externalVoltageMeasurement = data["other"]["externalVoltageMeasurement"].as(); + externalVoltagePin = data["other"]["externalVoltagePin"].as(); digi.comment = data["digi"]["comment"].as(); digi.latitude = data["digi"]["latitude"].as(); diff --git a/src/configuration.h b/src/configuration.h index 0bb90cd..95dca15 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -75,6 +75,8 @@ public: int beaconInterval; int rememberStationTime; bool sendBatteryVoltage; + bool externalVoltageMeasurement; + int externalVoltagePin; std::vector wifiAPs; DIGI digi; APRS_IS aprs_is; diff --git a/src/utils.cpp b/src/utils.cpp index de1e39a..db7bf1a 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -53,6 +53,21 @@ void notFound(AsyncWebServerRequest *request) { request->send(404, "text/plain", "Not found"); } +String meassureExternalBattery() { + int16_t sample; + int sampleNum = 50; + float readingCorrection = 0.0018; + float batteryVoltage, sampleSum; + sampleSum = 0; + for (int i=0; iAPLRG1"; if (stationMode==1 || stationMode==2 || (stationMode==5 && WiFi.status() == WL_CONNECTED)) { diff --git a/src/utils.h b/src/utils.h index f70f164..ae20a22 100644 --- a/src/utils.h +++ b/src/utils.h @@ -5,6 +5,7 @@ namespace Utils { +String meassureExternalBattery(); void processStatus(); String getLocalIP(); void setupDisplay();