import machine import time
import dht
from machine import Pin, ADC, PWM
# Inisialisasi pin
dht_sensor = dht.DHT22(Pin(15)) # DHT22 di pin 15
mq_sensor = ADC(Pin(34)) # MQ sensor di pin 34
(ADC) mq_sensor.atten(ADC.ATTN_11DB) # Rentang penuh 0-3.3V relay = Pin(26, Pin.OUT) # Relay di pin 26
servo = PWM(Pin(13), freq=50) # Servo di pin 13
# Fungsi mengatur posisi servo (0-180 derajat) def set_servo_angle(angle):
duty = int((angle / 180 * 2 + 0.5) / 20 * 1023)
servo.duty(duty)
# Loop utama while True: try:
# Baca suhu dan kelembapan
dht_sensor.measure() temp = dht_sensor.temperature()
hum = dht_sensor.humidity()
# Baca nilai gas dari sensor MQ
gas_level = mq_sensor.read()
print("Suhu:", temp, "°C | Kelembapan:", hum, "% |
Gas:", gas_level)
# Logika kontrol
if gas_level > 2000 or temp > 30:
print("Kualitas udara buruk atau suhu tinggi, m
embuka jendela...")
set_servo_angle(90) # Buka jendela
relay.value(1) # Aktifkan relay
else:
print("Kondisi normal, menutup jendela...")
set_servo_angle(0) # Tutup jendela
relay.value(0) # Matikan relay
time.sleep(2)
except OSError as e: print("Gagal membaca sensor:", e)
~