Voltar a tela inicial LCD + Menu

Boas Amigo @bubulindo consegui fazer a tela do programa e com os menus e as telas, retirei todos os while(1), substitui por switch case,muito melhor!

Para voltar a tela do menu principal ( nao sei se fiz certo) ao apertar o "esc" eu gravo 1 na flag menu e consequentemente ela volta a primeira tela, achei o modo mais facil de fazer isso

Mas como nem tudo são rosas, eu cai em um "probleminha" da função milis():

void leitura_temp()
   {
   if ( (millis() - delayIntervalo) > intervalo ) {     //LEITURA DOS DADOS ==INTERVALO = A 2000
        unsigned long start = micros();
        int chk = DHT.read11(DHT11_PIN);       
        unsigned long stop = micros();
        delayIntervalo = millis();
    };
}

Ao final de 48~49 dias a contagem do millis volta a zero(0) e esta parte do meu programa vai travar pois nao fiz nada para "dar a volta" (e não faço ideia como fazer)

Como estou usando um RTC externo como poderia usar para substituir o millis? Tenho mas 4 contagens de tempo no codigo usando Millis() uma de 24hras para a leitura de umidade do solo.

Poderia me dar mais uma força ?