from machine import Pin, PWM, I2C
from time import sleep, ticks_ms
from ssd1306 import SSD1306_I2C
sda = Pin(21)
scl = Pin(22)
i2c = I2C(0, sda=sda, scl=scl, freq=400000)
oled = SSD1306_I2C(128, 64, i2c)
oled.fill(0)
oled.text("ALARM OFF", 10, 10)
oled.hline(15,32, 65,1)
oled.show()
led_red = Pin (13, Pin.OUT)
led_blue = Pin (12, Pin.OUT)
led_white = Pin (14, Pin.OUT)
pir = Pin(26, Pin.IN) # geen pull resistor nodig bij pir
button = Pin(25, Pin.IN, Pin.PULL_UP)
buzzer = PWM(Pin(27))
buzzer.freq(500)
buzzer.duty(0)
timestamp_buzzer = 0
timestamp_led = 0
is_buzzer_on = 0
is_led_on = 0
status_pir_before = 0
is_alarm_on = 0
is_alarm_trigeered = 0
status_button_before = 1
led_blink_rate = 500
while True:
status_button = button.value()
if status_button_before != status_button:
status_button_before = status_button
if status_button == 0:
is_alarm_on = not is_alarm_on
print("alarm_status =" , is_alarm_on)
if is_alarm_on == 0:
# alles uitschakelen
led_red.value(0)
sleep(0.05)
if is_alarm_on:
if ticks_ms() - timestamp_led > 200:
timestamp_led = ticks_ms()
is_led_on = not is_led_on
#print("is_led_on", is_led_on)
led_red.value(is_led_on)
pir_status = pir.value()
if pir_status != status_pir_before:
status_pir_before = pir_status
print("PIR=" , pir_status)
led_white.value(pir_status)
'''
if ticks_ms() - timestamp_buzzer > 500:
timestamp_buzzer = ticks_ms()
is_buzzer_on = not is_buzzer_on
print("is_buzzer_on", is_buzzer_on)
buzzer.duty(512 * is_buzzer_on)
oled.fill(0)
oled.text(f"buzzer {is_buzzer_on}", 0, 0)
oled.show()
if ticks_ms() - timestamp_led > 200:
timestamp_led = ticks_ms()
is_led_on = not is_led_on
print("is_led_on", is_led_on)
led_red.value(is_led_on)
pir_status = pir.value()
if pir_status != status_pir_before:
status_pir_before = pir_status
print("PIR=" , pir_status)
'''