release candidate 0.9

This commit is contained in:
coelner 2021-01-08 21:10:16 +01:00
parent 907cd7b6ab
commit a01de637dc
3 changed files with 54 additions and 17 deletions

View File

@ -30,10 +30,10 @@
#define SERIAL_BAUD 115200 #define SERIAL_BAUD 115200
//#define RGBW //#define RGBW
bool singleSecond = true; //show seconds volatile bool singleSecond = true; //show seconds
bool allDotsOn = true; //lighten up all leds volatile bool allDotsOn = true; //lighten up all leds
bool followingHour = true; //move hour like an analog one volatile bool followingHour = true; //move hour like an analog one
int volatile hourOffset = 0; volatile int hourOffset = 0;
void bootAnimCallback(); void bootAnimCallback();
void clockTickCallback(); void clockTickCallback();
@ -50,7 +50,7 @@ RgbwColor red(colorSaturation, 0, 0, 0);
RgbwColor green(0, colorSaturation, 0, 0); RgbwColor green(0, colorSaturation, 0, 0);
RgbwColor blue(0, 0, colorSaturation, 0); RgbwColor blue(0, 0, colorSaturation, 0);
RgbwColor realWhite(colorSaturation); RgbwColor realWhite(colorSaturation);
RgbColor white(0, 0, 0, 40); //darkish dirt RgbwColor white(0, 0, 0, 40); //darkish dirt
RgbwColor whiter(0, 0, 0, 120); //darkish dirt RgbwColor whiter(0, 0, 0, 120); //darkish dirt
RgbwColor white12(0, 0, 0, 192); //darkish dirt RgbwColor white12(0, 0, 0, 192); //darkish dirt
RgbwColor black(0); RgbwColor black(0);
@ -91,7 +91,7 @@ volatile int currentHour = 2;
// variable for storing the potentiometer value // variable for storing the potentiometer value
volatile unsigned int ldrValue = 0; volatile unsigned int ldrValue = 0;
int MAX_BRIGHTNESS = 200; volatile int MAX_BRIGHTNESS = 200;
// WebPortal // WebPortal
const char thingName[] = "NTP-Clock-RGBLED"; const char thingName[] = "NTP-Clock-RGBLED";
@ -127,7 +127,7 @@ char allDotsOnParamValue[STRING_LEN];
char followingHourParamValue[STRING_LEN]; char followingHourParamValue[STRING_LEN];
IotWebConf iotWebConf(thingName, &dnsServer, &server, wifiInitialApPassword, CONFIG_VERSION); IotWebConf iotWebConf(thingName, &dnsServer, &server, wifiInitialApPassword, CONFIG_VERSION);
IotWebConfParameterGroup timeGroup = IotWebConfParameterGroup("Time", "Time Settings"); IotWebConfParameterGroup timeGroup = IotWebConfParameterGroup("Time", "Time settings");
IotWebConfTextParameter ntpServerParam = IotWebConfTextParameter("NTP Server", "ntpServer", ntpServerParamValue, STRING_LEN, "pool.ntp.org"); IotWebConfTextParameter ntpServerParam = IotWebConfTextParameter("NTP Server", "ntpServer", ntpServerParamValue, STRING_LEN, "pool.ntp.org");
IotWebConfParameterGroup ledGroup = IotWebConfParameterGroup("LED", "LED settings"); IotWebConfParameterGroup ledGroup = IotWebConfParameterGroup("LED", "LED settings");
IotWebConfNumberParameter maxBrightnessParam = IotWebConfNumberParameter("Max BRIGHTNESS", "max brightness", maxBrightnessParamValue, NUMBER_LEN, "200", "20..254", "min='20' max='254' step='1'"); IotWebConfNumberParameter maxBrightnessParam = IotWebConfNumberParameter("Max BRIGHTNESS", "max brightness", maxBrightnessParamValue, NUMBER_LEN, "200", "20..254", "min='20' max='254' step='1'");
@ -271,8 +271,12 @@ void iotWebConf_Setup() {
iotWebConf.setFormValidator(&iotWebConfFormValidator); iotWebConf.setFormValidator(&iotWebConfFormValidator);
iotWebConf.getApTimeoutParameter()->visible = true; iotWebConf.getApTimeoutParameter()->visible = true;
iotWebConf.setupUpdateServer( iotWebConf.setupUpdateServer(
[](const char* updatePath) { httpUpdater.setup(&server, updatePath); }, [](const char* updatePath) {
[](const char* userName, char* password) { httpUpdater.updateCredentials(userName, password); }); httpUpdater.setup(&server, updatePath);
},
[](const char* userName, char* password) {
httpUpdater.updateCredentials(userName, password);
});
iotWebConf.setHtmlFormatProvider(&customHtmlFormatProvider); iotWebConf.setHtmlFormatProvider(&customHtmlFormatProvider);
// -- Initializing the configuration. // -- Initializing the configuration.
@ -315,6 +319,8 @@ void setup() {
Serial.print("\n\n\nCPU Frequency is: "); Serial.print("\n\n\nCPU Frequency is: ");
Serial.print(getCpuFrequencyMhz()); //Get CPU clock Serial.print(getCpuFrequencyMhz()); //Get CPU clock
Serial.println(" Mhz"); Serial.println(" Mhz");
Serial.print("MAC address: ");
Serial.println(WiFi.macAddress()); //Get CPU clock
Serial.println("-----------------------\nSettings\n-----------------------"); Serial.println("-----------------------\nSettings\n-----------------------");
Serial.printf("Show single second: \t%s\n", singleSecond ? "yes" : "no"); Serial.printf("Show single second: \t%s\n", singleSecond ? "yes" : "no");
@ -399,9 +405,22 @@ void bootAnimCallback() {
if (currentSec < 0) { if (currentSec < 0) {
currentSec = 59; currentSec = 59;
} }
strip.SetPixelColor(MOD((currentSec - 0), NUM_LEDS), white); if (iotWebConf.getState() == 3) {
strip.SetPixelColor(MOD((currentSec - 1), NUM_LEDS), whiter); strip.SetPixelColor(MOD((currentSec - 0), NUM_LEDS), white);
strip.SetPixelColor(MOD((currentSec - 2), NUM_LEDS), white12); strip.SetPixelColor(MOD((currentSec - 1), NUM_LEDS), whiter);
strip.SetPixelColor(MOD((currentSec - 2), NUM_LEDS), white12);
}
if (iotWebConf.getState() == 2) {
strip.SetPixelColor(MOD((currentSec - 0), NUM_LEDS), orange);
strip.SetPixelColor(MOD((currentSec - 1), NUM_LEDS), orangered);
strip.SetPixelColor(MOD((currentSec - 2), NUM_LEDS), red);
}
if (iotWebConf.getState() == 0 || iotWebConf.getState() == 1) {
strip.SetPixelColor(MOD((currentSec - 0), NUM_LEDS), orangered);
strip.SetPixelColor(MOD((currentSec - 1), NUM_LEDS), red);
strip.SetPixelColor(MOD((currentSec - 2), NUM_LEDS), darkred);
}
strip.Show(); strip.Show();
} }
@ -417,7 +436,7 @@ void brightnessAdjustmentCallback() {
x = int(MINIMAL_BRIGHTNESS + (MAX_BRIGHTNESS - MINIMAL_BRIGHTNESS) / ((ldrValue / LDR_SCALE) + 1) ); x = int(MINIMAL_BRIGHTNESS + (MAX_BRIGHTNESS - MINIMAL_BRIGHTNESS) / ((ldrValue / LDR_SCALE) + 1) );
strip.SetBrightness(x); strip.SetBrightness(x);
} }
//Serial.println("Brightness: " + String(strip.GetBrightness()) + "(" + String(ldrValue) + ")"); Serial.println("Brightness: " + String(strip.GetBrightness()) + "(" + String(ldrValue) + ")");
ldrValue = 0; ldrValue = 0;
strip.Show(); strip.Show();
} }

