int ThermistorPin = 34; int Vo; float R1 = 20000; float logR2, R2, T; float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07; float maxTemp = 0; // Initialize to a very low value float minTemp = 1000; // Initialize to a very high value unsigned long startTime; const unsigned long duration = 24 * 60 * 60 * 1000; // 24 hours in milliseconds const unsigned long interval = 10 * 60 * 1000; // 10 minutes in milliseconds unsigned int readingsCount = 0; float temperatureSum = 0; void setup() { Serial.begin(9600); Serial.println("Starting Program"); startTime = millis(); } void loop() { if (millis() - startTime < duration) { Vo = analogRead(ThermistorPin); R2 = R1 * (1023.0 / (float)Vo - 1.0); R2 = R2 * -1; logR2 = log(R2); T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2)); T = T - 273.15; T = (T * 9.0) / 5.0 + 15; // Update maximum and minimum temperatures if (T > maxTemp) { maxTemp = T; } if (T < minTemp) { minTemp = T; } // Calculate average temperature over the interval readingsCount++; temperatureSum += T; Serial.print("Temperature: "); Serial.print(T); Serial.println(" F"); unsigned long currentTime = millis(); if (currentTime - startTime >= duration) { while (true) { // Program is halted } } // Check if the interval has elapsed if (currentTime - startTime >= interval) { float averageTemp = temperatureSum / readingsCount; Serial.println("Summary of the 10 minute time span"); Serial.print("Average Temperature: "); Serial.print(averageTemp); Serial.println(" F"); // Print minimum temperature Serial.print("Minimum Temperature: "); Serial.print(minTemp); Serial.println(" F"); //Print Maximum temperature Serial.print("Maximum Temperature: "); Serial.print(minTemp); Serial.println(" F"); // Reset interval variables readingsCount = 0; temperatureSum = 0; startTime = currentTime; } delay(1000); } }