אם הפעלת את 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 שלך יאבד את החיבור שלו. הפתרון היחיד הוא לאפס אותו בצורה קשה על ידי משיכת הכוח.
אם הפרויקט שלך דורש רישום נתונים במשך שעות בכל פעם, אינך רוצה כל הזמן לפקח על הפסקות.
טיפול בשגיאות הוא המפתח להבטיח שהתוכנית שלך תוכל לשרוד באמצעות חיבורים גרועים.
האם שיפור עוצמת האות של 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 שלך אם הוא יתקלקל. טיימרים לכלב השמירה הם טיימרים לספירה לאחור. אם הם מקבלים אות לפני שהספירה לאחור מגיעה לאפס, אז הספירה לאחור מאופסת. עם זאת, אם הספירה לאחור תגיע לאפס, זה יאפס את ה-Pico W.
ב-MicroPython, הקוד הבסיסי הוא כזה:
מ מְכוֹנָה יְבוּא WDT
wdt = WDT(timeout=1000) #פסק זמן הוא ב-ms
wdt.הזנה() #איפוסיםספירה לאחור
אתה יכול לבקר תיעוד WDT של MicroPython ללמוד עוד וגם מסמכי ה-SDK הרשמיים של Pico להנחיית C++.
הפוך את החיבור של Pico W שלך לעמיד בפני פצצות
כדי לתת ל-Pico W שלך את הסיכוי הטוב ביותר לפעול ללא הגבלת זמן על חיבור Wi-Fi, תצטרך לעשות מספר דברים.
ראשית, ודא שחיבור ה-Wi-Fi חזק למדי. בעוד שקוד יכול להפחית אתגרים מסוימים עם Wi-Fi, בהתאם לשיטה שבה נעשה שימוש, זה יכול לפעמים לגרום לאיבוד מצב תוכנית או לאיבוד נקודות נתונים.
שנית, לתוכנית צריכה להיות שיטה כלשהי להתאושש מחיבורי Wi-Fi שנפלו כדי שתוכל לקבל המשך שירות.
עם השלבים האלה, אתה יכול להיות בטוח בקישוריות אמינה יותר מה-Pico W.