使用WPA2和MicroPython

时间:2017-09-25 19:09:43

标签: wifi stm32 micropython

我正在尝试使用内置的MicroPython解释器将STM32 Nucleo WIFI扩展板(SPWF04SA)连接到我们的无线网络。根据数据表,它应该得到支持。

我可以使用

列出可用的网络
import network
wlan = WLAN()
nets = wlan.scan()
for net in nets:
    print(net)

我得到了

(ssid='PE0000', bssid='00:13:60:FF:8F:2D', auth='WPA2 ', channel=4, rssi=-65)
(ssid='PE9000', bssid='02:13:60:FF:8F:2D', auth='WPA2 ', channel=4, rssi=-67)
(ssid='PE0200', bssid='B8:C7:5D:07:CF:D3', auth='WPA2 ', channel=6, rssi=-85)

然后我尝试使用以下方法连接到网络PE9000(或其中任何一个)

wlan.connect('PE9000',(WLAN.WPA2,'xxxx'))

我得到了:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'WLAN' has no attribute 'WPA2'

如果我尝试将WLAN.WPA用于安全类型,我不会收到错误,但显然它不会连接到网络。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

我的ESP8266模块遇到了同样的问题。我在下面包含了一些帮助我解决问题的代码。我正在使用micropython 1.9.2。

    configuration_filename = 'configuration.json'

    station_config = network.WLAN(network.STA_IF)

    if not station_config.isconnected():
        with open(configuration_filename, 'r') as configuration_file:
            json_configuration = configuration_file.read()
            json_config = json.loads(json_configuration)

            ssid = json_config['ssid']
            password = json_config['password']
            station_config.connect(ssid, password)
            while not station_config.isconnected():
                machine.idle() # save power while waiting
            print('WLAN connection succeeded!')        

答案 1 :(得分:0)

我终于开始工作了。如果其他人遇到过这种情况,那么这些电路板的语法似乎略微不合标准。而不是调用wlan.connect()我不得不使用以下内容:

upload_max_filesize

即使我指定WPA而不是WPA2,它仍然必须弄明白并连接。