from machine import Pin ,ADC
import math ,onewire, ds18x20 , utime , time
BETA = 3950
R1 = 10000
V_REF = 3.3
adc = ADC(Pin(28))
ds_pin = Pin(7)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
while True:
analog_value = adc.read_u16()
voltage = (analog_value / 65535) * V_REF
resistance = R1 / ((V_REF / voltage) - 1)
kelvin = 1 / (1 / 298.15 + 1 / BETA * math.log(resistance / 10000))
celsius = kelvin - 273.15
ds_sensor.convert_temp()
time.sleep_ms(200)
for rom in roms:
Temp=ds_sensor.read_temp(rom);
print("Reading from D18B20 Temperature: {:.2f} ℃".format(Temp))
print("Reading from NTC Temperature: {:.2f} ℃".format(celsius))
Average_Temp = (Temp+celsius)/2
print("Average Temperature: {:.2f} ℃".format(Average_Temp))
utime.sleep(1)