Raspberry Pi Pico W 存在連接問題:以下是解決方法

Raspberry Pi Pico W 存在連接問題:以下是解決方法

如果您運行 Raspberry Pi Pico W 很長時間,您很可能最終會注意到您的程序不再運行。

程序長時間失敗的原因之一與 Wi-Fi 可靠性有關。如果您的 Wi-Fi 變得不穩定,Pico W 的第一直覺就是崩潰。

讓我們看看如何在 MicroPython 中使 Pico W 更具彈性。

是什麼導致了 Pico W 的 Wi-Fi 可靠性?

您的 Wi-Fi 每天斷開連接多次。在您的手機或 PC 上很難察覺到這一點,因為操作系統和軟件已經解決了 Wi-Fi 網絡的這個有保證的缺點。

使用 Pico W 時,如果 Pico W 失去連接,連接和獲取數據的簡單腳本就會崩潰。唯一的解決辦法是通過拔電硬復位。

Raspberry Pi Pico W 記錄 Wi-Fi 中斷

如果您的項目需要一次記錄數小時的數據,您不希望必須不斷地監視中斷。

錯誤處理是確保您的程序能夠在不良連接中存活下來的關鍵。

提高 Wi-Fi 信號強度會有幫助嗎?

您可能正在考慮是否應該使用網狀網絡來增加信號強度。是的,它會有所幫助,但不會達到可以避免連接中斷情況的程度。

在一個實驗中,我們將一個 Pico W 放在房子二樓的某個位置,另一個 Pico W 放在 Wi-Fi 路由器旁邊。結果的不同之處在於二樓的設備比靠近路由器的 Pico W 更早斷開連接。正如數據收集中的差距所反映的那樣,後者最終也出現了連接斷開的情況。

不幸的是,雖然提高信號強度可以減少問題,但並不能解決問題。因此,讓我們看一些編寫更具彈性代碼的方法。

連接和斷開軟件方法

如果您的項目只需要單向通信,那麼這種方法非常適合。一些例子是溫度記錄器,它需要長時間運行,但偶爾只記錄一次數據。

這解決了當您的 Pico W 認為它已連接時發生崩潰的問題,但當它嘗試將數據發送到端點時,它意識到它處於離線狀態,然後繼續崩潰。

此方法的關鍵涉及程序在無限循環中運行的過程。在這個循環中有一個函數將在經過特定時間後運行。此功能會將 Pico W 連接到 Wi-Fi,完成其工作(例如,將數據發送到服務器),然後斷開連接。

軟件硬重置

使用 MicroPython 的硬重置代碼可以幫助您確保即使您不進行干預,您的 Pico W 也會運行。如果您需要幫助,請參閱我們的 MicroPython 介紹,然後運行此命令:

import machine
machine.reset()

假設您在午夜睡覺時失去聯繫。如果您沒有軟件硬重置,則必須在早上手動重置程序。這可能會導致八小時的數據記錄丟失。

如果您有軟件硬重置,您已將其放入錯誤處理代碼塊中,Pico W 將自行重置。

這樣做的缺點是,在硬重置後,您的程序狀態將會丟失,如果您的程序崩潰,則不會觸發軟件硬重置。

使用 Pico W 的內置看門狗定時器

硬件看門狗定時器基本上是一種可以在 Pico W 出現故障時重置它的設備。看門狗定時器是倒數定時器。如果他們在倒計時歸零之前收到信號,則倒計時將重置。然而,如果倒計時歸零,那麼它會重置 Pico W。

在 MicroPython 中,基本代碼如下:

from machine import WDT
wdt = WDT(timeout=1000) #timeout is in ms
wdt.feed() #resets countdown

您可以訪問MicroPython 的 WDT 文檔以了解更多信息,也可以訪問Pico 的官方 SDK 文檔以獲取 C++ 指導

帶接頭的 Raspberry Pi Pico W

讓您的 Pico W 連接防彈

為了讓您的 Pico W 有機會在 Wi-Fi 連接上無限期運行,您需要做很多事情。

首先,確保 Wi-Fi 連接信號足夠強。雖然代碼可以緩解 Wi-Fi 的一些挑戰,但取決於所使用的方法,它有時會導致程序狀態丟失或數據點丟失。

其次,該程序需要有一些方法來從斷開的 Wi-Fi 連接中恢復,以便您可以繼續獲得服務。

通過這些步驟,您可以確信 Pico W 的連接更可靠。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *