Jei savo Raspberry Pi Pico W naudojote labai ilgą laiką, tikėtina, kad galiausiai pastebėsite, kad jūsų programa nebeveikia.
Viena iš priežasčių, kodėl programos ilgą laiką sugenda, yra „Wi-Fi“ patikimumas. Jei jūsų „Wi-Fi“ ryšys tampa nepatikimas, „Pico W“ pirmasis instinktas yra sudužti.
Pažiūrėkime, kaip „MicroPython“ galime padaryti „Pico W“ atsparesnį.
Kas lemia „Wi-Fi“ patikimumą „Pico W“?
Jūsų „Wi-Fi“ ryšys atjungiamas daug kartų per dieną. Sunku tai pastebėti telefone ar kompiuteryje, nes operacinės sistemos ir programinė įranga paaiškino šį garantuotą „Wi-Fi“ tinklų trūkumą.
Naudojant „Pico W“, paprastas scenarijus, kuris jungia ir gauna duomenis, sugestų, jei „Pico W“ prarastų ryšį. Vienintelis sprendimas yra jį iš naujo nustatyti ištraukiant maitinimą.
Jei jūsų projektui reikia registruoti duomenis valandų valandas, nenorite nuolat stebėti gedimų.
Klaidų tvarkymas yra raktas į tai, kad jūsų programa gali išlikti dėl prastų ryšių.
Ar padės pagerinti „Wi-Fi“ signalo stiprumą?
Galbūt svarstote ar turėtumėte naudoti tinklinį tinklą signalo stiprumui padidinti. Taip, tai padės, bet ne tiek, kad išvengtumėte scenarijų, kai ryšys nutrūksta.
Vieno eksperimento metu „Pico W“ įdėjome į vietą antrame namo aukšte, o kitą „Pico W“ – šalia „Wi-Fi“ maršrutizatoriaus. Rezultatų skirtumas yra tas, kad antrame aukšte esantis įrenginys atsijungė anksčiau nei Pico W, esantis arčiau maršrutizatoriaus. Pastarasis galiausiai taip pat nutrūko, o tai rodo duomenų rinkimo spragos.
Deja, nors pagerinus signalo stiprumą problema sumažėja, ji jos neišsprendžia. Taigi pažvelkime į keletą būdų, kaip parašyti atsparesnį kodą.
Programinės įrangos prijungimo ir atjungimo metodas
Jei jūsų projektui reikalingas tik vienpusis bendravimas, šis metodas jam puikiai tiktų. Kai kurie pavyzdžiai būtų temperatūros registratoriai, kuriuos reikia paleisti ilgą laiką, tačiau jie registruoja duomenis tik kartą.
Tai išsprendžia gedimų problemą, kai jūsų Pico W mano, kad yra prijungtas, bet kai jis bando siųsti duomenis į galutinį tašką, jis supranta, kad yra neprisijungęs, ir tada sugenda.
Šio metodo raktas apima procedūrą, kai jūsų programa veikia begaliniu ciklu. Šioje kilpoje yra funkcija, kuri veiks praėjus tam tikram laikui. Ši funkcija prijungs „Pico W“ prie „Wi-Fi“, atliks savo darbą (pvz., išsiųs duomenis į serverį), tada atsijungs.
Programinės įrangos standusis nustatymas iš naujo
Naudodami „MicroPython“ standųjį atstatymo kodą galite užtikrinti, kad „Pico W“ veiks, net jei nesikišite. Žiūrėkite mūsų įvadas į MicroPython jei reikia pagalbos, paleiskite šią komandą:
importuoti mašina
mašina.atstatyti iš naujo()
Tarkime, kad vidurnaktį, kai miegate, nutrūksta ryšys. Jei neturėjote programinės įrangos iš naujo, ryte turėsite rankiniu būdu iš naujo nustatyti programą. Tai gali sukelti aštuonių valandų duomenų registravimo praradimą.
Jei turite programinės įrangos standųjį atstatymą, kurį įdėjote į klaidų apdorojimo kodų bloką, Pico W pats nusistatys iš naujo.
Neigiama yra tai, kad atstačius programos būseną bus prarasta, o jei programa sugenda, programinės įrangos standusis nustatymas iš naujo neįsijungia.
Naudokite „Pico W“ įmontuotą „Watchdog“ laikmatį
Aparatūros stebėjimo laikmatis iš esmės yra įrenginys, kuris iš naujo nustatytų „Pico W“, jei jis sugestų. Watchdog laikmačiai yra atgalinės atskaitos laikmačiai. Jei jie gauna signalą, kol atgalinis skaičiavimas nepasiekia nulio, atgalinis skaičiavimas nustatomas iš naujo. Tačiau, jei atgalinis skaičiavimas pasiekia nulį, Pico W bus nustatytas iš naujo.
„MicroPython“ pagrindinis kodas yra toks:
iš mašina importuoti WDT
wdt = WDT(timeout=1000) #timeout yra ms
wdt.maitinti() #iš naujo nustatoatgalinis skaičiavimas
Tu gali aplankyti „MicroPython“ WDT dokumentacija sužinoti daugiau ir taip pat „Pico“ oficialūs SDK dokumentai, skirti C++ gairėms.
Padarykite savo Pico W jungtį atsparų bomboms
Kad „Pico W“ turėtų geriausią galimybę neribotą laiką veikti naudojant „Wi-Fi“ ryšį, turėsite atlikti kelis veiksmus.
Pirmiausia įsitikinkite, kad Wi-Fi ryšys yra pakankamai stiprus. Nors kodas gali sušvelninti kai kuriuos „Wi-Fi“ iššūkius, priklausomai nuo naudojamo metodo, kartais gali būti prarasta programos būsena arba prarasti duomenų taškai.
Antra, programa turi turėti tam tikrą būdą, kaip atkurti nutrūkusį „Wi-Fi“ ryšį, kad galėtumėte tęsti paslaugą.
Atlikę šiuos veiksmus, galite būti tikri, kad „Pico W“ ryšys bus patikimesnis.