59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
import network
|
|
import time
|
|
|
|
# connect to local wifi network
|
|
sta_if = network.WLAN(network.STA_IF)
|
|
ap_if = network.WLAN(network.AP_IF)
|
|
sta_if.active(True)
|
|
networks = sta_if.scan()
|
|
print("networks found: {}".format(networks))
|
|
ap_found = False
|
|
|
|
# TODO: edit these lines
|
|
network_name = '<SSID>' # existing wifi network to connect to (leave empty if unused)
|
|
password = '<PW>' # password for the network
|
|
desired_ip = '192.168.1.101' # the robot will be reachable by this IP in the network
|
|
subnet = '255.255.255.0'
|
|
gateway = '192.168.1.1'
|
|
dns = '192.168.1.1'
|
|
# TODO end edit
|
|
|
|
for n in networks:
|
|
if network_name == n[0].decode():
|
|
print("existing network found: {}".format(n[0]))
|
|
print("connecting to the network ...")
|
|
# set static ip
|
|
sta_if.ifconfig((desired_ip, subnet, gateway, dns))
|
|
sta_if.connect(network_name, password)
|
|
my_ip = sta_if.ifconfig()
|
|
print("my_ip[0] = {}".format(my_ip[0]))
|
|
if my_ip[0] == desired_ip:
|
|
ap_found = True
|
|
ap_if.active(False)
|
|
print("disabling access point interface")
|
|
elif 'MicroPython' in n[0].decode(): # alternatively, connect to MicroPython network
|
|
print("existing network found: {}".format(n[0]))
|
|
print("connecting to the network ...")
|
|
# set static ip
|
|
sta_if.ifconfig((desired_ip, subnet, gateway, dns))
|
|
sta_if.connect(n[0].decode(), 'micropythoN')
|
|
my_ip = sta_if.ifconfig()
|
|
print("my_ip[0] = {}".format(my_ip[0]))
|
|
if my_ip[0] == desired_ip:
|
|
ap_found = True
|
|
ap_if.active(False)
|
|
print("disabling access point interface")
|
|
if not ap_found:
|
|
print("could not connect to network, becoming an access point instead")
|
|
sta_if.active(False)
|
|
ap_if.active(True)
|
|
ap_if.ifconfig((desired_ip, subnet, gateway, dns))
|
|
my_ip = ap_if.ifconfig()
|
|
print("disabling station interface")
|
|
print("my_ip = {}".format(my_ip))
|
|
|
|
# start terminal over wifi
|
|
time.sleep(5) # wait for wifi to connect
|
|
import webrepl
|
|
webrepl.start()
|