Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7d2ad1cd49 | ||
![]() |
307b467ac1 |
@@ -1,3 +1,4 @@
|
|||||||
|
import gc
|
||||||
import utime
|
import utime
|
||||||
import ujson
|
import ujson
|
||||||
import network
|
import network
|
||||||
@@ -17,6 +18,7 @@ class App:
|
|||||||
|
|
||||||
opened: bool = False
|
opened: bool = False
|
||||||
previously_opened: bool = False
|
previously_opened: bool = False
|
||||||
|
wlan: network.WLAN
|
||||||
|
|
||||||
led = Pin(15, Pin.OUT)
|
led = Pin(15, Pin.OUT)
|
||||||
trigger = Pin(2, Pin.OUT)
|
trigger = Pin(2, Pin.OUT)
|
||||||
@@ -55,18 +57,18 @@ class App:
|
|||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
print("Connecting to Wi-Fi...")
|
print("Connecting to Wi-Fi...")
|
||||||
wlan = network.WLAN(network.STA_IF)
|
self.wlan = network.WLAN(network.STA_IF)
|
||||||
|
|
||||||
wlan.active(False)
|
self.wlan.active(False)
|
||||||
utime.sleep_ms(250)
|
utime.sleep_ms(250)
|
||||||
wlan.active(True)
|
self.wlan.active(True)
|
||||||
utime.sleep_ms(250)
|
utime.sleep_ms(250)
|
||||||
|
|
||||||
wlan.connect(self.ssid, self.password)
|
self.wlan.connect(self.ssid, self.password)
|
||||||
utime.sleep_ms(100)
|
utime.sleep_ms(100)
|
||||||
|
|
||||||
retry_count = 0
|
retry_count = 0
|
||||||
while not wlan.isconnected():
|
while not self.wlan.isconnected():
|
||||||
if retry_count >= MAX_CONNECTION_RETRIES:
|
if retry_count >= MAX_CONNECTION_RETRIES:
|
||||||
print("Max connection retries reached")
|
print("Max connection retries reached")
|
||||||
exit(1)
|
exit(1)
|
||||||
@@ -80,22 +82,14 @@ class App:
|
|||||||
|
|
||||||
if retry_count % 10 == 0:
|
if retry_count % 10 == 0:
|
||||||
print("Attempting to restart connection...")
|
print("Attempting to restart connection...")
|
||||||
wlan.connect(self.ssid, self.password)
|
self.wlan.connect(self.ssid, self.password)
|
||||||
for _ in range(10):
|
for _ in range(10):
|
||||||
self.led.toggle()
|
self.led.toggle()
|
||||||
utime.sleep_ms(50)
|
utime.sleep_ms(50)
|
||||||
|
|
||||||
print(f"Connected with IP {wlan.ifconfig()[0]}")
|
print(f"Connected with IP {self.wlan.ifconfig()[0]}")
|
||||||
self.update_server()
|
self.update_server()
|
||||||
|
|
||||||
def health_check_server(self):
|
|
||||||
print("Health checking server...", end="\r")
|
|
||||||
try:
|
|
||||||
r = urequests.get(f"{self.server}/")
|
|
||||||
print(f"Server healthy [{r.status_code}]{" " * 8}")
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error occurred: {e}")
|
|
||||||
|
|
||||||
def update_server(self):
|
def update_server(self):
|
||||||
print("Updating state...", end="\r")
|
print("Updating state...", end="\r")
|
||||||
data = {"opened": self.opened}
|
data = {"opened": self.opened}
|
||||||
@@ -128,7 +122,7 @@ class App:
|
|||||||
|
|
||||||
delta_time = received_time - sent_time
|
delta_time = received_time - sent_time
|
||||||
distance = delta_time / 1_000_000 * SOUND_SPEED / 2
|
distance = delta_time / 1_000_000 * SOUND_SPEED / 2
|
||||||
print(f"Distance: {distance} cm")
|
print(f"Distance: {distance:0<5} cm; mem_free = {gc.mem_free()}")
|
||||||
|
|
||||||
return distance
|
return distance
|
||||||
|
|
||||||
@@ -139,6 +133,9 @@ class App:
|
|||||||
i = 0
|
i = 0
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
if not self.wlan.isconnected():
|
||||||
|
self.connect()
|
||||||
|
|
||||||
distance = self.measure_distance()
|
distance = self.measure_distance()
|
||||||
self.opened = distance >= THRESHOLD_DISTANCE
|
self.opened = distance >= THRESHOLD_DISTANCE
|
||||||
|
|
||||||
@@ -157,13 +154,14 @@ class App:
|
|||||||
self.previously_opened = True
|
self.previously_opened = True
|
||||||
|
|
||||||
if i >= 20:
|
if i >= 20:
|
||||||
|
print("Blinking...")
|
||||||
self.led.toggle()
|
self.led.toggle()
|
||||||
utime.sleep_ms(100)
|
utime.sleep_ms(100)
|
||||||
self.led.toggle()
|
self.led.toggle()
|
||||||
utime.sleep_ms(400)
|
utime.sleep_ms(400)
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
self.health_check_server()
|
gc.collect()
|
||||||
else:
|
else:
|
||||||
utime.sleep_ms(500)
|
utime.sleep_ms(500)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user