from machine import ADC
import time
import math
adc = ADC(26)
VCC = 3.3
R_REF = 10000
BETA = 3950
T0 = 298.15
def read_ntc_temperature():
adc_value = adc.read_u16()
voltage = adc_value*(VCC/65535)
if voltage == 0:
return None
resistance_ntc = R_REF*(VCC/voltage-1)
if resistance_ntc<=0:
return None
temp_kelvin = 1/(1/T0+math.log(resistance_ntc/R_REF)/BETA)
temp_celsius=temp_kelvin-273.15
return temp_celsius
while True:
temperature=read_ntc_temperature()
if temperature is not None:
print("Temperature:{:.2f} °C".format(temperature))
else:
print("Sensor error or invalid reading.")
time.sleep(1)