import machine,network,time, BlynkLib, sys, gc, ujson

wlan=network.WLAN(network.STA_IF)
wlan.active(True)

def readSecrets():
    with open('secrets.json') as fp:
        secrets=ujson.loads(fp.read())
        return secrets
    
def wifiConnect():
    secrets=readSecrets()
    wlan.connect(secrets['home_wifi']['ssid'],secrets['home_wifi']['pass'])

wifiConnect()

#  connect to Blynk
BLYNK_AUTH='ie_FVuX0HuP5m5k--kuauDHlrvviHbuI'
blynk=BlynkLib.Blynk(BLYNK_AUTH)
vpin=1

#  button connected to pin 28, ground, when btn pressed value=0
btn=machine.Pin(28,machine.Pin.IN,machine.Pin.PULL_UP)

#  LED GP25
led=machine.Pin("LED",machine.Pin.OUT)

#  button handler
def pressed(btn):
    global pressed
    if not pressed:
        pressed=True

#  set up datastream to Blynk (btn.value=pin v1)
@blynk.on('read V1')
def read_virtual_pin_handler(vpin):
    blynk.virtual_write(vpin,int(btn.value()))

#  LED handler (turn on when connected)
@blynk.on("connected")
def blynk_connected():
    led.on()

#  LED handler (turn off when disconnected)
@blynk.on("disconnected")
def blynk_disconnected():
    led.off()

#  garbage collection
gc.threshold(26144)
gc.enable()

#  main loop    
while True:
    try:
        read_virtual_pin_handler(vpin)
        #print(int(btn.value()))
        if int(btn.value())==0:
            blynk.log_event("Mommy_alert")
        time.sleep(.25)
        blynk.run()
    except KeyboardInterrupt:
        blynk_disconnected()
        blynk.disconnect()
        sys.exit()