import math
import time
from machine import Pin, I2C
from dht import DHT22
import ssd1306
# Screen
i2c = I2C(0, scl=Pin(22), sda=Pin(23))
oled_width = 128
oled_height = 64
screen = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
# DHT22
sensor = DHT22(Pin(13))
# Relays
r_u = Pin(2, Pin.OUT)
r_f = Pin(15, Pin.OUT)
while True:
screen.fill(0)
# Probe temperature data
sensor.measure()
t = round((sensor.temperature() * (9/5)) + 32, 1)
t = math.floor(t)
h = sensor.humidity()
# Humidity control
if (h < 20):
r_u.value(1)
else:
r_u.value(0)
# Temperature control
if (t > 35):
r_f.value(1)
else:
r_f.value(0)
# Update screen with data
t_string = "Temp: " + str(t) + " F"
h_string = "Humidity: " + str(h) + "%"
screen.text(t_string, 1, 1)
screen.text(h_string, 1, 27)
# Show screen
screen.show()
time.sleep(.1)