Hvis du har kørt din Raspberry Pi Pico W i meget lang tid, er chancerne for, at du til sidst vil bemærke, at dit program ikke kører længere.
En grund til, at programmer mislykkes over en lang periode, involverer Wi-Fi-pålidelighed. Hvis din Wi-Fi bliver upålidelig, er Pico W's første instinkt at gå ned.
Lad os se, hvordan vi kan gøre Pico W mere modstandsdygtig i MicroPython.
Hvad forårsager Wi-Fi-pålidelighed på Pico W?
Din Wi-Fi afbrydes mange gange om dagen. Det er svært at opfatte dette på din telefon eller pc, fordi operativsystemer og software har stået for denne garanterede mangel ved Wi-Fi-netværk.
Med Pico W ville et simpelt script, der forbinder og henter data, gå ned, hvis din Pico W mistede forbindelsen. Den eneste løsning er at nulstille den hårdt ved at trække i strømmen.
Hvis dit projekt kræver logning af data i timevis ad gangen, ønsker du ikke konstant at skulle overvåge udfald.
Fejlhåndtering er nøglen til at sikre, at dit program kan overleve gennem dårlige forbindelser.
Vil en forbedring af Wi-Fi-signalstyrken hjælpe?
Du overvejer måske om du skal bruge et mesh-netværk for at øge signalstyrken. Ja, det vil hjælpe, men ikke i en grad, hvor du kan undgå scenarier, hvor der er et fald i forbindelsen.
I et eksperiment placerede vi en Pico W et sted på anden sal i et hus og en anden Pico W ved siden af Wi-Fi-routeren. Forskellen i udfald er, at enheden på anden sal afbrydes tidligere end Pico W, der var placeret tættere på routeren. Sidstnævnte havde til sidst også en tabt forbindelse, hvilket afspejles af huller i dataindsamlingen.
Desværre, mens forbedring af signalstyrken reducerer problemet, løser det det ikke. Så lad os se på nogle metoder til at skrive mere modstandsdygtig kode.
Tilslut og afbryd softwaremetode
Hvis dit projekt kun kræver envejskommunikation, ville denne metode være perfekt til det. Nogle eksempler ville være temperaturloggere, som skal køres over en længere periode, men kun logger data en gang imellem.
Dette løser problemet med nedbrud, der sker, når din Pico W tror, den er forbundet, men når den forsøger at sende data til et slutpunkt, indser den, at den er offline, og fortsætter derefter med at gå ned.
Nøglen til denne metode involverer en procedure, hvor dit program kører i en uendelig løkke. Inden for denne sløjfe er en funktion, der vil køre efter en bestemt tid er gået. Denne funktion vil forbinde Pico W til Wi-Fi, udføre sit arbejde (f.eks. sende data til en server) og derefter afbryde forbindelsen.
Software Hard Reset
Brug af MicroPythons hårde nulstillingskode kan hjælpe dig med at sikre, at din Pico W kører, selvom du ikke griber ind. Se vores introduktion til MicroPython hvis du har brug for hjælp, så kør denne kommando:
importere maskine
maskine.Nulstil()
Lad os sige, at du mister forbindelsen ved midnat, mens du sover. Hvis du ikke havde en hård nulstilling af softwaren, skulle du manuelt nulstille programmet om morgenen. Dette kan forårsage otte timers tab af datalogning.
Hvis du har en softwarehard reset, som du har sat i din fejlhåndteringskodeblok, nulstiller Pico W sig selv.
Ulempen ved dette er, at ved hård nulstilling vil dit programs tilstand gå tabt, og hvis dit program går ned, vil softwarens hårde nulstilling ikke udløses.
Brug Pico W's indbyggede Watchdog-timer
En hardware watchdog timer er dybest set en enhed, der ville nulstille din Pico W, hvis den fejler. Watchdog-timere er nedtællingstimere. Hvis de får et signal før nedtællingen rammer nul, så nulstilles nedtællingen. Men hvis nedtællingen rammer nul, vil den nulstille Pico W.
I MicroPython er den grundlæggende kode som sådan:
fra maskine importere WDT
wdt = WDT(timeout=1000) #timeout er i ms
wdt.foder() #nulstillingnedtælling
Du kan besøge MicroPythons WDT-dokumentation at lære mere og også Picos officielle SDK-dokumenter til C++-vejledning.
Gør din Pico W's forbindelse bombesikker
For at give din Pico W den bedste chance for at køre på ubestemt tid på en Wi-Fi-forbindelse, skal du gøre flere ting.
For det første skal du sikre dig, at Wi-Fi-forbindelsen er rimelig stærk. Mens kode kan afbøde nogle udfordringer med Wi-Fi, kan det afhængigt af den anvendte metode nogle gange resultere i en tabt programtilstand eller tabte datapunkter.
For det andet skal programmet have en eller anden metode til at gendanne fra tabte Wi-Fi-forbindelser, så du kan få fortsat service.
Med disse trin på plads kan du være sikker på mere pålidelig tilslutning fra din Pico W.