from machine import Pin, I2C
import ssd1306
import machine
import utime
import onewire, ds18x20
#
# Function to display text at specified line and column
#
def display_text(text, line, column):
oled.text(text, 9*column, 8*line)
i2c = machine.SoftI2C(scl=Pin(9),sda=Pin(8),freq=100000)
oled=ssd1306.SSD1306_I2C(128,32,i2c) # Rows and columns
Temp = machine.Pin(15) # DS18B20 at GP15
ds = ds18x20.DS18X20(onewire.OneWire(Temp))
#
# Read the temperature and display on OLED
#
while True:
roms=ds.scan() # Scan chip
ds.convert_temp() # Convert temperature
utime.sleep_ms(750) # Wait for conversion
for rom in roms:
temperature = ds.read_temp(rom) # Read temperature
oled.fill(0) # Clear display
display_text("Temp(C)= ", 3, 1) # Display "Count:"
display_text(str(temperature)[:5], 3, 9) # Display count
oled.show()
utime.sleep(1)