# =================================================================
# 5.15 Project 10: Internal and external temperature – using LCD
# Matheus Reghine Manfio
# =================================================================
import machine, onewire, ds18x20, time
from machine import I2C, Pin
from time import sleep
import utime
# esse módulo precisa ser salvo no PIco para que o LCD I2C possa ser usado
from pico_i2c_lcd import I2cLcd
# criando um objeto I2C e especificanto os pinos SDA e SCL na placa GP0 e GP1 pins)
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
Temp = machine.Pin(26, machine.Pin.IN)
# endereço I2C
I2C_ADDR = i2c.scan()[0]
# criando objeto LCD usando o endereço I2C e especificando a quantidade de linhas e colunas
# LCD número de linhas = 2, número de colunas = 16
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)
ds_pin = machine.Pin(26)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
ds_sensor2 = ds18x20.DS18X20(onewire.OneWire(machine.Pin(27)))
roms2 = ds_sensor2.scan()
print('Found DS: ', roms2)
while True:
# "putstr" permite mostrar o texto no LCD
ds_sensor.convert_temp()
ds_sensor2.convert_temp()
time.sleep_ms(200)
for rom in roms:
print(ds_sensor.read_temp(rom))
TempEx=ds_sensor.read_temp(rom);
lcd.putstr("Temperatura Externa:\n")
lcd.putstr(str(TempEx)+" C")
sleep(1) # "Hello world!" text would be displayed for 5 secs
lcd.clear()
for rom in roms2:
print(ds_sensor2.read_temp(rom))
TempIn=ds_sensor2.read_temp(rom);
lcd.putstr("Temperatura Interna:\n")
lcd.putstr(str(TempIn)+" C")
sleep(1) # "Hello world!" text would be displayed for 5 secs
lcd.clear()
sensor_temp = machine.ADC(4)