|
@ -222,15 +222,18 @@ class MonochromeDisplay { |
|
|
mDisplay.print(timeStr); |
|
|
mDisplay.print(timeStr); |
|
|
} |
|
|
} |
|
|
#else // ENA_SSD1306
|
|
|
#else // ENA_SSD1306
|
|
|
mDisplay.drawXBM(106,5,16,16,bmp_logo); |
|
|
mDisplay.setContrast(60); |
|
|
|
|
|
// pxZittern in +x (0 - 8 px)
|
|
|
|
|
|
int ex = 2*( mExtra % 5 ); |
|
|
|
|
|
mDisplay.drawXBM(100+ex,2,16,16,bmp_logo); |
|
|
mDisplay.setFont(u8g2_font_ncenB08_tr); |
|
|
mDisplay.setFont(u8g2_font_ncenB08_tr); |
|
|
if(ucnt) { |
|
|
if(ucnt) { |
|
|
//=====> Actual Production
|
|
|
//=====> Actual Production
|
|
|
mDisplay.setPowerSave(false); |
|
|
mDisplay.setPowerSave(false); |
|
|
displaySleep=false; |
|
|
displaySleep=false; |
|
|
mDisplay.setFont(u8g2_font_logisoso18_tr); |
|
|
mDisplay.setFont(u8g2_font_logisoso18_tr); |
|
|
mDisplay.drawXBM(10,5,8,17,bmp_arrow); |
|
|
mDisplay.drawXBM(10+ex,2,8,17,bmp_arrow); |
|
|
mDisplay.setCursor(25,20); |
|
|
mDisplay.setCursor(25+ex,20); |
|
|
if (totalActual>999){ |
|
|
if (totalActual>999){ |
|
|
sprintf(fmtText,"%2.1f",(totalActual/1000)); |
|
|
sprintf(fmtText,"%2.1f",(totalActual/1000)); |
|
|
mDisplay.print(String(fmtText)+F(" kW")); |
|
|
mDisplay.print(String(fmtText)+F(" kW")); |
|
@ -248,52 +251,47 @@ class MonochromeDisplay { |
|
|
displaySleep=true; |
|
|
displaySleep=true; |
|
|
} |
|
|
} |
|
|
mDisplay.setFont(u8g2_font_logisoso18_tr); |
|
|
mDisplay.setFont(u8g2_font_logisoso18_tr); |
|
|
mDisplay.setCursor(10,20); |
|
|
mDisplay.setCursor(10+ex,20); |
|
|
mDisplay.print(String(F("offline"))); |
|
|
mDisplay.print(String(F("offline"))); |
|
|
if ((millis() - displaySleepTimer) > displaySleepDelay) { |
|
|
if ((millis() - displaySleepTimer) > displaySleepDelay) { |
|
|
mDisplay.setPowerSave(true); |
|
|
mDisplay.setPowerSave(true); |
|
|
} |
|
|
} |
|
|
//<=======================
|
|
|
//<=======================
|
|
|
} |
|
|
} |
|
|
mDisplay.drawLine(2, 23, 123, 23); |
|
|
mDisplay.drawLine(2+ex, 23, 123, 23); |
|
|
mDisplay.setFont(u8g2_font_ncenB10_tr); |
|
|
mDisplay.setFont(u8g2_font_ncenB10_tr); |
|
|
mDisplay.setCursor(5,36); |
|
|
mDisplay.setCursor(2+ex,36); |
|
|
if (( num_inv < 2 ) || !(mExtra%2)) |
|
|
if (( num_inv < 2 ) || !(mExtra%2)) |
|
|
{ |
|
|
{ |
|
|
//=====> Today & Total Production
|
|
|
//=====> Today & Total Production
|
|
|
sprintf(fmtText,"%5.0f",totalYieldToday); |
|
|
sprintf(fmtText,"%5.0f",totalYieldToday); |
|
|
mDisplay.print(F("today: ")+String(fmtText)+F(" Wh")); |
|
|
mDisplay.print(F("today: ")+String(fmtText)+F(" Wh")); |
|
|
mDisplay.setCursor(5,50); |
|
|
mDisplay.setCursor(2+ex,50); |
|
|
sprintf(fmtText,"%.1f",totalYield); |
|
|
sprintf(fmtText,"%.1f",totalYield); |
|
|
mDisplay.print(F("total: ")+String(fmtText)+F(" kWh")); |
|
|
mDisplay.print(F("total: ")+String(fmtText)+F(" kWh")); |
|
|
//<=======================
|
|
|
//<=======================
|
|
|
} |
|
|
} else { |
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
int id1=(mExtra/2)%(num_inv-1); |
|
|
int id1=(mExtra/2)%(num_inv-1); |
|
|
if( pow_i[id1] ) |
|
|
if( pow_i[id1] ) |
|
|
mDisplay.print(F("#")+String(id1+1)+F(" ")+String(pow_i[id1])+F(" W")); |
|
|
mDisplay.print(F("#")+String(id1+1)+F(" ")+String(pow_i[id1])+F(" W")); |
|
|
else |
|
|
else |
|
|
mDisplay.print(F("#")+String(id1+1)+F(" -----")); |
|
|
mDisplay.print(F("#")+String(id1+1)+F(" -----")); |
|
|
mDisplay.setCursor(5,50); |
|
|
mDisplay.setCursor(5+ex,50); |
|
|
if( pow_i[id1+1] ) |
|
|
if( pow_i[id1+1] ) |
|
|
mDisplay.print(F("#")+String(id1+2)+F(" ")+String(pow_i[id1+1])+F(" W")); |
|
|
mDisplay.print(F("#")+String(id1+2)+F(" ")+String(pow_i[id1+1])+F(" W")); |
|
|
else |
|
|
else |
|
|
mDisplay.print(F("#")+String(id1+2)+F(" -----")); |
|
|
mDisplay.print(F("#")+String(id1+2)+F(" -----")); |
|
|
} |
|
|
} |
|
|
mDisplay.setFont(u8g2_font_5x8_tr); |
|
|
mDisplay.setFont(u8g2_font_5x8_tr); |
|
|
if ( !(mExtra%10) && ip ) { |
|
|
mDisplay.setCursor(5+ex,63); |
|
|
mDisplay.setCursor(5,63); |
|
|
if ( !(mExtra%10) && ip ) |
|
|
mDisplay.print(ip.toString()); |
|
|
mDisplay.print(ip.toString()); |
|
|
} |
|
|
else |
|
|
else { |
|
|
|
|
|
mDisplay.setCursor(5,63); |
|
|
|
|
|
mDisplay.print(timeStr); |
|
|
mDisplay.print(timeStr); |
|
|
} |
|
|
|
|
|
#endif |
|
|
#endif |
|
|
mDisplay.sendBuffer(); |
|
|
mDisplay.sendBuffer(); |
|
|
} while( mDisplay.nextPage() ); |
|
|
} while( mDisplay.nextPage() ); |
|
|
delay(500); |
|
|
delay(200); |
|
|
mExtra++; |
|
|
mExtra++; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -301,9 +299,9 @@ class MonochromeDisplay { |
|
|
#ifdef ENA_NOKIA |
|
|
#ifdef ENA_NOKIA |
|
|
U8G2_PCD8544_84X48_1_4W_HW_SPI mDisplay; |
|
|
U8G2_PCD8544_84X48_1_4W_HW_SPI mDisplay; |
|
|
#elif defined(ENA_SSD1306) |
|
|
#elif defined(ENA_SSD1306) |
|
|
U8G2_SSD1306_128X64_NONAME_1_HW_I2C mDisplay; |
|
|
U8G2_SSD1306_128X64_NONAME_F_HW_I2C mDisplay; |
|
|
#elif defined(ENA_SH1106) |
|
|
#elif defined(ENA_SH1106) |
|
|
U8G2_SH1106_128X64_NONAME_1_HW_I2C mDisplay; |
|
|
U8G2_SH1106_128X64_NONAME_F_HW_I2C mDisplay; |
|
|
#endif |
|
|
#endif |
|
|
int mExtra; |
|
|
int mExtra; |
|
|
bool mNewPayload; |
|
|
bool mNewPayload; |
|
|