Remove web server, espnow only
This commit is contained in:
@@ -6,4 +6,4 @@ s = Settings()
|
|||||||
|
|
||||||
name = s.get('name', 'led')
|
name = s.get('name', 'led')
|
||||||
password = s.get("ap_password", "")
|
password = s.get("ap_password", "")
|
||||||
wifi.ap(name, password)
|
# wifi.ap(name, password)
|
||||||
|
77
src/main.py
77
src/main.py
@@ -10,45 +10,46 @@ import time
|
|||||||
import wifi
|
import wifi
|
||||||
import json
|
import json
|
||||||
from p2p import p2p
|
from p2p import p2p
|
||||||
|
import espnow
|
||||||
|
import network
|
||||||
|
|
||||||
async def main():
|
settings = Settings()
|
||||||
settings = Settings()
|
|
||||||
|
|
||||||
patterns = Patterns(settings["led_pin"], settings["num_leds"], selected=settings["pattern"])
|
patterns = Patterns(settings["led_pin"], settings["num_leds"], selected=settings["pattern"])
|
||||||
if settings["color_order"] == "rbg": color_order = (1, 5, 3)
|
if settings["color_order"] == "rbg": color_order = (1, 5, 3)
|
||||||
else: color_order = (1, 3, 5)
|
else: color_order = (1, 3, 5)
|
||||||
patterns.set_color1(tuple(int(settings["color1"][i:i+2], 16) for i in color_order))
|
patterns.set_color1(tuple(int(settings["color1"][i:i+2], 16) for i in color_order))
|
||||||
patterns.set_color2(tuple(int(settings["color2"][i:i+2], 16) for i in color_order))
|
patterns.set_color2(tuple(int(settings["color2"][i:i+2], 16) for i in color_order))
|
||||||
patterns.set_brightness(int(settings["brightness"]))
|
patterns.set_brightness(int(settings["brightness"]))
|
||||||
patterns.set_delay(int(settings["delay"]))
|
patterns.set_delay(int(settings["delay"]))
|
||||||
|
|
||||||
async def tick():
|
sta = network.WLAN(network.STA_IF)
|
||||||
while True:
|
sta.active(True)
|
||||||
|
sta.disconnect() # Because ESP8266 auto-connects to last Access Point
|
||||||
|
|
||||||
|
e = espnow.ESPNow()
|
||||||
|
e.active(True)
|
||||||
|
|
||||||
|
print(settings)
|
||||||
|
# start the server in a bacakground task
|
||||||
|
print("Starting")
|
||||||
|
|
||||||
|
wdt = machine.WDT(timeout=10000)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
wdt.feed()
|
||||||
patterns.tick()
|
patterns.tick()
|
||||||
await asyncio.sleep_ms(0)
|
host, msg = e.recv(0)
|
||||||
|
if msg:
|
||||||
async def system():
|
try:
|
||||||
while True:
|
data = json.loads(msg)
|
||||||
gc.collect()
|
except:
|
||||||
for i in range(60):
|
print(f"Failed to load espnow data {msg}")
|
||||||
wdt.feed()
|
continue
|
||||||
await asyncio.sleep(1)
|
print(data)
|
||||||
|
if "names" not in data or settings.get("name") in data.get("names", []):
|
||||||
w = web(settings, patterns)
|
if "step" in settings and isinstance(settings["step"], int):
|
||||||
print(settings)
|
patterns.set_pattern_step(settings["step"])
|
||||||
# start the server in a bacakground task
|
else:
|
||||||
print("Starting")
|
settings.set_settings(data.get("settings", {}), patterns, data.get("save", False))
|
||||||
server = asyncio.create_task(w.start_server(host="0.0.0.0", port=80))
|
|
||||||
wdt = machine.WDT(timeout=10000)
|
|
||||||
wdt.feed()
|
|
||||||
|
|
||||||
asyncio.create_task(tick())
|
|
||||||
asyncio.create_task(p2p(settings, patterns))
|
|
||||||
asyncio.create_task(system())
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# cleanup before ending the application
|
|
||||||
await server
|
|
||||||
|
|
||||||
asyncio.run(main())
|
|
||||||
|
Reference in New Issue
Block a user