   _controller.run();
 }
 
-SensorThread tempSensor = SensorThread();
+SensorThread _tempSensor = SensorThread();
 
 void setup(void) {
+  delay(1000);
   Serial.begin(9600);
+  delay(1000);
+  _sensors.begin();
   pinMode(RELAY_PIN, OUTPUT);
-  tempSensor.pin = SENSOR_PIN;
-  tempSensor.setInterval(10000);
-  _controller.add(&tempSensor);
+  _tempSensor.pin = SENSOR_PIN;
+  _tempSensor.setInterval(10000);
+  _controller.add(&_tempSensor);
   Timer1.initialize(10000000);
   Timer1.attachInterrupt(timerCallback);
   Timer1.start();

  _pid.SetMode(AUTOMATIC); //turn the PID on
}

int getChipType(int addr) {
  switch (addr) {
    case 0x10:
      Log.debug("Chip = DS18S20");  // or old DS1820
      return 1;
      break;
    case 0x28:
      Log.debug("Chip = DS18B20");
      return 0;
      break;
    case 0x22:
      Log.debug("Chip = DS1822");
      return 0;
      break;
    default:
      Log.debug("Device is not a DS18x20 family device.");
      return -1;
  }
}

float convertTemp(byte data[12], int type_s) {
  // Convert the data to actual temperature
  // because the result is a 16 bit signed integer, it should
  // be stored to an "int16_t" type, which is always 16 bits
  // even when compiled on a 32 bit processor.
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  }
  else {
    byte cfg = (data[4] & 0x60);
    // at lower res, the low bits are undefined, so let's zero them
    if (cfg == 0x00) {
      raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    }
    else if (cfg == 0x20) {
      raw = raw & ~3; // 10 bit res, 187.5 ms
    }
    else if (cfg == 0x40) {
      raw = raw & ~1; // 11 bit res, 375 ms}
      //// default is 12 bit resolution, 750 ms conversion time
    }
  }
  return (float) raw / 16.0;
}

void loop(void) {
  float tempOrErrow = tempSensor.value;
  if (tempOrErrow <= ERROR_RESPONSE) {
    Log.errorF("Code: ", tempOrErrow);
    return;

#include <Thread.h>
#include <ThreadController.h>
#include <TimerOne.h>
#include <DallasTemperature.h>

#define RELAY_PIN 8   // Connect Digital Pin 8 on Arduino to ? on Relay Module
#define SENSOR_PIN 10
