這篇將介紹如何使用struct 中的PACK 將數據轉換成二進制 並餵給MicroPython x ESP01S 使用
在MicroPython 官網中可以看到有關於BSSID的連線說明, 由於沒有範例, 真的很難知道哪種設定才是正確的作法
[實作] 連線到特定的Wi-Fi AP , 連線資訊如下:
SSID: AC66, key: 12345678, BSSID: 30:5A:3A:51:B4:48
lst_addr = "30:5A:3A:51:B4:48".split(':')
>>> dec_lst= [int("0x%s" %(lst_addr[0]),0), int("0x%s" %(lst_addr[1]),0), int("0x%s" %(lst_addr[2]),0), int("0x%s" %(lst_addr[3]),0), int("0x%s" %(lst_addr[4]),0), int("0x%s" %(lst_addr[5]),0)]
>>> dec_lst
[48, 90, 58, 81, 180, 72]
[秘訣] struct的pack 無法吃16進制的數值, 所以才要從HEX value to DEC format
3. 將數據轉成二進制碼並存入bssid_value 變數中
>>> bssid_value=ustruct.pack('BBBBBB', dec_lst[0], dec_lst[1], dec_lst[2], dec_lst[3], dec_lst[4], dec_lst[5])
>>>
>>> bssid_value
b'0Z:Q\xb4H'
import network
nic= network.WLAN(network.STA_IF)
nic.active(True)
nic.connect('AC66', '12345678', **bssid=**bssid_value)
>>> nic.config('essid')
'AC66'