Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Ако сте работили с вашия Raspberry Pi Pico W много дълго време, шансовете са в крайна сметка да забележите, че програмата ви вече не работи.

Една от причините, поради които програмите се провалят за дълъг период от време, включва надеждността на Wi-Fi. Ако вашият Wi-Fi стане ненадежден, първият инстинкт на Pico W е да се срине.

Нека да видим как можем да направим Pico W по-устойчив в MicroPython.

Какво причинява надеждността на Wi-Fi на Pico W?

Вашият Wi-Fi се прекъсва много пъти на ден. Трудно е да усетите това на вашия телефон или компютър, защото операционните системи и софтуерът са отчели този гарантиран недостатък на Wi-Fi мрежите.

С Pico W прост скрипт, който се свързва и извлича данни, ще се срине, ако вашият Pico W загуби връзката си. Единственото решение е да го рестартирате твърдо, като издърпате захранването.

Ако вашият проект изисква регистриране на данни за часове наред, не искате постоянно да наблюдавате прекъсванията.

instagram viewer

Обработката на грешки е ключът към гарантиране, че вашата програма може да оцелее при лоши връзки.

Ще помогне ли подобряването на силата на Wi-Fi сигнала?

Може би обмисляте дали трябва да използвате мрежова мрежа за увеличаване на силата на сигнала. Да, ще помогне, но не до степен, в която можете да избегнете сценарии, при които има прекъсване на връзката.

В един експеримент поставихме Pico W на място на втория етаж на къща и друг Pico W до Wi-Fi рутера. Разликата в резултата е, че устройството на втория етаж прекъсна връзката по-рано от Pico W, разположен по-близо до рутера. Последният в крайна сметка също прекъсна връзката, което се отразява в пропуски в събирането на данни.

За съжаление, въпреки че подобряването на силата на сигнала намалява проблема, то не го решава. Така че нека да разгледаме някои методи за писане на по-устойчив код.

Софтуерен метод за свързване и изключване

Ако вашият проект изисква само еднопосочна комуникация, този метод би бил идеален за него. Някои примери биха били регистратори на температурата, които трябва да работят за дълъг период от време, но записват данни само от време на време.

Това разрешава проблема със сривовете, които се случват, когато вашият Pico W мисли, че е свързан, но когато се опита да изпрати данни до крайна точка, той осъзнава, че е офлайн, след което продължава да се срива.

Ключът към този метод включва процедура, при която вашата програма работи в безкраен цикъл. В рамките на този цикъл има функция, която ще се изпълнява след изтичане на определен период от време. Тази функция ще свърже Pico W към Wi-Fi, ще свърши работата си (напр. ще изпрати данни към сървър), след което ще прекъсне връзката.

Софтуер Хард Нулиране

Използването на кода за твърдо нулиране на MicroPython може да ви помогне да сте сигурни, че вашият Pico W ще работи дори и да не се намесите. Вижте нашите въведение в MicroPython ако имате нужда от помощ, изпълнете тази команда:

импортиране машина
машина.нулиране()

Да речем, че губите връзка в полунощ, докато спите. Ако не сте имали хардуерно нулиране на софтуера, ще трябва ръчно да нулирате програмата сутринта. Това може да причини осем часа загуба на регистриране на данни.

Ако имате софтуерно хардуерно нулиране, което сте поставили във вашия блок с код за обработка на грешки, Pico W ще се нулира сам.

Недостатъкът на това е, че при хардуерно нулиране състоянието на вашата програма ще се загуби и ако програмата ви се срине, софтуерното хардуерно нулиране няма да се задейства.

Използвайте вградения таймер за наблюдение на Pico W

Хардуерният таймер за наблюдение е основно устройство, което би нулирало вашия Pico W, ако се повреди. Таймерите Watchdog са таймери за обратно отброяване. Ако получат сигнал преди обратното броене да достигне нула, тогава обратното броене се нулира. Ако обаче обратното броене достигне нула, то ще нулира Pico W.

В MicroPython основният код е такъв:

от машина импортиране WDT
wdt = WDT(време за изчакване=1000) #timeout е в ms
wdt.храня() #нулираобратно броене

Можеш да посетиш WDT документация на MicroPython да научите повече и също Официалните SDK документи на Pico за насоки за C++.

Направете връзката на Pico W бомбоустойчива

За да дадете на своя Pico W най-добрия шанс да работи безкрайно с Wi-Fi връзка, ще трябва да направите няколко неща.

Първо се уверете, че Wi-Fi връзката е достатъчно силна. Докато кодът може да смекчи някои предизвикателства с Wi-Fi, в зависимост от използвания метод, понякога може да доведе до загубено състояние на програмата или загубени точки от данни.

Второ, програмата трябва да има някакъв метод за възстановяване от прекъснати Wi-Fi връзки, така че да можете да продължите услугата.

С тези стъпки можете да сте сигурни в по-надеждна свързаност от вашия Pico W.