Connect to wifi asynchronously and use LED to indicate wifi status
This commit is contained in:
parent
aa0a04b76f
commit
9136fb5c97
|
|
@ -0,0 +1,6 @@
|
|||
Board: ESP32 NodeMCU
|
||||
|
||||
Pins:
|
||||
- Neopixels: GPIO26
|
||||
- Status LED: GPIO4
|
||||
- Button: GPIO21 (against GND)
|
||||
|
|
@ -1,10 +1,12 @@
|
|||
# boot.py -- This file is executed on every boot (including wake-boot from deepsleep)
|
||||
|
||||
from lightbar import wlan_manager
|
||||
import uasyncio
|
||||
import webrepl
|
||||
|
||||
# Connect to WLAN as defined in wlan_cfg.py
|
||||
wlan_manager.connect()
|
||||
from lightbar import wlan_manager
|
||||
|
||||
# Asynchronously connect to WLAN as defined in wlan_cfg.py
|
||||
uasyncio.create_task(wlan_manager.connect_async())
|
||||
|
||||
# Start WebREPL on default port 8266 with password defined in webrepl_cfg.PASS
|
||||
webrepl.start()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import network
|
||||
import time
|
||||
|
||||
import network
|
||||
from machine import Pin
|
||||
|
||||
|
||||
def connect() -> network.WLAN:
|
||||
"""
|
||||
|
|
@ -19,13 +21,21 @@ def connect() -> network.WLAN:
|
|||
wlan = network.WLAN(network.STA_IF)
|
||||
wlan.active(True)
|
||||
|
||||
status_led = Pin(4, Pin.OUT)
|
||||
status_led.off()
|
||||
|
||||
if not wlan.isconnected():
|
||||
wlan.connect(wlan_cfg.SSID, wlan_cfg.PASSWORD)
|
||||
|
||||
print('[wlan_manager] Connecting to WLAN "{}" '.format(wlan_cfg.SSID), end='')
|
||||
while not wlan.isconnected():
|
||||
print('.', end='')
|
||||
time.sleep(1)
|
||||
|
||||
# Let the LED blink to indicate the connection attempt
|
||||
status_led.on()
|
||||
time.sleep(0.5)
|
||||
status_led.off()
|
||||
time.sleep(0.5)
|
||||
print('\n[wlan_manager] Connected!')
|
||||
else:
|
||||
print('[wlan_manager] Already connected to WLAN "{}"'.format(wlan.config('essid')))
|
||||
|
|
@ -35,4 +45,16 @@ def connect() -> network.WLAN:
|
|||
wlan.ifconfig(wlan_cfg.IFCONFIG)
|
||||
|
||||
print('[wlan_manager] IP config: {}'.format(wlan.ifconfig()))
|
||||
|
||||
# Let the LED blink 2 times quickly to indicate that the WLAN is connected
|
||||
for _ in range(2):
|
||||
time.sleep(0.125)
|
||||
status_led.on()
|
||||
time.sleep(0.125)
|
||||
status_led.off()
|
||||
|
||||
return wlan
|
||||
|
||||
|
||||
async def connect_async():
|
||||
connect()
|
||||
|
|
|
|||
Loading…
Reference in New Issue