from machine import Pin, Timer, SoftI2C
import onewire, ds18x20, time
from ssd1306 import SSD1306_I2C
i2c = SoftI2C (sda = Pin(12), scl = Pin(13))
oled = SSD1306_I2C(128, 64, i2c, addr = 0x3c)
#初始化DS18B20
ow = onewire.OneWire(Pin(15)) #构建单总线,Pin参数根据接线引脚修改
ds = ds18x20.DS18X20(ow) #传感器是DS18B20
def fun(tim):
oled.fill(0)
rom = ds.scan() #扫描单总线上的传感器地址,支持多个传感器同时连接
ds.convert_temp() # 温度转换
temp = ds.read_temp(rom[0]) #获取温度值,rom[0]为第1个DS18B20
print('%.2f'%(temp))
oled.text(str('%.2f'%(temp)) + 'C', 40,30)
oled.show()
tim = Timer(1)
tim.init(period = 1000, mode = Timer.PERIODIC, callback = fun)