diff --git a/main.py b/main.py index 1c64e19..1003411 100644 --- a/main.py +++ b/main.py @@ -1,10 +1,48 @@ import time import network import urequests +from machine import Pin, time_pulse_us + +DOOR_OPEN_THRESHOLD = 50 # in cm + +echo_pin = Pin(0, Pin.IN) +trig_pin = Pin(1, Pin.OUT) + +def getDistanceCM(): + trig_pin.value(0) + time.sleep_us(2) + trig_pin.value(1) + time.sleep_us(10) + trig_pin.value(0) + + pulse_time = time_pulse_us(echo_pin, 1, 30000) + + if pulse_time < 0: + return -1 + + distance = pulse_time / 58 + return distance def sendDoorStatus(status): - requestURL = "http://10.69.70.1/status" - r = urequests.post(requestURL, data={"status", status}) + print("door status: " + str(status)) + #requestURL = "http://10.69.70.1/status" + #r = urequests.post(requestURL, data={"status", status}) + +def checkDoorDistance(): + dist = -1 + timeoutTime = 10 + while timeoutTime > 0 and dist == -1: + dist = getDistanceCM() + timeoutTime -= 1 + time.sleep(1) + + if dist < DOOR_OPEN_THRESHOLD: + sendDoorStatus(1) # door open + elif dist == -1: + sendDoorStatus(-1) # unknown + else: + sendDoorStatus(0) # door closed + def connectToNet(): ssid = "ITRnet" @@ -32,6 +70,6 @@ def connectToNet(): # program connectToNet() -sendDoorStatus(False) - - +while True: + time.sleep(5) + checkDoorDistance()