Luthira A
updated scripts and unique id generation with form for mqtt connection
4bec42e
# .';:cc;.
# .,',;lol::c.
# ;';lddddlclo
# lcloxxoddodxdool:,.
# cxdddxdodxdkOkkkkkkkd:.
# .ldxkkOOOOkkOO000Okkxkkkkx:.
# .lddxkkOkOOO0OOO0000Okxxxxkkkk:
# 'ooddkkkxxkO0000KK00Okxdoodxkkkko
# .ooodxkkxxxOO000kkkO0KOxolooxkkxxkl
# lolodxkkxxkOx,. .lkdolodkkxxxO.
# doloodxkkkOk .... .,cxO;
# ddoodddxkkkk: ,oxxxkOdc'..o'
# :kdddxxxxd, ,lolccldxxxkkOOOkkkko,
# lOkxkkk; :xkkkkkkkkOOO000OOkkOOk.
# ;00Ok' 'O000OO0000000000OOOO0Od.
# .l0l.;OOO000000OOOOOO000000x,
# .'OKKKK00000000000000kc.
# .:ox0KKKKKKK0kdc,.
# ...
#
# Author: peppe8o
# Date: Jul 24th, 2022
# Version: 1.0
# https://peppe8o.com
# modified by @sgbaird from source:
# https://peppe8o.com/getting-started-with-wifi-on-raspberry-pi-pico-w-and-micropython/
import time
import network
import rp2
from ubinascii import hexlify
def connectWiFi(ssid, password, country=None, wifi_energy_saver=False, retries=3):
for _ in range(retries):
try:
if country is not None:
# https://www.google.com/search?q=wifi+country+codes
rp2.country(country)
wlan = network.WLAN(network.STA_IF)
if not wifi_energy_saver:
wlan.config(pm=0xA11140) # avoid the energy-saving WiFi mode
wlan.active(True)
mac = hexlify(network.WLAN().config("mac"), ":").decode()
print(f"MAC address: {mac}")
wlan.connect(ssid, password)
# Wait for connect or fail
max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print("waiting for connection...")
time.sleep(1)
# Handle connection error
if wlan.status() != 3:
raise RuntimeError("network connection failed")
else:
print("connected")
status = wlan.ifconfig()
print("ip = " + status[0])
return status
except RuntimeError as e:
print(f"Attempt failed with error: {e}. Retrying...")
raise RuntimeError(
"All attempts to connect to the network failed. Ensure you are using a 2.4 GHz WiFi network with WPA-2 authentication. See the additional prerequisites section from https://doi.org/10.1016/j.xpro.2023.102329 or the https://github.com/sparks-baird/self-driving-lab-demo/issues/76 for additional troubleshooting help."
)