from machine import Pin
import onewire, ds18x20
import time
# 1. Создаём объект 1-Wire на пине 4
ow = onewire.OneWire(Pin(4))
# 1. Создаём объект DS18B20
ds = ds18x20.DS18X20(ow)
# 1. Поиск всех датчиков на шине
roms = ds.scan()
# 2. Заданная температура + светодиод
TARGET = 28.0
led_green = Pin(12, Pin.OUT)
# 3. Больше светодиодов
led_yellow = Pin(13, Pin.OUT)
led_red = Pin(14, Pin.OUT)
while True:
try:
# Запускаем измерение температуры
ds.convert_temp()
time.sleep_ms(750) # DS18B20 нужно до 750 мс для измерения
# Читаем температуру с датчика
temp = ds.read_temp(roms[0])
print(round (temp, 1), '°C')
# 2. Включаем светодиод на заданной температуре
if temp > TARGET-1 and temp < TARGET + 1:
led_green.on()
led_yellow.off()
led_red.off()
# 3. Больше светодиодов
if temp < TARGET-1:
led_yellow.on()
led_green.off()
led_red.off()
if temp > TARGET+1:
led_yellow.off()
led_green.off()
led_red.on()
time.sleep(1)
except KeyboardInterrupt:
print("\nПрограмма остановлена.")
break