Tens um problema, nunca defines as variáveis de hora e minutos...
Isto:
int hora = rtc.getTime().hour;
int minuto = rtc.getTime().min;
float temperatura = rtc.getTemp();
int dia = rtc.getTime().date;
int mes = rtc.getTime().mon;
int ano = rtc.getTime().year;
Está no sítio errado.
Devias colocar isto aqui:
void loop() {
int hora = rtc.getTime().hour;
int minuto = rtc.getTime().min;
float temperatura = rtc.getTemp();
int dia = rtc.getTime().date;
int mes = rtc.getTime().mon;
int ano = rtc.getTime().year;