From b2d6273d603312d62aa13f8e9fa8d81e52de1a76 Mon Sep 17 00:00:00 2001 From: Allison <67673392+Allybe@users.noreply.github.com> Date: Tue, 25 Aug 2026 20:26:35 -0500 Subject: [PATCH] changes to only send req when change --- main.py | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/main.py b/main.py index 1003411..5af6053 100644 --- a/main.py +++ b/main.py @@ -5,17 +5,21 @@ 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) +echoPin = Pin(0, Pin.IN) +trigPin = Pin(1, Pin.OUT) + +led = Pin("LED", Pin.OUT) + +prevDoorStatus = 67 def getDistanceCM(): - trig_pin.value(0) + trigPin.value(0) time.sleep_us(2) - trig_pin.value(1) + trigPin.value(1) time.sleep_us(10) - trig_pin.value(0) + trigPin.value(0) - pulse_time = time_pulse_us(echo_pin, 1, 30000) + pulse_time = time_pulse_us(echoPin, 1, 30000) if pulse_time < 0: return -1 @@ -29,6 +33,8 @@ def sendDoorStatus(status): #r = urequests.post(requestURL, data={"status", status}) def checkDoorDistance(): + global prevDoorStatus # Tell Python to use the global variable + dist = -1 timeoutTime = 10 while timeoutTime > 0 and dist == -1: @@ -36,13 +42,26 @@ def checkDoorDistance(): timeoutTime -= 1 time.sleep(1) + status = 0; if dist < DOOR_OPEN_THRESHOLD: - sendDoorStatus(1) # door open + status = 1 # door open + led.on() elif dist == -1: - sendDoorStatus(-1) # unknown + status = -1 # unknown else: - sendDoorStatus(0) # door closed + status = 0 # door closed + led.off() + if status != prevDoorStatus: + sendDoorStatus(status) + prevDoorStatus = status + +def flashLED(): + flashes = 10 + while flashes > 0: + led.toggle() + time.sleep_ms(500) + flashes -= 1 def connectToNet(): ssid = "ITRnet" @@ -63,6 +82,7 @@ def connectToNet(): if wlan.status() != 3: raise RuntimeError('network connection failed') else: + flashLED() print('connected!') status = wlan.ifconfig() print('ip = ' + status[0])