   Console.print("\nPlantStation is warming up.\nYun Console is warming up.\nKeen is warming up.\n\n");
 
   while (!Serial);
+  delay(5000);
 }
 
 void loop() {
+  unsigned long currentMillis = millis();
+  
   readAirMeasurements();
   readSoilMeasurements();
   readLightResistor();
   readMoistureSensor();
   outputEvent();
-  sendToKeen();
-
-  // We run this once a minute, approximately
-  delay(60000);
+  
+  // these happen every minute (or so)
+  if (currentMillis - previousMillis > minuteInterval) {
+    previousMillis = currentMillis;
+    
+    sendToKeen();  
+  }
 }
 
 void waterPlants() {

  my_output += ";LightIsOn:";
  my_output += lightIsOn;
  my_output += ";Location:";
  my_output += location;
  my_output += ";WaterPumptIsOn:";
  my_output += waterPumpIsOn;

  my_output += lightResistor;
  my_output += ";ProbeTemperatureCelcius:";
  my_output += sm.tempSoilC;
  
  my_output += ";ProbeTemperatureFahrenheit:";
  my_output += sm.tempSoilF;
  my_output += ";Moisture:";
