I think I’ve found something worth looking at: It’s the way the two DS18B20 are set (resolution) and how they are interrogated (blocking).
According to the datasheet (https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf table on page 3) it takes 750ms (!) (at 12 bit resolution) to get the temperature.
take_temp_readings() is called once per second (not sure if that is practically necessary). This is close to the time it takes to read the temperature from the sensors.
What I would change in the first place:
void take_temp_readings()
{
[...]
//Serial.println();
tanktemp = DS18B20.getTempCByIndex(0);
sumptemp = DS18B20.getTempCByIndex(1);
DS18B20.requestTemperatures();
[...]
}
void setup()
{
[...]
DS18B20.begin();
DS18B20.setResolution(Probe01,10);
DS18B20.setResolution(Probe02,10);
DS18B20.setWaitForConversion(false); // make reading NON blocking
DS18B20.requestTemperatures(); // start conversion for first reading
[...]
timer.setInterval(2000L, take_temp_readings); // Setup a function to be called every 2 seconds
[...]
}//--(end setup )---