   phant.add("temp", temperature, 2);
   phant.add("pressure", pressure, 2);
   phant.add("humidity", humidity, 2);
+  phant.add("soil1", soil1);
 
   return phant.particlePost();
 }
 
-int readSensorData() {
+
+byte readSensorData() {
+  byte status = readBMESensor();
+
+  soil1 = readSoilSensor(soilSensor1);
+
+  // todo define thresholds for dry, wet, max increase/decrease
+  // todo integrate the soil sensor value into status
+  return status;
+}
+
+// read BME280 sensor data
+byte readBMESensor() {
   double currentTemperature = 0;
   digitalWrite(led, HIGH);
-
   currentTemperature = bme.readTemperature();
   pressure = bme.readPressure() / 100.0F;
   altitude = bme.readAltitude(SEALEVELPRESSURE_HPA);
   humidity = bme.readHumidity();
-  delay(100);
+  delay(200);
   digitalWrite(led, LOW);
 
+  // calc temp diff for changes at .x level
+  int tempDiff = (currentTemperature - temperature)*10;
+  temperature = currentTemperature;
+
+  if (tempDiff > 0) {
+    return 1; // indicate temp increase above threshold
+  } else if (tempDiff < 0){
+    return 2; // indicate temp decrease above threshold
+  } else {
+    return 0; // indicate normal reading
+  }
+}
+
+// read soil sensor data
+int readSoilSensor(int soilSensor) {
+    unsigned int val = 0;
+    digitalWrite(led, HIGH);
+    digitalWrite(soilPower, HIGH); //turn sensor power on
+    delay(10);
+    val = analogRead(soilSensor);
+    digitalWrite(soilPower, LOW); //turn sensor power off
+    delay(190);
+    digitalWrite(led, LOW);
+    return val;
+}
+
+void dumpSerial() {
   Serial.print("Temperature = ");
-  Serial.print(currentTemperature);
+  Serial.print(temperature);
   Serial.println(" *C");
 
   Serial.print("Pressure = ");

    if (lastMeasurement > MEASUREMENT_RATE) {
      // read sensor data
      sensorStatus = readSensorData();
      if (sensorStatus > 0) {
          lastMeasurement = 0;
          postToParticle(sensorStatus); // always publish event
      }
    }

    if (lastPost > POST_RATE || sensorStatus == 2) {
      while (postToPhant(sensorStatus) <= 0) { // publish to phant
        Serial.println("Phant post failed. Trying again.");
				// Delay 1s, so we don't flood the server. Little delay's allow the Photon time

void setup()
{
  pinMode(led, OUTPUT);
  pinMode(soilSensor1,INPUT);
  pinMode(soilPower, OUTPUT);
  digitalWrite(soilPower, LOW);

  Serial.begin(9600);

  if (!bme.begin()) {
