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 = '' # existing wifi network to connect to (leave empty if unused) password = '' # 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()