import onewire, ds18x20, time
from machine import Pin
TEMP_MAX = 8.0
TEMP_MIN = -30.0
ERR_LOW = -127.0
ERR_MAX = 85.0
pin = Pin(4)
pin_led = Pin(14, Pin.OUT)
ow = onewire.OneWire(pin)
ds = ds18x20.DS18X20(ow)
roms = ds.scan()
if roms is None or len(roms) == 0:
print("fehlerrr")
templist = []
for i in roms:
templist.append([])
Alarm = False
while True:
ds.convert_temp()
time.sleep_ms(750)
for i, rom in enumerate(roms):
temp = ds.read_temp(rom)
if temp <= ERR_LOW or temp >= ERR_MAX:
print("a")
Alarm = True
pin_led.value(1)
print("lek eier")
else:
print("b")
Alarm = False
pin_led.value(0)
templist[i].append(temp)
if len(templist[i]) > 5:
templist[i].pop(0)
avg = 0
for i in templist:
avg += sum(i) / len(i)
all_avg = (avg / (len(templist)))
print(all_avg)
if all_avg > TEMP_MAX:
pin_led.value(1)
elif all_avg < TEMP_MIN:
pin_led.value(1)
else :
pin_led.value(0)
time.sleep_ms(250)