from machine import Pin, I2C
import ssd1306
import dht
sensor = dht.DHT22(Pin(15))
i2c = I2C(scl=Pin(22), sda=Pin(21)) # SCL and SDA
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # OLED config (128x64)
led_lst = [
Pin(13,Pin.OUT),
Pin(12,Pin.OUT),
Pin(14,Pin.OUT),
Pin(27,Pin.OUT),
]
def handle_led_array(humidity):
"""
Set led array according to humidity value
"""
value = int((humidity * (len(led_lst))) / 100)
for i, led in enumerate(led_lst):
led.value(int(i + 1 <= value))
return
while True:
sensor.measure()
humidity = sensor.humidity()
tmp = sensor.temperature()
handle_led_array(humidity)
oled.fill(0)
# Set humidity and temperature in OLED
oled.text("Temperature:", 0, 0)
oled.text(f"{tmp} C", 0, 16)
oled.text("Humidity:", 0, 32)
oled.text(f"{humidity} %", 0, 48)
oled.show()Loading
ssd1306
ssd1306