from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import sys
import time
import dht
dht22 = dht.DHT22(Pin(9))
led1 = Pin(3,Pin.OUT)
led2 = Pin(1,Pin.OUT)
pix_res_x = 128
pix_res_y = 64
def init_i2c(scl_pin, sda_pin):
# Initialize I2C device
i2c_dev = I2C(1, scl=Pin(scl_pin), sda=Pin(sda_pin), freq=200000)
i2c_addr = [hex(ii) for ii in i2c_dev.scan()]
if not i2c_addr:
print('No I2C Display Found')
sys.exit()
else:
print("I2C Address : {}".format(i2c_addr[0]))
print("I2C Configuration: {}".format(i2c_dev))
return i2c_dev
def display_text(oled):
# Display text on the OLED
oled.fill(0)
dht22.measure()
temperature_C = dht22.temperature()
if temperature_C > 40:
led1.value(1)
time.sleep(1)
led1.value(0)
humidity = dht22.humidity()
if humidity > 50:
led2.value(1)
time.sleep(1)
led2.value(0)
temperature_F=32+(1.8*temperature_C)
oled.text('temp in C ',0,10)
oled.text(str(temperature_C),5,20)
oled.text('Humidity ',0,30)
oled.text(str(humidity),5,40)
oled.show()
time.sleep(2)
def main():
i2c_dev = init_i2c(scl_pin=27, sda_pin=26)
oled = SSD1306_I2C(pix_res_x, pix_res_y, i2c_dev)
display_text(oled)
if __name__ == '__main__':
main()