   byte addr[8];
   float _celsius = *celsius;
   float _fahrenheit = *fahrenheit;
-
-  while ( !ds.search(addr)) {
-    Serial.println("No more addresses.");
+  Serial.println("getTemperature()...");
+
+  while(!ds.search(addr)) {
+    Serial.println("no more addresses; resetting...");
     Serial.println();
     ds.reset_search();
     delay(250);
-    // return;
-  }
-
-  Serial.print("ROM =");
-  for( i = 0; i < 8; i++) {
-    Serial.write(' ');
-    Serial.print(addr[i], HEX);
-  }
-
-  if (OneWire::crc8(addr, 7) != addr[7]) {
+  }
+
+  if(OneWire::crc8(addr, 7) != addr[7]) {
       Serial.println("CRC is not valid!");
       return;
   }
   Serial.println();
 
   // the first ROM byte indicates which chip
-  switch (addr[0]) {
+  switch(addr[0]) {
     case 0x10:
-      Serial.println("  Chip = DS18S20");  // or old DS1820
+      Serial.println("  chip = DS18S20");  // or old DS1820
       type_s = 1;
       break;
     case 0x28:
-      Serial.println("  Chip = DS18B20");
+      Serial.println("  chip = DS18B20");
       type_s = 0;
       break;
     case 0x22:
-      Serial.println("  Chip = DS1822");
+      Serial.println("  chip = DS1822");
       type_s = 0;
       break;
     default:
-      Serial.println("Device is not a DS18x20 family device.");
+      Serial.println("device is not a DS18x20 family device.");
       return;
   }
 
   ds.reset();
   ds.select(addr);
-  ds.write(0x44, 1);        // start conversion, with parasite power on at the end
-
-  delay(1000);     // maybe 750ms is enough, maybe not
-  // we might do a ds.depower() here, but the reset will take care of it.
+  ds.write(0x44, 1);    // start conversion, with parasite power on at the end
+
+  delay(1000);          // maybe 750ms is enough, maybe not
+  // we might do a ds.depower() here, but the reset will take care of it
 
   present = ds.reset();
   ds.select(addr);
-  ds.write(0xBE);         // Read Scratchpad
+  ds.write(0xBE);       // read scratchpad
 
   Serial.print("  Data = ");
   Serial.print(present, HEX);
   Serial.print(" ");
-  for ( i = 0; i < 9; i++) {           // we need 9 bytes
+  for(i = 0; i < 9; i++) { // we need 9 bytes
     data[i] = ds.read();
     Serial.print(data[i], HEX);
     Serial.print(" ");

void loop() {
  dnsServer.processNextRequest();
  server.handleClient();
  delay(5000);

  int m = monitorCursor;
  updateSensorData(monitorData);
  Serial.print("monitorData[monitorCursor].celsius:" );
  Serial.println(monitorData[m].celsius);
  delay(5000);
}

/////////////////////////////////////////////////////////////////////////////

  Serial.print(OneWire::crc8(data, 8), HEX);
  Serial.println();

  // 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
  }
  _celsius = (float) raw / 16.0;
  _fahrenheit = _celsius * 1.8 + 32.0;
  Serial.print("  temperature = ");
  Serial.print(_celsius);
  Serial.print(" celsius, ");
  Serial.print(_fahrenheit);
  Serial.println(" fahrenheit");

  *celsius = _celsius;
  *fahrenheit = _fahrenheit;
  return;
}
