from machine import Pin, SoftI2C, ADC
from time import sleep
import ssd1306
import dht
i2c = SoftI2C(sda=Pin(22), scl=Pin(23))
display_largura:int = 128
display_altura:int = 64
oled = ssd1306.SSD1306_I2C(display_largura, display_altura, i2c)
sensor = dht.DHT22(Pin(19))
ldr = ADC(Pin(33))
ldr.atten(ADC.ATTN_0DB)
def atualiza_display():
oled.fill(0)
try:
sensor.measure()
temperatura = sensor.temperature()
umidade = sensor.humidity()
except OSError as e:
temperatura = umidade = None
print('ERRO')
luminosidade = ldr.read() * (3.3 / 4095) * 100
if temperatura is not None and umidade is not None:
oled.text("temp:" + f"{temperatura:.1f}C", 2, 10)
oled.text("umid:" + f"{umidade:.1f}%", 2, 30)
else:
oled.text("Erro DHT", 2, 2)
oled.text("lumi:" + f"{luminosidade:.1f}", 2, 20)
oled.show()
while True:
atualiza_display()
sleep(2)