print("This device will detect motion")
print("15/01/2024")
print("created by ZUNIE")

#import library
from machine import Pin, ADC, SoftI2C, PWM
from utime import sleep
import OLEDLIBRARY

#declare pin 
AO = ADC(Pin(18, Pin.IN))
pir = Pin(12, Pin.IN)
lampu_kuning = Pin(4, Pin.OUT)
lampu_merah = Pin(5, Pin.OUT)
BUZZER_pin = Pin(15, Pin.OUT)
Pin_scl_sda = SoftI2C(scl=Pin(22), sda=Pin(21))
skrin = OLEDLIBRARY.SSD1306_I2C(width=128, height=64, i2c=Pin_scl_sda)

#main program
while True :
    analog_value = AO.read()           #kalau digital : .value
    #print("The analog value recorded is", analog_value)
    voltage_of_light_intensity = analog_value / 4096. * 5
    print('The voltage recorded based on the light intensity is', voltage_of_light_intensity, 'V')
    print("\n")
    motion = pir.value()
    if voltage_of_light_intensity <= 2.5 and motion == 0:  #cerah + takde orang
        lampu_kuning.off()
        lampu_merah.off()
        skrin.fill(1)  #0 - for BLACK,1 for WHITE
        skrin.text("MATAHARI MASIH ADA",0, 10,0)
        skrin.text("TAKDE ORANG",0 , 30,0)
        skrin.show() #a must !!
        print("MASIH CERAH DAN TIADA ORANG")
    elif voltage_of_light_intensity <= 2.5 and motion == 1:  #cerah + ada orang
        lampu_merah.off()
        lampu_kuning.off()
        skrin.fill(1)  #0 - for BLACK,1 for WHITE
        skrin.text("MATAHARI MASIH ADA",0, 10,0)
        skrin.text("ADA ORANG",0 , 30,0)
        skrin.show() #a must !!
        print("MASIH CERAH DAN ADA ORANG")

    elif 2.5 < voltage_of_light_intensity < 4 and motion == 0 : #gelap + takde orang
        skrin.fill(1)  #0 - for BLACK,1 for WHITE
        skrin.text("SUDAH MALAM BOSS",0, 10,0)
        skrin.text("TAKDE ORANG",0 , 30,0)
        skrin.show() #a must !!
        print("GELAP DAN TIADA ORANG")
        for a in range (5):
            lampu_merah.on()
            sleep(0.02)
            tone_buzzer = PWM(BUZZER_pin, freq = 1500 , duty = 50)
            sleep(0.02)
            lampu_merah.off()
            sleep(0.02)
            tone_buzzer = PWM(BUZZER_pin, freq = 1500 , duty = 0)
            sleep(0.02)
            lampu_merah.on()
            lampu_kuning.off()
    else  :                          #gelap + ada orang
        skrin.fill(1)  #0 - for BLACK,1 for WHITE
        skrin.text("SUDAH MALAM BOSS",0, 10,0)
        skrin.text("ADA ORANG",0 , 30,0)
        skrin.show() #a must !!
        print("GELAP DAN ADA ORANG")
        for a in range (5):
            lampu_merah.off()
            lampu_kuning.on()
            sleep(0.02)
            tone_buzzer = PWM(BUZZER_pin, freq = 1500 , duty = 50)
            sleep(0.02)
            lampu_kuning.off()
            sleep(0.02)
            tone_buzzer = PWM(BUZZER_pin, freq = 1500 , duty = 50)
            sleep(0.02)
            lampu_kuning.on()
    sleep(8)