A project utilizing MicroPython and a magnetic reed switch for triggering an alarm (email, Philips Hue light, etc)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

36 lines
1.2 KiB

from machine import deepsleep, Pin, wake_reason
from esp32 import wake_on_ext0
from time import sleep
from config import config
from leds import led_blink
def main():
pin_switch = Pin(config['sensor_pin'], Pin.IN, Pin.PULL_UP)
wake_on_ext0(pin=pin_switch, level=Pin.WAKE_LOW)
if wake_reason() == 0 and not config.get("config_button"): # Power on - Run on boot
sleep(10) # Give 10 seconds to cancel from serial
deepsleep()
elif wake_reason() == 0 and config.get("config_button"): # Power on - Wait for button before starting
pin_config = Pin(config["config_button"], Pin.IN, Pin.PULL_UP)
while True:
print('Waiting for button...')
if not pin_config.value():
if config.get("config_led"):
led_blink(config["config_led"], 2, interval=0.2)
deepsleep()
sleep(1)
elif wake_reason() == 1: # Sensor triggered alarm (woke from deep sleep)
import alarm
import wifi
wifi.connect()
alarm.trigger_alert(config["device_name"], phue=config.get("phue"), smtp=config.get("smtp"))
deepsleep()
try:
main()
except KeyboardInterrupt:
pass
finally:
led_blink(config["config_led"], 2, interval=0.2)