Binary file not shown.

View File

@ -9,18 +9,37 @@ Sobald die Uhr mit Strom versorgt wird ( 5V, 500mAh) bietet das Board (Lolin32li
- maximale Helligkeit - maximale Helligkeit
- Anzeige der einzelnen Sekunden - Anzeige der einzelnen Sekunden
- Aufleuchten aller LEDs - Aufleuchten aller LEDs
- Folgende Stunde wie auf einer analogen Uhr - Folgende Stunde (wie auf einer analogen Uhr)
Unten auf der Statusseite gibt es einen Link zur Konfigurationsseite, eine Möglichkeit für den Upload einer neuen Firmware sowie die aktuelle Firmwareversion.
Unten auf der Statusseite gibt es einen Link zur Konfigurationsseite
## technische Details ## technische Details
- ESP32 (Lolin32 Lite) - ESP32 (Lolin32 Lite)
- SK6812 or WS2812B 60 LED ring - SK6812 or WS2812B 60 LED ring
- LDR over Resistor voltage divider - LDR over Resistor voltage divider
- LED ring powered over 3.3V (WS2812B) rail or USB VCC (SK6812) - LED ring powered over 3.3V (WS2812B) rail or USB VCC (SK6812)
- LED Output Pin 17 (requirement for NeoPixel library as I2C is used) - LED Output Pin 17 (requirement for NeoPixel library as I2S is used)
- LDR analog measure pin A6 - LDR analog measure pin A6
## Konfigurationsseite
# System configuration
- Thing name
- AP password
- WiFi SSID
- WiFi password
- Startup delay (seconds)
# Time settings
- NTP server
# LED settings
- MAX Brightness
- Show Seconds
- all Dots lighten up
- following Hour
- firmware update link
- Firmware config version 'xxxx'
## ausstehende Verbesserungen ## ausstehende Verbesserungen
- [ ] RGB Auswahl Sekunden - [ ] RGB Auswahl Sekunden
@ -28,4 +47,3 @@ Unten auf der Statusseite gibt es einen Link zur Konfigurationsseite
- [ ] RGB Auswahl Stunden - [ ] RGB Auswahl Stunden
- [ ] RGB Auswahl 12 Uhr - [ ] RGB Auswahl 12 Uhr
- [ ] flüssige Helligkeitsadaptierung - [ ] flüssige Helligkeitsadaptierung
- [ ] Firmware Update über Upload