Quality of Life Update

QOL Update - i dont need the display to be always on... Push the middle Button (IO38) and the OLED Display will be deactivated or activated.
This commit is contained in:
HrSh3rl0ck 2023-09-08 22:26:33 +02:00
parent 56423d4f63
commit a83614289e
4 changed files with 40 additions and 1 deletions

View file

@ -29,6 +29,8 @@ TinyGPSPlus gps;
void setup_gps();
void load_config();
void setup_lora();
bool OLED_deactivated = false;
int OLED_deactivatedTime = 0;
String create_lat_aprs(RawDegrees lat);
String create_long_aprs(RawDegrees lng);
@ -85,7 +87,7 @@ void setup() {
show_display("OE5BPA", "LoRa APRS Tracker", "by Peter Buchegger", "Updated by HrSh3rl0ck", "Version: " VERSION, 2000);
load_config();
setup_gps();
setup_lora();
@ -132,6 +134,26 @@ void loop() {
}
}
pinMode(GPIO_NUM_38, INPUT_PULLUP);
int btn_pressenIO38 = analogRead(GPIO_NUM_38);
if(btn_pressenIO38 != 4095){
if(OLED_deactivatedTime >= 180){
if(OLED_deactivated) {
OLED_deactivated = false;
awake_display();
OLED_deactivatedTime = 0;
} else {
OLED_deactivated = true;
sleep_display();
OLED_deactivatedTime = 0;
};
} else {
OLED_deactivatedTime += 1;
};
} else {
OLED_deactivatedTime = 0;
};
bool gps_time_update = gps.time.isUpdated();
bool gps_loc_update = gps.location.isUpdated();
static bool gps_loc_update_valid = false;

View file

@ -11,6 +11,15 @@ extern logging::Logger logger;
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RST);
void sleep_display()
{
display.ssd1306_command(SSD1306_DISPLAYOFF);
};
void awake_display()
{
display.ssd1306_command(SSD1306_DISPLAYON);
};
// cppcheck-suppress unusedFunction
void setup_display() {
pinMode(OLED_RST, OUTPUT);

View file

@ -3,6 +3,8 @@
#define DISPLAY_H_
void setup_display();
void sleep_display();
void awake_display();
void display_toggle(bool toggle);
void show_display(String header, int wait = 0);

View file

@ -82,6 +82,9 @@ void PowerManagement::activateOLED() {
#if defined(TTGO_T_Beam_V0_7) || defined(TTGO_T_Beam_V1_0)
axp.setPowerOutPut(AXP192_DCDC1, AXP202_ON);
#endif
#ifdef TTGO_T_Beam_V1_2
PMU.enableDC1();
#endif
}
// cppcheck-suppress unusedFunction
@ -89,6 +92,9 @@ void PowerManagement::decativateOLED() {
#if defined(TTGO_T_Beam_V0_7) || defined(TTGO_T_Beam_V1_0)
axp.setPowerOutPut(AXP192_DCDC1, AXP202_OFF);
#endif
#ifdef TTGO_T_Beam_V1_2
PMU.disableDC1();
#endif
}
// cppcheck-suppress unusedFunction