from machine import Pin, I2C
from time import sleep
import dht
from ssd1306 import SSD1306_I2C
# Inisialisasi pin untuk pushbutton, LED, dan sensor DHT22
button = Pin(14, Pin.IN) # Pin GPIO 14 untuk pushbutton
led = Pin(2, Pin.OUT) # Pin GPIO 2 untuk LED
# Inisialisasi sensor DHT22
dht_sensor = dht.DHT22(Pin(13))
# Inisialisasi pin SDA dan SCL untuk OLED 1306
i2c = I2C(sda=Pin(21), scl=Pin(22)) # Gunakan GPIO 21 untuk SDA dan GPIO 22 untuk SCL
oled = SSD1306_I2C(128, 64, i2c) # Layar OLED dengan resolusi 128x64
# Fungsi untuk membaca data dari sensor DHT22
def read_dht():
dht_sensor.measure()
temp_c = dht_sensor.temperature()
humidity = dht_sensor.humidity()
return temp_c, humidity
# Fungsi untuk menampilkan data suhu dan kelembaban pada layar OLED 1306
def display_data(temp_c, humidity):
oled.fill(0) # Bersihkan layar
oled.text("Temperature:", 0, 0)
oled.text("{:.1f} C".format(temp_c), 0, 16)
oled.text("Humidity:", 0, 32)
oled.text("{:.1f} %".format(humidity), 0, 48)
oled.show() # Tampilkan data pada layar
# Loop utama
while True:
# Baca data dari sensor DHT22
temp_c, humidity = read_dht()
# Tampilkan data suhu dan kelembaban pada layar OLED
display_data(temp_c, humidity)
# Cek status pushbutton
if button.value() == 1:
led.on() # Nyalakan LED jika pushbutton ditekan
else:
led.off() # Matikan LED jika pushbutton tidak ditekan
# Delay untuk mengurangi frekuensi polling
sleep(0.1)
Loading
ssd1306
ssd1306