2017-09-25 202 views
0

我正嘗試使用內置的MicroPython解釋器將STM32 Nucleo WIFI擴展板(SPWF04SA)連接到我們的無線網絡。根據數據表,它應該被支持。使用WPA2和MicroPython連接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作爲安全類型,我沒有收到錯誤,但顯然它不會連接到網絡。

任何幫助,將不勝感激。

回答

0

我終於搞定了。如果有人遇到過這種情況,那麼對於這些​​電路板來說語法稍微不標準。而不是調用wlan.connect的(),我不得不使用以下命令:

w.init(mode=WLAN.STA, ssid='PE9000', auth=(WLAN.WPA, 'xxxx')) 

即使我指定WPA WPA2,而不是它必須弄明白並連接反正。

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!')   
+0

謝謝,但由於我沒有你的JSON文件,這並沒有多大幫助。我也收到一個沒有STA_IF屬性的錯誤。 –

+0

configuration_file與它無關 - 它只是保存wifi網絡的ssid和密碼。你可以通過硬編碼ssid和密碼來測試代碼,看它是否有效。我不知道爲什麼STA_IF不工作,我猜這是不同的芯片組。 –