Ha nagyon hosszú ideig futtatta a Raspberry Pi Pico W-t, akkor valószínű, hogy végül észreveszi, hogy a program már nem fut.
Az egyik ok, amiért a programok hosszú ideig meghiúsulnak, a Wi-Fi megbízhatósága. Ha a Wi-Fi megbízhatatlanná válik, a Pico W első ösztöne az, hogy összeomlik.
Lássuk, hogyan tehetjük a Pico W-t ellenállóbbá a MicroPythonban.
Mi okozza a Wi-Fi megbízhatóságát a Pico W-n?
Wi-Fi-je naponta többször megszakad. Nehéz ezt észrevenni a telefonon vagy a számítógépen, mert az operációs rendszerek és a szoftverek felelősek a Wi-Fi hálózatok ezen garantált hiányosságáért.
A Pico W-vel egy egyszerű szkript, amely összeköti és lekéri az adatokat, összeomlik, ha a Pico W megszakad a kapcsolata. Az egyetlen megoldás az, hogy a tápfeszültség meghúzásával keményen visszaállítod.
Ha a projektje órákon át naplózza az adatokat, akkor nem szeretné, hogy folyamatosan figyelnie kelljen a kimaradásokat.
A hibakezelés a kulcsa annak biztosításában, hogy a program túlélje a rossz kapcsolatokat.
Segít a Wi-Fi jelerősség javítása?
Lehet, hogy fontolóra veszi hogy használjon-e mesh hálózatot a jel erősségének növelésére. Igen, ez segít, de nem olyan mértékben, hogy elkerülje azokat a forgatókönyveket, amelyekben a kapcsolat megszakad.
Az egyik kísérletben egy Pico W-t helyeztünk el egy ház második emeletén, egy másik Pico W-t pedig a Wi-Fi router mellett. Az eredményben az a különbség, hogy a második emeleten lévő eszköz korábban lekapcsolódott, mint a routerhez közelebb lévő Pico W. Az utóbbiak kapcsolata végül is megszakadt, amit az adatgyűjtés hiányosságai is tükröznek.
Sajnos a jelerősség javítása csökkenti a problémát, de nem oldja meg. Nézzünk tehát néhány módszert a rugalmasabb kód írására.
Szoftver csatlakoztatása és leválasztása
Ha a projektje csak egyirányú kommunikációt igényel, ez a módszer tökéletes lesz rá. Néhány példa a hőmérséklet-naplózók, amelyeket hosszú ideig kell futtatni, de csak időnként naplóznak adatokat.
Ez megoldja az összeomlások problémáját, amelyek akkor fordulnak elő, amikor a Pico W úgy gondolja, hogy csatlakoztatva van, de amikor megpróbál adatokat küldeni egy végponthoz, felismeri, hogy offline állapotban van, majd összeomlik.
Ennek a módszernek a kulcsa egy olyan eljárás, amelyben a program egy végtelen ciklusban fut. Ezen a hurkon belül van egy függvény, amely meghatározott idő elteltével fut le. Ez a funkció csatlakoztatja a Pico W-t a Wi-Fi-hez, elvégzi a feladatát (például adatokat küld egy szerverre), majd megszakítja a kapcsolatot.
Szoftver Hard Reset
A MicroPython hard reset kódjának használatával biztosíthatja, hogy a Pico W akkor is működjön, ha nem avatkozik be. Lásd a mi bevezetés a MicroPythonba ha segítségre van szüksége, futtassa ezt a parancsot:
import gép
gép.Visszaállítás()
Tegyük fel, hogy éjfélkor, miközben alszik, megszakad a kapcsolat. Ha nem volt szoftver hard reset, akkor reggel manuálisan vissza kell állítania a programot. Ez nyolc órányi adatvesztést okozhat.
Ha van szoftveres hard reset-je, amelyet a hibakezelő kódblokkba helyezett, a Pico W önmagát is visszaállítja.
Ennek az a hátránya, hogy hard resetkor a program állapota elvész, és ha a program összeomlik, a szoftver hardveres visszaállítása nem indul el.
Használja a Pico W beépített Watchdog időzítőjét
A hardveres watchdog időzítő alapvetően egy olyan eszköz, amely visszaállítja a Pico W-t, ha meghibásodik. A Watchdog időzítők visszaszámláló időzítők. Ha jelet kapnak, mielőtt a visszaszámlálás eléri a nullát, akkor a visszaszámlálás visszaáll. Ha azonban a visszaszámlálás eléri a nullát, akkor visszaállítja a Pico W-t.
A MicroPythonban az alapkód a következő:
tól től gép import WDT
wdt = WDT(időtúllépés=1000) #timeout ms-ban van megadva
wdt.etetés() #resetvisszaszámlálás
Meglátogathatod A MicroPython WDT dokumentációja többet megtudni és azt is A Pico hivatalos SDK-dokumentumai a C++ útmutatóhoz.
Tedd bombabiztossá Pico W csatlakozóját
Ahhoz, hogy a Pico W a legjobb esélyt adhassa arra, hogy korlátlan ideig működjön Wi-Fi kapcsolaton, több dolgot kell tennie.
Először is győződjön meg arról, hogy a Wi-Fi kapcsolat kellően erős. Míg a kód enyhíthet bizonyos Wi-Fi-vel kapcsolatos kihívásokat, az alkalmazott módszertől függően időnként a program állapotának elvesztését vagy adatpontok elvesztését eredményezheti.
Másodszor, a programnak rendelkeznie kell valamilyen módszerrel a megszakadt Wi-Fi-kapcsolatok helyreállítására, hogy folyamatos szolgáltatást kaphasson.
Ha ezeket a lépéseket végrehajtja, biztos lehet benne, hogy Pico W készüléke megbízhatóbb kapcsolatot létesít.