int ThermistorPin = 35; int Vo; float R1 = 10000; float logR2, R2, T, Tc, Tf; float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07; float avg = 0.0; float average = 0.0; float temp_array[145]; int interval = 0; unsigned long start_time = 0; void setup() { Serial.begin(115200); } void loop() { // 24 Hour Loop for (int i = 1; i <= 86400; ++i) { // Convert to Fahrenheit Vo = analogRead(ThermistorPin); Serial.print (" Vo ="); Serial.print(Vo); R2 = R1 * (4096.0 / (float)Vo - 1.0); Serial.print("\t R2 ="); Serial.print(R2); logR2 = log(R2); Serial.print("\t logR2 ="); Serial.print(logR2); T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2)); Serial.print("\t T ="); Serial.print(T); Tc = T - 273.15; Tf = (Tc * 9.0)/ 5.0 + 32.0; Serial.print("\t Temperature(F): "); Serial.print(Tf); Serial.println(" F"); // Interval Addition avg += Tf; // Average Calculation if (i % 600 == 0) { average = avg / 600; avg = 0.0; temp_array[interval] = average; ++interval; } // Reading if (Serial.available() > 0){ char message = Serial.read(); // Average output if (message == '1'){ for (int j = 0; j < 145; ++j){ Serial.print("Average of interval "); Serial.print(j); Serial.print(": "); Serial.print(temp_array[j]); Serial.println(" F"); } } // Runtime output else if (message == '2'){ unsigned long runtime = millis() - start_time; Serial.print("Total runtime: "); Serial.print(runtime); Serial.println(" ms"); } } delay(1000); } // Record start time after initial delay if (start_time == 0) { start_time = millis(); } }