Scusa se non mi sono spiegato bene allora il parte di codice che mi hai dato qualche minuto fa lo ho provato al posto del mio magari per risparmiare spazio dato che aveva detto che era più semplice:
void DisplayInfo(){
DateTime now = rtc.now();
sensors_event_t event;
delay(1000);
u8g.firstPage();
do {
u8g.setFont(u8g_font_profont29);
char timeBuffer[16];
snprintf(timeBuffer, sizeof(timeBuffer), "%02d:%02d", now.hour(), now.minute());
int timeX = (128 - u8g.getStrWidth(timeBuffer)) / 2;
u8g.drawStr(timeX, 30, timeBuffer);
u8g.setFont(u8g_font_profont15);
snprintf(timeBuffer, sizeof(timeBuffer), "%02d-%02d-%04d", now.day(), now.month(), now.year());
int timeBufferX = (128 - u8g.getStrWidth(timeBuffer)) / 2;
u8g.drawStr(29, 46, timeBuffer);
u8g.setFont(u8g_font_profont12);
char dhtBuffer[10];
char sTemp[8], sHum[8];
dht.temperature().getEvent(&event);
dtostrf(event.temperature, 5, 2, sTemp);
dht.humidity().getEvent(&event);
dtostrf(event.relative_humidity, 5, 1, sHum);
snprintf(dhtBuffer, sizeof(dhtBuffer), "%sC\xB0 %s%%", sTemp, sHum);
int humX = (128 - u8g.getStrWidth(dhtBuffer)) / 4;
u8g.drawStr(20, 60, dhtBuffer);
} while ( u8g.nextPage() );
}
questo è come apparirebbe con questo codice:
invece con quello che avevo fatto io:
void DisplayInfo(){
DateTime now = rtc.now();
sensors_event_t event;
delay(1000);
u8g.firstPage();
do {
u8g.setFont(u8g_font_profont29);
char timeBuffer[16];
snprintf(timeBuffer, sizeof(timeBuffer), "%02d:%02d", now.hour(), now.minute());
int timeX = (128 - u8g.getStrWidth(timeBuffer)) / 2;
u8g.drawStr(timeX, 30, timeBuffer);
u8g.setFont(u8g_font_profont15);
snprintf(timeBuffer, sizeof(timeBuffer), "%02d-%02d-%04d", now.day(), now.month(), now.year());
int timeBufferX = (128 - u8g.getStrWidth(timeBuffer)) / 2;
u8g.drawStr(29, 46, timeBuffer);
u8g.setFont(u8g_font_profont12);
dht.temperature().getEvent(&event);
char tempBuffer[10];
char sTemp[8];
dtostrf(event.temperature, 5, 1, sTemp);
snprintf(tempBuffer, sizeof(tempBuffer), "%sC\xB0%", sTemp);
int tempX = (128 - u8g.getStrWidth(tempBuffer)) / 4;
u8g.drawStr(24, 60, tempBuffer);
u8g.setFont(u8g_font_profont12);
dht.humidity().getEvent(&event);
char humBuffer[10];
char sHum[8];
dtostrf(event.relative_humidity, 5, 1, sHum);
snprintf(humBuffer, sizeof(humBuffer), "%s%%", sHum);
int humX = (128 - u8g.getStrWidth(humBuffer)) / 4;
u8g.drawStr(20, 60, humBuffer);
} while ( u8g.nextPage() );
}
appariva cosi:
quello che avevo detto nel messaggio prima era questo solo per confermare che il codice era finito e che funzionava scusi ancora per la incomprensione.