Raspberry Pi Pico W'nizi çok uzun süre çalıştırdıysanız, muhtemelen programınızın artık çalışmadığını fark edeceksiniz.
Programların uzun süre başarısız olmasının bir nedeni, Wi-Fi güvenilirliğidir. Wi-Fi'niz güvenilmez hale gelirse, Pico W'nin ilk içgüdüsü çökmektir.
MicroPython'da Pico W'yi nasıl daha dirençli hale getirebileceğimizi görelim.
Pico W'de Wi-Fi Güvenilirliğinin Sebebi Nedir?
Wi-Fi bağlantınız günde birçok kez kesiliyor. Bunu telefonunuzda veya PC'nizde algılamak zordur çünkü işletim sistemleri ve yazılımlar, Wi-Fi ağlarının bu garantili eksikliğini açıklamıştır.
Pico W ile, bağlantı kuran ve verileri getiren basit bir komut dosyası, Pico W'nizin bağlantısını kaybetmesi durumunda çökebilir. Tek çözüm gücü çekerek hard reset atmak.
Projeniz bir defada saatlerce veri kaydetmeyi gerektiriyorsa, sürekli olarak kesintileri izlemek zorunda kalmak istemezsiniz.
Hata işleme, programınızın zayıf bağlantılarla ayakta kalabilmesini sağlamanın anahtarıdır.
Wi-Fi Sinyal Gücünün İyileştirilmesi Yardımcı Olacak mı?
Düşünüyor olabilirsin bir ağ ağı kullanmanız gerekip gerekmediği sinyal gücünü artırmak için. Evet, yardımcı olacaktır, ancak bağlantıda bir düşüş olduğu senaryolardan kaçınabileceğiniz bir dereceye kadar değil.
Bir deneyde, bir evin ikinci katındaki bir konuma bir Pico W ve Wi-Fi yönlendiricinin yanına başka bir Pico W yerleştirdik. Sonuç farkı, ikinci kattaki cihazın bağlantısının yönlendiriciye daha yakın konumdaki Pico W'den daha önce kesilmesidir. Veri toplamadaki boşluklardan da anlaşılacağı gibi, ikincisi de sonunda bir kopmuş bağlantıya sahipti.
Ne yazık ki, sinyal gücünü artırmak sorunu azaltırken, çözmez. O halde, daha esnek kod yazmak için bazı yöntemlere bakalım.
Bağlan ve Bağlantıyı Kes Yazılım Yöntemi
Projeniz yalnızca tek yönlü iletişim gerektiriyorsa, bu yöntem onun için mükemmel olacaktır. Bazı örnekler, uzun bir süre boyunca çalıştırılması gereken ancak verileri yalnızca arada bir günlüğe kaydeden sıcaklık kaydedicileri olabilir.
Bu, Pico W'nizin bağlı olduğunu düşündüğü, ancak bir uç noktaya veri göndermeye çalıştığında çevrimdışı olduğunu fark ettiği ve çökmeye devam ettiği sırada meydana gelen çökme sorununu çözer.
Bu yöntemin anahtarı, programınızın sonsuz bir döngüde çalıştığı bir prosedürü içerir. Bu döngü içinde, belirli bir süre geçtikten sonra çalışacak bir işlev vardır. Bu işlev, Pico W'yi Wi-Fi'ye bağlayacak, işini yapacak (örneğin, bir sunucuya veri gönderecek), ardından bağlantıyı kesecektir.
Yazılım Sert Sıfırlaması
MicroPython'un donanımdan sıfırlama kodunu kullanmak, müdahale etmeseniz bile Pico W'nizin çalışacağından emin olmanıza yardımcı olabilir. bizim görmek MicroPython'a giriş yardıma ihtiyacınız varsa, şu komutu çalıştırın:
içe aktarmak makine
makine.Sıfırla()
Diyelim ki gece yarısı uyurken bağlantınız koptu. Yazılım donanım sıfırlaması yapmadıysanız, sabah programı manuel olarak sıfırlamanız gerekir. Bu, sekiz saatlik veri kaydı kaybına neden olabilir.
Hata işleme kod bloğunuza koyduğunuz bir yazılım donanım sıfırlamanız varsa, Pico W kendini sıfırlayacaktır.
Bunun dezavantajı, donanımdan sıfırlamanın ardından programınızın durumunun kaybolacak olması ve programınız çökerse yazılım donanım sıfırlamasının tetiklenmemesidir.
Pico W'nin Dahili Watchdog Zamanlayıcısını Kullanın
Bir donanım izleme zamanlayıcısı, temel olarak, arızalanması durumunda Pico W'nizi sıfırlayacak bir cihazdır. Watchdog zamanlayıcıları, geri sayım zamanlayıcılarıdır. Geri sayım sıfıra gelmeden bir sinyal alırlarsa, geri sayım sıfırlanır. Ancak, geri sayım sıfıra gelirse Pico W sıfırlanır.
MicroPython'da temel kod şu şekildedir:
itibaren makine içe aktarmak WDT
wdt = WDT(zaman aşımı=1000) #zaman aşımı ms cinsindendir
wdt.beslemek() #sıfırlamalargeri sayım
Ziyaret edebilirsin MicroPython'un WDT belgeleri daha fazlasını öğrenmek ve ayrıca C++ rehberliği için Pico'nun resmi SDK belgeleri.
Pico W'nizin Bağlantısını Bombaya Dayanıklı Hale Getirin
Pico W'nize bir Wi-Fi bağlantısında süresiz olarak çalışması için en iyi şansı vermek için birden çok şey yapmanız gerekecek.
İlk olarak, Wi-Fi bağlantısının makul derecede güçlü olduğundan emin olun. Kod, kullanılan yönteme bağlı olarak Wi-Fi ile ilgili bazı zorlukları hafifletebilse de, bazen program durumunun veya veri noktalarının kaybolmasına neden olabilir.
İkinci olarak, hizmete devam edebilmeniz için programın kesilen Wi-Fi bağlantılarını kurtarmak için bir yöntemi olması gerekir.
Bu adımlar uygulandığında, Pico W'nizden daha güvenilir bağlantı elde edeceğinizden emin olabilirsiniz.