from machine import Pin, I2C, PWM, ADC
from time import sleep
import ssd1306

#datos del display
i2c=I2C(0, scl=Pin(15), sda=Pin(2))
#tamaño que tiene la pantalla OLED
ancho=128
alto=64
display=ssd1306.SSD1306_I2C(ancho, alto, i2c)

# estado predefinido de la alarma en la pantalla OLED
display.text('Alarma: OFF', 0,0)
display.show()

#recibir datos del sensor de movimiento 
PIR = Pin(12, Pin.IN, Pin.PULL_UP)

#datos del buzzer
buzzer = PWM(Pin(13,Pin.OUT))
#buzzer apagado
buzzer.init(freq=1047, duty=0)

while True:
  Valor_PIR = PIR.value()
  #si se descomenta la line 26 (la función print) se mostrará en la consola
  #el valor lógico que se obtiene de lsensor de movimiento el cual, al ser
  #lógico, solo puede ser 0(si no hay movimiento) y 1(si hay movimiento)
  print(PIR.value())
  if Valor_PIR == 1:
    display.fill(0)   
    display.show()
    display.text('Alarma: ON', 0,0)
    display.show()
    
    #activar alarma
    buzzer.init(freq=1047, duty=512)
    #Cuanto timepo se activará la alarma
    sleep(5)
    #apagar alarma
    buzzer.init(freq=1047, duty=0)

    display.fill(0)   
    display.show()
    display.text('Alarma: OFF', 0,0)
    display.show()