Wi-Fi 又稱為「無線網路」,是一個基於 IEEE 802.11 標準無線區域網路技術。在1997年 Wi-Fi 聯盟公布相關規範,並致力於讓這項技術變得更通用、廠商設備能彼此相容,增進使用者使用無線技術的便利性。
無線網路的世代可分為:
世代名稱 | 名稱 | 發布年份 | 最大傳輸速率(Mbit/s) | 頻率(GHz) |
---|---|---|---|---|
Wi-Fi 7 | 802.11be | 2024 | 1376~46120 | 2.4/5/6 |
Wi-Fi 6E | 802.11ax | 2020 | 574~9608 | 6 |
Wi-Fi 6 | 802.11ax | 2019 | 574~9608 | 2.4/5 |
Wi-Fi 5 | 802.11ac | 2014 | 433~6933 | 5 |
Wi-Fi 4 | 802.11n | 2008 | 72~600 | 2.4/5 |
Wi-Fi 3 | 802.11g | 2003 | 6~54 | 2.4 |
Wi-Fi 2 | 802.11a | 1999 | 6~54 | 5 |
Wi-Fi 1 | 802.11b | 1999 | 1~11 | 2.4 |
Wi-Fi 0 | 802.11 | 1997 | 1~2 | 2.4 |
Wi-Fi 設定最少需要有一個 AP(存取點),和一個或一個以上的客戶端(Client)使用者。無線AP 會以每100ms 將 SSID(Service Set Identifier) 經由訊號台封包廣播一次。Wi-Fi規定其最低傳輸速率為1 Mbit/s,以確保所有的Wi-Fi client端都能收到這個SSID廣播封包,client可以藉此決定是否要和這一個SSID的AP連線。使用者可以決定要連到哪一個 SSID。
玩學機內建的通訊晶片是 ESP32 ,這個微控制器整合了 Wi-Fi、低功耗藍牙與傳統藍牙功能。頻段為 2.4Ghz,支援協議: 802.11 b/g/n,使用 802.11n 最高速度為 150Mbps。
根據ESP32技術手冊,我們可以得知有兩種無線網路模式:
首先您要確定家中有無線基地台,抄下基地台發放的 SSID 名稱與Wi-Fi連線密碼。如果您還能查到此基地台的內網IP位址,也請記錄下來,未來網路如果有異常需要測試,就能按照各個節點的IP,進行通訊連線測試。範例資料如下:
您可以使用底下的指令,檢查無線網路卡並確認其狀態。
import network
sta_if = network.WLAN(network.STA_IF)
ap_if = network.WLAN(network.AP_IF)
sta_if.active() # 如果是 False 代表沒有啟動 STATION 模式
ap_if.active() # 如果是 True 代表啟動 AP 模式
還可以用 ifconfig() 函數來檢查網路的設定值。
ap_if.ifconfig()
('192.168.1.1', '255.255.255.0', '192.168.1.1', '8.8.8.8')
# 傳回的值分別為 IP 位址、子網路遮罩、匝道器與 DNS伺服器 IP
此時我們可以自行定義一個函數來連接到無線基地台。
WiFi_SSID = 'ESP32AP'
WiFi_PASSWORD = abc@1234
def WiFi_connect(WiFi_SSID, WiFi_PASSWORD):
import network
sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
sta_if.active(True)
sta_if.connect(WiFi_SSID, WiFi_PASSWORD) # should be modified
while not sta_if.isconnected(): pass
print('network config:', sta_if.ifconfig())
WiFi _connect()
好了,執行完上面的程式應該就能連到家中的無線基地台。明天,我們會帶著大家寫一個網路對時程式。感謝各位的支持,明天見。