import time
from machine import Pin, I2C
import ssd1306
from time import sleep
import dht
time.sleep(0.1) # Wait for USB to become ready
def init_i2c(scl_pin, sda_pin): # From SSD1306 example
# Initialize I2C device
i2c_dev = I2C(0, 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
print("Hello, Pi Pico!")
sensor = dht.DHT22(Pin(28)) # connected to GP27
button = Pin(27, Pin.IN, Pin.PULL_UP) # Change to correct pin (gpXX)
i2c_dev = init_i2c(5,4) # Change to correct pins (scl,sda)
oled = ssd1306.SSD1306_I2C(128, 64, i2c_dev)
oled.text("Hello", 5, 5)
oled.text("world", 5, 15)
oled.show()
while True:
# sensor.measure() # Update sensor
# print(str(sensor.humidity()) + "%")
# print(str(sensor.temperature()) + "°C")
sleep(0.1) # Speed up simulation
oled.fill(0)
if button.value() == 1:
oled.text("Press Button", 5, 5)
oled.text("For info!", 5, 15)
if button.value() == 0:
sensor.measure()
oled.text("Hum: " + str(sensor.humidity()) + "%", 5, 5)
oled.text("Temp: " + str(sensor.temperature()) + "C", 5, 15)
oled.text("*", 120, 50)
sleep(0.1)
oled.show()
time.sleep(0.1)
Loading
ssd1306
ssd1306