from picozero import Servo, Speaker
import machine
import utime
# Tentukan pin komponen
ldr_pin = machine.ADC(26)
switch = machine.Pin(6, machine.Pin.IN)
buzzer = Speaker(13)
servo = Servo(19)
def hujan():
return switch.value() == 1
def malam(percentage):
return percentage < 20
def siang(percentage):
return percentage > 21
while True:
ldr_value = ldr_pin.read_u16()
ldr_min = 512
ldr_max = 65008
# untuk mencari persentase
percentage = ((ldr_value - ldr_max) / (ldr_min - ldr_max)) * 100
if percentage <= 20 or hujan(): # Switch ditekan (nilai 1)
servo.max() # Gerakkan servo ke posisi 180 derajat
buzzer.on() # Buzzer menyala
utime.sleep(5)
buzzer.off()
else:
buzzer.off()
servo.min() # Kembalikan servo ke posisi 0 derajat
lux = "malam" if malam(percentage) else "siang"
cuaca = "hujan" if hujan() else "tidak hujan"
print("cuaca :", cuaca)
print("kondisi :", lux)
utime.sleep(3)