Using a RTC to take readings

// something like below

if (millis() % 6000 == 0)
{
Serial.print (weather data)
}

Caution though, millis() might jump a few units while you are processing. In other words, you might miss exactly the 6000 point.

Better to have a "lastDisplayTime" variable, and compare until it has passed the required time. eg.

if (millis() - lastDisplayTime >= 300000)   // 5 minutes up?
  {
  // display stuff
 
  lastDisplayTime = millis ();  // when we updated
  }