Hvis du kjørte Raspberry Pi Pico W i veldig lang tid, er sjansen stor for at du til slutt vil legge merke til at programmet ditt ikke kjører lenger.
En grunn til at programmer mislykkes over lang tid, er Wi-Fi-pålitelighet. Hvis Wi-Fi-en din blir upålitelig, er Pico Ws første instinkt å krasje.
La oss se hvordan vi kan gjøre Pico W mer spenstig i MicroPython.
Hva forårsaker Wi-Fi-pålitelighet på Pico W?
Wi-Fi kobles fra mange ganger om dagen. Det er vanskelig å oppfatte dette på telefonen eller PC-en din fordi operativsystemer og programvare har stått for denne garanterte mangelen på Wi-Fi-nettverk.
Med Pico W ville et enkelt skript som kobler til og henter data krasje hvis din Pico W mistet tilkoblingen. Den eneste løsningen er å hardt tilbakestille den ved å trekke strømmen.
Hvis prosjektet ditt krever logging av data i timevis av gangen, ønsker du ikke å hele tiden måtte overvåke strømbrudd.
Feilhåndtering er nøkkelen til å sikre at programmet ditt kan overleve gjennom dårlige forbindelser.
Vil forbedring av Wi-Fi-signalstyrken hjelpe?
Du vurderer kanskje om du skal bruke et mesh-nettverk for å øke signalstyrken. Ja, det vil hjelpe, men ikke i en grad der du kan unngå scenarier der det er et fall i forbindelsen.
I ett eksperiment plasserte vi en Pico W på et sted i andre etasje i et hus, og en annen Pico W ved siden av Wi-Fi-ruteren. Forskjellen i utfallet er at enheten i andre etasje koblet fra tidligere enn Pico W plassert nærmere ruteren. Sistnevnte hadde til slutt også en avbrutt forbindelse, noe som gjenspeiles av hull i datainnsamlingen.
Dessverre, mens forbedring av signalstyrken reduserer problemet, løser det det ikke. Så la oss se på noen metoder for å skrive mer spenstig kode.
Koble til og frakoble programvaremetoden
Hvis prosjektet ditt bare krever enveiskommunikasjon, vil denne metoden være perfekt for det. Noen eksempler kan være temperaturloggere som må kjøres over lang tid, men som bare logger data en gang i blant.
Dette løser problemet med krasj som skjer når din Pico W tror den er tilkoblet, men når den prøver å sende data til et endepunkt, innser den at den er frakoblet, og fortsetter deretter med å krasje.
Nøkkelen til denne metoden innebærer en prosedyre der programmet kjører i en uendelig sløyfe. Innenfor denne sløyfen er en funksjon som vil kjøre etter at en bestemt tid har gått. Denne funksjonen vil koble Pico W til Wi-Fi, gjøre jobben sin (f.eks. sende data til en server), og deretter koble fra.
Hard tilbakestilling av programvare
Ved å bruke MicroPythons harde tilbakestillingskode kan du sikre at din Pico W kjører selv om du ikke griper inn. Se vår introduksjon til MicroPython hvis du trenger hjelp, kjør denne kommandoen:
import maskin
maskin.nullstille()
La oss si at du mister forbindelsen ved midnatt mens du sover. Hvis du ikke hadde en hard tilbakestilling av programvaren, måtte du tilbakestille programmet manuelt om morgenen. Dette kan føre til åtte timer med tap av datalogging.
Hvis du har en hard tilbakestilling av programvare, som du har lagt inn i kodeblokken for feilhåndtering, vil Pico W tilbakestille seg selv.
Ulempen med dette er at ved hard tilbakestilling vil programmets tilstand gå tapt, og hvis programmet krasjer, vil ikke hard tilbakestillingen av programvaren utløses.
Bruk Pico Ws innebygde Watchdog-timer
En maskinvare-watchdog-timer er i utgangspunktet en enhet som vil tilbakestille Pico W hvis den ikke fungerer. Watchdog-timere er nedtellingstidtakere. Hvis de får et signal før nedtellingen treffer null, tilbakestilles nedtellingen. Men hvis nedtellingen treffer null, vil den tilbakestille Pico W.
I MicroPython er den grunnleggende koden som sådan:
fra maskin import WDT
wdt = WDT(tidsavbrudd=1000) #timeout er i ms
wdt.mate() #tilbakestillingnedtelling
Du kan besøke MicroPythons WDT-dokumentasjon å lære mer og også Picos offisielle SDK-dokumenter for C++-veiledning.
Gjør Pico W-tilkoblingen bombesikker
For å gi din Pico W den beste sjansen til å kjøre på ubestemt tid på en Wi-Fi-tilkobling, må du gjøre flere ting.
For det første, sørg for at Wi-Fi-tilkoblingen er rimelig sterk. Selv om kode kan dempe noen utfordringer med Wi-Fi, avhengig av metoden som brukes, kan det noen ganger føre til tapt programtilstand eller tapte datapunkter.
For det andre må programmet ha en metode for å gjenopprette fra mistede Wi-Fi-tilkoblinger, slik at du kan få fortsatt tjeneste.
Med disse trinnene på plass kan du være trygg på mer pålitelig tilkobling fra din Pico W.