 void setup() {
   Serial.begin(115200);
   // Serial.setDebugOutput(true);
-
-  monitorCursor = 0;
 
   WiFi.mode(WIFI_AP_STA);
   WiFi.softAPConfig(apIP, apIP, netMsk);

  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;
}

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

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

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