Added Battery Monitoring
This commit is contained in:
parent
49260c0db5
commit
6bc0e394ac
@ -22,6 +22,8 @@
|
||||
<h3>
|
||||
%TITLE%
|
||||
</h3>
|
||||
<p>Battery Voltage: %BATTERY_VOLTAGE% V</p>
|
||||
<p>Battery Level: %BATTERY_LEVEL% %</p>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -9,6 +9,11 @@
|
||||
#define WIFI_PASS "CaptureTheFlag"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef BAT_LOW_PERCENT
|
||||
#define BAT_LOW_PERCENT 10
|
||||
#endif
|
||||
|
||||
#ifndef FACTION_1_NAME
|
||||
#define FACTION_1_NAME "Team A"
|
||||
#endif
|
||||
|
39
src/main.cpp
39
src/main.cpp
@ -70,6 +70,12 @@ uint8_t Faction_1_dot = 0;
|
||||
uint8_t Faction_2_dot = 0;
|
||||
uint8_t Faction_3_dot = 0;
|
||||
|
||||
float loadvoltage = 0;
|
||||
int battery_level = 0;
|
||||
|
||||
const uint8_t sevenSeg_bat[] = {0x00, 0b01111100, 0b01110111, 0b01111000};
|
||||
const uint8_t sevenSeg_low[] = {0b00111000, 0b01011100, 0x00, 0x00};
|
||||
|
||||
String processor(const String &var)
|
||||
{
|
||||
char buffer[16] = {0};
|
||||
@ -104,6 +110,16 @@ String processor(const String &var)
|
||||
if (var == "TITLE")
|
||||
return WIFI_SSID;
|
||||
|
||||
if (var == "BATTERY_LEVEL")
|
||||
{
|
||||
sprintf(buffer, "%d", battery_level);
|
||||
return String(buffer);
|
||||
}
|
||||
if (var == "BATTERY_VOLTAGE")
|
||||
{
|
||||
sprintf(buffer, "%f", loadvoltage);
|
||||
return String(buffer);
|
||||
}
|
||||
return String(buffer);
|
||||
}
|
||||
|
||||
@ -210,6 +226,21 @@ public:
|
||||
|
||||
void SevenSeg_Output()
|
||||
{
|
||||
if (battery_level < BAT_LOW_PERCENT)
|
||||
{
|
||||
disp_FAC_1.setBrightness(0);
|
||||
disp_FAC_2.setBrightness(0);
|
||||
disp_FAC_3.setBrightness(0);
|
||||
|
||||
disp_FAC_3.setSegments(sevenSeg_bat);
|
||||
disp_FAC_2.setSegments(sevenSeg_low);
|
||||
if (millis() % 5000 > 2500)
|
||||
disp_FAC_1.showNumberDec(battery_level);
|
||||
else
|
||||
disp_FAC_1.showNumberDecEx(loadvoltage * 100, 0x40);
|
||||
}
|
||||
else
|
||||
{
|
||||
disp_FAC_1.setBrightness(activeFaction == FACTION_1 ? 7 : 0);
|
||||
disp_FAC_2.setBrightness(activeFaction == FACTION_2 ? 7 : 0);
|
||||
disp_FAC_3.setBrightness(activeFaction == FACTION_3 ? 7 : 0);
|
||||
@ -284,10 +315,12 @@ void inputGetterTicker_callback()
|
||||
|
||||
void powerMonitorTicker_callback()
|
||||
{
|
||||
|
||||
// loadvoltage and percentage is global, because of battery Monitoring
|
||||
|
||||
float shuntvoltage = 0;
|
||||
float busvoltage = 0;
|
||||
float current_mA = 0;
|
||||
float loadvoltage = 0;
|
||||
float busvoltage = 0;
|
||||
float power_mW = 0;
|
||||
|
||||
shuntvoltage = ina219.getShuntVoltage_mV();
|
||||
@ -295,7 +328,9 @@ void powerMonitorTicker_callback()
|
||||
current_mA = ina219.getCurrent_mA();
|
||||
power_mW = ina219.getPower_mW();
|
||||
loadvoltage = busvoltage + (shuntvoltage / 1000);
|
||||
battery_level = map(loadvoltage * 100, 655, 840, 0, 100);
|
||||
|
||||
Serial.printf("Battery Level: %d %%\n", battery_level);
|
||||
Serial.printf("Bus Voltage: %f V\n", busvoltage);
|
||||
Serial.printf("Shunt Voltage: %f mV\n", shuntvoltage);
|
||||
Serial.printf("Load Voltage: %f V\n", loadvoltage);
|
||||
|
Loading…
x
Reference in New Issue
Block a user