Raspberry Pi Pico W には接続の問題があります。修正方法は次のとおりです。
Raspberry Pi Pico W を非常に長い時間実行した場合、最終的にプログラムが実行されていないことに気付く可能性があります。
プログラムが長期間失敗する理由の 1 つは、Wi-Fi の信頼性に関係しています。Wi-Fi が信頼できなくなった場合、Pico W の最初の本能はクラッシュすることです。
MicroPython で Pico W をより回復力のあるものにする方法を見てみましょう。
Pico W で Wi-Fi の信頼性が高い理由は何ですか?
Wi-Fi が 1 日に何度も切断されています。オペレーティング システムとソフトウェアが Wi-Fi ネットワークのこの保証された欠点を説明しているため、携帯電話や PC でこれを認識するのは困難です。
Pico W では、Pico W が接続を失うと、接続してデータを取得する単純なスクリプトがクラッシュします。唯一の解決策は、電源を切ってハード リセットすることです。
プロジェクトで一度に何時間ものデータをログに記録する必要がある場合、停止を常に監視する必要はありません。
エラー処理は、接続が不十分な場合でもプログラムが存続できるようにするための鍵です。
Wi-Fi 信号強度の改善は役に立ちますか?
信号強度を高めるためにメッシュ ネットワークを使用する必要があるかどうかを検討しているかもしれません。はい、それは役に立ちますが、接続が切断されるシナリオを回避できる程度ではありません.
ある実験では、家の 2 階に Pico W を配置し、Wi-Fi ルーターの隣に別の Pico W を配置しました。結果の違いは、2 階のデバイスがルーターに近い場所にある Pico W よりも早く切断されたことです。後者は、データ収集のギャップに反映されているように、最終的には接続も切断されました。
残念ながら、信号強度を改善すると問題は軽減されますが、解決にはなりません。それでは、より回復力のあるコードを作成する方法をいくつか見てみましょう。
ソフトウェアの接続と切断方法
プロジェクトで一方向の通信のみが必要な場合は、この方法が最適です。いくつかの例は、長期間にわたって実行する必要があるが、時々データを記録するだけの温度ロガーです。
これにより、Pico W が接続されていると認識したときにクラッシュが発生するという問題が解決されますが、エンドポイントにデータを送信しようとすると、オフラインであることがわかり、クラッシュに進みます。
この方法の鍵は、プログラムが無限ループで実行される手順に関係しています。このループ内には、特定の時間が経過した後に実行される関数があります。この機能は、Pico W を Wi-Fi に接続し、ジョブを実行して (サーバーにデータを送信するなど)、切断します。
ソフトウェア ハード リセット
MicroPython のハード リセット コードを使用すると、介入しなくても Pico W が確実に実行されるようにすることができます。ヘルプが必要な場合は、MicroPython の紹介を参照してから、次のコマンドを実行してください。
import machine
machine.reset()
真夜中に眠っている間に接続が失われたとしましょう。ソフトウェアのハード リセットがない場合は、午前中にプログラムを手動でリセットする必要があります。これにより、8 時間分のデータ ログが失われる可能性があります。
エラー処理コード ブロックに入れているソフトウェア ハード リセットがある場合、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 ドキュメントを参照してください。C++ ガイダンスについては、Pico の公式 SDK ドキュメントも参照してください。
Pico W の接続を防爆にする
Pico W を Wi-Fi 接続で無制限に実行できるようにするには、複数のことを行う必要があります。
まず、Wi-Fi 接続が適度に強力であることを確認します。コードは Wi-Fi に関するいくつかの問題を軽減できますが、使用する方法によっては、プログラムの状態が失われたり、データ ポイントが失われたりすることがあります。
第二に、サービスを継続できるように、プログラムには Wi-Fi 接続の切断から回復する方法が必要です。
これらの手順を実行すると、Pico W からの接続の信頼性が向上します。
コメントを残す