Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Wenn Sie Ihren Raspberry Pi Pico W sehr lange betrieben haben, werden Sie wahrscheinlich irgendwann bemerken, dass Ihr Programm nicht mehr läuft.

Ein Grund, warum Programme über einen langen Zeitraum fehlschlagen, ist die WLAN-Zuverlässigkeit. Wenn Ihr Wi-Fi unzuverlässig wird, ist der erste Instinkt des Pico W ein Absturz.

Mal sehen, wie wir den Pico W in MicroPython widerstandsfähiger machen können.

Was verursacht die Wi-Fi-Zuverlässigkeit auf dem Pico W?

Ihr WLAN wird mehrmals am Tag getrennt. Es ist schwer, dies auf Ihrem Telefon oder PC wahrzunehmen, da Betriebssysteme und Software für diesen garantierten Mangel von Wi-Fi-Netzwerken verantwortlich sind.

Beim Pico W würde ein einfaches Skript, das eine Verbindung herstellt und Daten abruft, abstürzen, wenn Ihr Pico W die Verbindung verliert. Die einzige Lösung ist ein Hard-Reset durch Ziehen der Stromversorgung.

instagram viewer

Wenn Ihr Projekt stundenlang Daten protokollieren muss, möchten Sie nicht ständig Ausfälle überwachen müssen.

Die Fehlerbehandlung ist der Schlüssel, um sicherzustellen, dass Ihr Programm schlechte Verbindungen überlebt.

Wird die Verbesserung der Wi-Fi-Signalstärke helfen?

Sie überlegen vielleicht ob Sie ein Mesh-Netzwerk verwenden sollten um die Signalstärke zu erhöhen. Ja, es wird helfen, aber nicht in einem Maße, in dem Sie Szenarien vermeiden können, in denen die Verbindung unterbrochen wird.

In einem Experiment platzierten wir einen Pico W an einem Ort im zweiten Stock eines Hauses und einen anderen Pico W neben dem Wi-Fi-Router. Der Unterschied im Ergebnis besteht darin, dass das Gerät im zweiten Stock früher getrennt wurde als der Pico W, der sich näher am Router befindet. Letzteres hatte schließlich auch einen Verbindungsabbruch, was sich in Lücken bei der Datenerfassung widerspiegelt.

Leider wird das Problem zwar durch eine Verbesserung der Signalstärke verringert, aber nicht gelöst. Schauen wir uns also einige Methoden an, um robusteren Code zu schreiben.

Verbinden und Trennen der Softwaremethode

Wenn Ihr Projekt nur eine einseitige Kommunikation erfordert, wäre diese Methode perfekt dafür. Einige Beispiele wären Temperaturlogger, die über einen langen Zeitraum betrieben werden müssen, aber nur hin und wieder Daten protokollieren.

Dadurch wird das Problem von Abstürzen behoben, das auftritt, wenn Ihr Pico W denkt, dass es verbunden ist, aber wenn es versucht, Daten an einen Endpunkt zu senden, erkennt es, dass es offline ist, und fährt dann mit dem Absturz fort.

Der Schlüssel zu dieser Methode beinhaltet eine Prozedur, bei der Ihr Programm in einer Endlosschleife ausgeführt wird. Innerhalb dieser Schleife befindet sich eine Funktion, die nach Ablauf einer bestimmten Zeit ausgeführt wird. Diese Funktion verbindet den Pico W mit Wi-Fi, führt seine Arbeit aus (z. B. sendet Daten an einen Server) und trennt dann die Verbindung.

Software-Hard-Reset

Die Verwendung des Hard-Reset-Codes von MicroPython kann Ihnen dabei helfen sicherzustellen, dass Ihr Pico W läuft, auch wenn Sie nicht eingreifen. Siehe unsere Einführung in MicroPython Wenn Sie Hilfe benötigen, führen Sie diesen Befehl aus:

importieren Maschine
Maschine.zurücksetzen()

Angenommen, Sie verlieren um Mitternacht die Verbindung, während Sie schlafen. Wenn Sie keinen Software-Hard-Reset hatten, müssten Sie das Programm morgens manuell zurücksetzen. Dies kann zu einem achtstündigen Verlust der Datenprotokollierung führen.

Wenn Sie einen Software-Hard-Reset haben, den Sie in Ihren Codeblock zur Fehlerbehandlung eingefügt haben, wird sich der Pico W selbst zurücksetzen.

Der Nachteil dabei ist, dass beim Hard-Reset der Status Ihres Programms verloren geht und wenn Ihr Programm abstürzt, der Software-Hard-Reset nicht ausgelöst wird.

Verwenden Sie den eingebauten Watchdog-Timer des Pico W

Ein Hardware-Watchdog-Timer ist im Grunde ein Gerät, das Ihren Pico W zurücksetzt, wenn er nicht funktioniert. Watchdog-Timer sind Countdown-Timer. Wenn sie ein Signal erhalten, bevor der Countdown Null erreicht, wird der Countdown zurückgesetzt. Wenn der Countdown jedoch Null erreicht, wird der Pico W zurückgesetzt.

In MicroPython ist der grundlegende Code wie folgt:

aus Maschine importieren WDT
wdt = WDT(timeout=1000) #timeout ist in ms
wdt.füttern() #zurücksetzenCountdown

Du kannst besuchen WDT-Dokumentation von MicroPython um mehr zu erfahren und auch Picos offizielle SDK-Dokumentation für C++-Anleitungen.

Machen Sie die Verbindung Ihres Pico W bombenfest

Um Ihrem Pico W die beste Chance zu geben, auf unbestimmte Zeit mit einer Wi-Fi-Verbindung zu laufen, müssen Sie mehrere Dinge tun.

Stellen Sie zunächst sicher, dass die Wi-Fi-Verbindung ausreichend stark ist. Während Code einige Herausforderungen mit Wi-Fi mindern kann, kann er je nach verwendeter Methode manchmal zu einem verlorenen Programmstatus oder verlorenen Datenpunkten führen.

Zweitens muss das Programm über eine Methode verfügen, um sich von unterbrochenen Wi-Fi-Verbindungen zu erholen, damit Sie den Dienst fortsetzen können.

Mit diesen Schritten können Sie sich auf eine zuverlässigere Konnektivität Ihres Pico W verlassen.