ESP32 課程:MicroPython 連接到 WiFi 網路

這篇文章的目的是解釋如何在 ESP32 上使用 MicroPython 連接到 WiFi網絡。此處顯示的過程基於MicroPython 文檔網站上為 ESP8266 提供的指南,我鼓勵您閱讀該指南。

我們將通過向提示符發送命令來執行 Python 代碼,這樣我們就可以一步一步地看到事情。如果您還沒有在 ESP32 上配置 MicroPython,請查看上一篇文章

我將使用Putty建立與 Python 提示符的串行連接,但您可以使用其他允許這種連接的軟件。

代碼

首先,我們需要導入網絡模塊,以便訪問建立與 WiFi 網絡的連接所需的所有功能。

1 進口網絡

導入模塊後,控制台上會打印一些信息,如圖 1 所示。本教程不需要這些信息,但出於說明目的,我將其保留在這裡。

圖 1 – 導入 MicroPython 網絡模塊。

由於我們要連接到 WiFi 網絡,我們的設備將在站模式下運行。所以,我們需要創建一個站內WiFi接口的實例[1]。為此,我們只需要調用WLAN類的構造函數並將所需接口的標識符作為其輸入傳遞。在這種情況下,我們將使用network.STA_IF接口。

1  station = network.WLAN(network.STA_IF)

現在我們將通過在我們的站對像上調用active方法並傳遞 True 作為輸入來激活網絡接口,因為它接受布爾值。

1   station.active(True)

同樣,執行此命令後,您應該會在命令行上得到一個輸出,表明我們處於工作站模式並且接口已啟動,如圖 2 所示。

圖 2 – 激活站模式。

最後我們將使用 connect 方法連接到 WiFi 網絡。此方法接收 SSID(網絡名稱)和密碼作為輸入。

1  station.connect(“YourNetworkName”, “YourNetworkPassword”)

它會再次將一些信息打印到控制台。考慮到連接可能需要一段時間。還要注意,一旦建立連接,就不會打印“>>>>”,所以在打印完最後一條消息後,設備似乎還在處理中,如圖3所示。您可以按回車正常繼續。

圖 3 – 連接到 WiFi 網絡。

最後,我們將通過調用isconnected方法來確認連接,如果設備連接到 WiFi 網絡 [2],該方法返回 true。我們還將調用ifconfig方法,該方法返回 IP 地址、子網掩碼、網關和 DNS 作為輸出參數 [2]。

1  station.isconnected()
2  station.ifconfig()

在圖 4 中查看這些命令的最終輸出,這表明我們已正確連接到 WiFi 網絡。

圖 4 – 確認與 WiFi 網絡的連接。

請注意,分配給 ESP32 的 IP 是本地 IP,因此如果不轉發路由器,我們就不能使用它來接收來自網絡外部的連接