Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Om du körde din Raspberry Pi Pico W under mycket lång tid, är chansen stor att du så småningom skulle märka att ditt program inte körs längre.

En anledning till att program misslyckas under en lång tidsperiod är Wi-Fi-tillförlitlighet. Om ditt Wi-Fi blir opålitligt är Pico W: s första instinkt att krascha.

Låt oss se hur vi kan göra Pico W mer motståndskraftig i MicroPython.

Vad orsakar Wi-Fi-tillförlitlighet på Pico W?

Ditt Wi-Fi kopplas från många gånger om dagen. Det är svårt att uppfatta detta på din telefon eller PC eftersom operativsystem och programvara har svarat för denna garanterade brist hos Wi-Fi-nätverk.

Med Pico W skulle ett enkelt skript som ansluter och hämtar data krascha om din Pico W förlorade sin anslutning. Den enda lösningen är att hård återställa den genom att dra i strömmen.

Om ditt projekt kräver loggningsdata i timmar i taget, vill du inte ständigt behöva övervaka avbrott.

instagram viewer

Felhantering är nyckeln till att säkerställa att ditt program kan överleva genom dåliga anslutningar.

Kommer förbättring av Wi-Fi-signalstyrkan att hjälpa?

Du kanske överväger om du ska använda ett mesh-nätverk för att öka signalstyrkan. Ja, det kommer att hjälpa, men inte i en grad där du kan undvika scenarier där anslutningen minskar.

I ett experiment placerade vi en Pico W på en plats på andra våningen i ett hus och en annan Pico W bredvid Wi-Fi-routern. Skillnaden i utfall är att enheten på andra våningen kopplades ur tidigare än Pico W som låg närmare routern. Den senare hade så småningom en avbruten anslutning också, vilket återspeglas av luckor i datainsamlingen.

Tyvärr, medan förbättrad signalstyrka minskar problemet, löser det det inte. Så låt oss titta på några metoder för att skriva mer motståndskraftig kod.

Anslut och koppla från programvaran

Om ditt projekt bara kräver envägskommunikation skulle den här metoden vara perfekt för det. Några exempel skulle vara temperaturloggrar som behöver köras under en lång tidsperiod men bara loggar data då och då.

Detta löser problemet med krascher som inträffar när din Pico W tror att den är ansluten, men när den försöker skicka data till en slutpunkt inser den att den är offline och fortsätter sedan att krascha.

Nyckeln till denna metod innebär en procedur där ditt program körs i en oändlig loop. Inom denna loop finns en funktion som kommer att köras efter att en viss tid har förflutit. Denna funktion kommer att ansluta Pico W till Wi-Fi, göra sitt jobb (t.ex. skicka data till en server) och sedan koppla från.

Hård återställning av programvara

Att använda MicroPythons hårda återställningskod kan hjälpa dig att säkerställa att din Pico W kommer att köras även om du inte ingriper. Se vår introduktion till MicroPython om du behöver hjälp, kör då detta kommando:

importera maskin
maskin.återställa()

Låt oss säga att du tappar anslutningen vid midnatt medan du sover. Om du inte hade en hård återställning av programvaran, måste du återställa programmet manuellt på morgonen. Detta kan orsaka åtta timmars förlust av dataloggning.

Om du har en hård återställning av programvaran, som du har lagt in i ditt felhanteringskodblock, återställer Pico W sig själv.

Nackdelen med detta är att vid hård återställning kommer ditt programs tillstånd att gå förlorat och om ditt program kraschar utlöses inte mjukvaruåterställningen.

Använd Pico W: s inbyggda Watchdog-timer

En hårdvaruövervakningstimer är i grunden en enhet som skulle återställa din Pico W om den inte fungerar. Watchdog-timers är nedräkningstimer. Om de får en signal innan nedräkningen når noll, återställs nedräkningen. Men om nedräkningen når noll, kommer den att återställa Pico W.

I MicroPython är grundkoden som sådan:

från maskin importera WDT
wdt = WDT(timeout=1000) #timeout är i ms
wdt.utfodra() #återställernedräkning

Du kan besöka MicroPythons WDT-dokumentation att lära sig mer och också Picos officiella SDK-dokument för C++-vägledning.

Gör din Pico W: s anslutning bombsäker

För att ge din Pico W den bästa chansen att köras på obestämd tid på en Wi-Fi-anslutning måste du göra flera saker.

Se först till att Wi-Fi-anslutningen är någorlunda stark. Även om kod kan mildra vissa utmaningar med Wi-Fi, beroende på vilken metod som används, kan det ibland resultera i ett förlorat programtillstånd eller förlorade datapunkter.

För det andra måste programmet ha någon metod för att återställa från tappade Wi-Fi-anslutningar så att du kan få fortsatt service.

Med dessa steg på plats kan du vara säker på mer pålitlig anslutning från din Pico W.