From f51203f754730f73ed6424b0b341e1a07af7dfd5 Mon Sep 17 00:00:00 2001 From: Achim Date: Wed, 13 Dec 2023 18:37:36 +0700 Subject: [PATCH] Added config menu item to switch off LED bar --- examples/ONE_V9/ONE_V9.ino | 109 ++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 32 deletions(-) diff --git a/examples/ONE_V9/ONE_V9.ino b/examples/ONE_V9/ONE_V9.ino index cbbb6a7..654408b 100644 --- a/examples/ONE_V9/ONE_V9.ino +++ b/examples/ONE_V9/ONE_V9.ino @@ -173,7 +173,7 @@ void setup() { pinMode(9, INPUT_PULLUP); buttonConfig = String(EEPROM.read(addr)).toInt(); - if (buttonConfig > 3) buttonConfig = 0; + if (buttonConfig > 7) buttonConfig = 0; delay(400); setConfig(); Serial.println("buttonConfig: " + String(buttonConfig)); @@ -217,21 +217,6 @@ void loop() { sendToServer(); } -void ledTest() { - updateOLED2("LED Test", "running", "....."); - setRGBledColor('r'); - delay(1000); - setRGBledColor('g'); - delay(1000); - setRGBledColor('b'); - delay(1000); - setRGBledColor('w'); - delay(1000); - setRGBledColor('n'); - delay(1000); - //LED Test -} - void updateTVOC() { uint16_t error; char errorMessage[256]; @@ -355,7 +340,7 @@ void inConf() { long pressDuration = releasedTime - pressedTime; if (pressDuration < 1000) { buttonConfig = buttonConfig + 1; - if (buttonConfig > 3) buttonConfig = 0; + if (buttonConfig > 7) buttonConfig = 0; } } @@ -381,26 +366,52 @@ void inConf() { void setConfig() { Serial.println("in setConfig"); if (buttonConfig == 0) { - updateOLED2("Temp. in C", "PM in ug/m3", "Long Press Saves"); u8g2.setDisplayRotation(U8G2_R0); + updateOLED2("T:C, PM:ug/m3", "LED Bar: on", "Long Press Saves"); inF = false; inUSAQI = false; - } - if (buttonConfig == 1) { - updateOLED2("Temp. in C", "PM in US AQI", "Long Press Saves"); + useRGBledBar = true; + } else if (buttonConfig == 1) { u8g2.setDisplayRotation(U8G2_R0); + updateOLED2("T:C, PM:US AQI", "LED Bar: on", "Long Press Saves"); inF = false; inUSAQI = true; + useRGBledBar = true; } else if (buttonConfig == 2) { - updateOLED2("Temp. in F", "PM in ug/m3", "Long Press Saves"); u8g2.setDisplayRotation(U8G2_R0); + updateOLED2("T:F PM:ug/m3", "LED Bar: on", "Long Press Saves"); inF = true; inUSAQI = false; + useRGBledBar = true; } else if (buttonConfig == 3) { - updateOLED2("Temp. in F", "PM in US AQI", "Long Press Saves"); u8g2.setDisplayRotation(U8G2_R0); + updateOLED2("T:F PM:US AQI", "LED Bar: on", "Long Press Saves"); inF = true; inUSAQI = true; + useRGBledBar = true; + } else if (buttonConfig == 4) { + updateOLED2("T:C, PM:ug/m3", "LED Bar: off", "Long Press Saves"); + inF = false; + inUSAQI = false; + useRGBledBar = false; + } else if (buttonConfig == 5) { + u8g2.setDisplayRotation(U8G2_R0); + updateOLED2("T:C, PM:US AQI", "LED Bar: off", "Long Press Saves"); + inF = false; + inUSAQI = true; + useRGBledBar = false; + } else if (buttonConfig == 6) { + u8g2.setDisplayRotation(U8G2_R0); + updateOLED2("T:F PM:ug/m3", "LED Bar: off", "Long Press Saves"); + inF = true; + inUSAQI = false; + useRGBledBar = false; + } else if (buttonConfig == 7) { + u8g2.setDisplayRotation(U8G2_R0); + updateOLED2("T:F PM:US AQI", "LED Bar: off", "Long Press Saves"); + inF = true; + inUSAQI = true; + useRGBledBar = false; } } @@ -627,63 +638,63 @@ void setRGBledColor(char color) { case 'g': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(0, 255, 0)); - delay(100); + delay(30); pixels.show(); } break; case 'y': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(255, 255, 0)); - delay(100); + delay(30); pixels.show(); } break; case 'o': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(255, 128, 0)); - delay(100); + delay(30); pixels.show(); } break; case 'r': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(255, 0, 0)); - delay(100); + delay(30); pixels.show(); } break; case 'b': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(0, 0, 255)); - delay(100); + delay(30); pixels.show(); } break; case 'w': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(255, 255, 255)); - delay(100); + delay(30); pixels.show(); } break; case 'p': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(153, 0, 153)); - delay(100); + delay(30); pixels.show(); } break; case 'z': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(102, 0, 0)); - delay(100); + delay(30); pixels.show(); } break; case 'n': for (int i = 0; i < 11; i++) { pixels.setPixelColor(i, pixels.Color(0, 0, 0)); - delay(100); + delay(30); pixels.show(); } break; @@ -695,6 +706,40 @@ void setRGBledColor(char color) { } } +void ledTest() { + updateOLED2("LED Test", "running", "....."); + for (int i = 0; i < 11; i++) { + pixels.setPixelColor(i, pixels.Color(255, 0, 0)); + delay(30); + pixels.show(); + } + delay(500); + for (int i = 0; i < 11; i++) { + pixels.setPixelColor(i, pixels.Color(0, 255, 0)); + delay(30); + pixels.show(); + } + delay(500); + for (int i = 0; i < 11; i++) { + pixels.setPixelColor(i, pixels.Color(0, 0, 255)); + delay(30); + pixels.show(); + } + delay(500); + for (int i = 0; i < 11; i++) { + pixels.setPixelColor(i, pixels.Color(255, 255, 255)); + delay(30); + pixels.show(); + } + delay(500); + for (int i = 0; i < 11; i++) { + pixels.setPixelColor(i, pixels.Color(0, 0, 0)); + delay(30); + pixels.show(); + } + delay(500); +} + // Calculate PM2.5 US AQI int PM_TO_AQI_US(int pm02) { if (pm02 <= 12.0) return ((50 - 0) / (12.0 - .0) * (pm02 - .0) + 0);