#include Generic_LM75 LM75; float temperatureSum = 0.0; int temperatureCount = 0; float highestTemperature = -1000.0; // Initialize with a low value float lowestTemperature = 1000.0; // Initialize with a high value unsigned long intervalStartTime = 0; const unsigned long intervalDuration = 600000; // 10 minutes in milliseconds void setup() { Serial.begin(9600); Wire.begin(); delay(100); intervalStartTime = millis(); // Set the initial start time } void loop() { float temperature = LM75.readTemperatureC(); Serial.print("Temperature = "); Serial.print(temperature); Serial.println(" C"); temperatureSum += temperature; temperatureCount++; if (temperature > highestTemperature) { highestTemperature = temperature; } if (temperature < lowestTemperature) { lowestTemperature = temperature; } unsigned long elapsedTime = millis() - intervalStartTime; if (elapsedTime >= intervalDuration) { float averageTemperature = temperatureSum / temperatureCount; Serial.print("Average Temperature (10-minute interval) = "); Serial.print(averageTemperature); Serial.println(" C"); Serial.print("Highest Temperature (10-minute interval) = "); Serial.print(highestTemperature); Serial.println(" C"); Serial.print("Lowest Temperature (10-minute interval) = "); Serial.print(lowestTemperature); Serial.println(" C"); // Reset variables for the next interval temperatureSum = 0.0; temperatureCount = 0; highestTemperature = -1000.0; lowestTemperature = 1000.0; intervalStartTime = millis(); // Update the start time for the next interval } if (temperatureCount > 0) { float overallAverageTemperature = temperatureSum / temperatureCount; Serial.print("Overall Average Temperature = "); Serial.print(overallAverageTemperature); Serial.println(" C"); } delay(300); }