from machine import I2C, Pin
from time import sleep
from pico_i2c_lcd import I2cLcd
from onewire import OneWire
from ds18x20 import DS18X20
dsPin = machine.Pin(8)
ow = OneWire(dsPin)
sensor = DS18X20(ow)
def initialize_i2c_lcd(sda_pin, scl_pin, i2c_freq):
i2c_bus = I2C(0, sda=Pin(sda_pin), scl=Pin(scl_pin), freq=i2c_freq)
i2c_address = i2c_bus.scan()[0]
return I2cLcd(i2c_bus, i2c_address, 2, 16), i2c_address
def main():
sleep(1)
lcd, i2c_address = initialize_i2c_lcd(sda_pin=0, scl_pin=1, i2c_freq=400000) # Inicia o display
while True:
scan = sensor.scan()[0]
if scan:
sensor.convert_temp() # Temperatura em Celsius
sleep(1)
temp = sensor.read_temp(scan)
lcd.clear()
lcd.putstr("Temperatura:\r\n "+ str(temp) +" C") # Exibe temperatura no display
sleep(1)
if __name__ == '__main__':
main()