Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του 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 θα επαναφέρει μόνο του.

Το μειονέκτημα σε αυτό είναι ότι κατά την σκληρή επαναφορά, η κατάσταση του προγράμματός σας θα χαθεί και εάν το πρόγραμμά σας διακοπεί, η σκληρή επαναφορά του λογισμικού δεν θα ενεργοποιηθεί.

Χρησιμοποιήστε το ενσωματωμένο χρονόμετρο Watchdog του Pico W

Ο χρονοδιακόπτης παρακολούθησης υλικού είναι βασικά μια συσκευή που θα επαναφέρει το Pico W σε περίπτωση δυσλειτουργίας. Τα χρονόμετρα Watchdog είναι χρονόμετρα αντίστροφης μέτρησης. Εάν λάβουν ένα σήμα πριν η αντίστροφη μέτρηση φτάσει στο μηδέν, τότε η αντίστροφη μέτρηση επαναφέρεται. Ωστόσο, εάν η αντίστροφη μέτρηση φτάσει στο μηδέν, τότε θα επαναφέρει το Pico W.

Στο MicroPython, ο βασικός κώδικας είναι ως εξής:

από μηχανή εισαγωγή WDT
wdt = WDT(timeout=1000) Το #timeout είναι σε ms
wdt.ταίζω() #επαναφέρεταιαντίστροφη μέτρηση

Μπορείτε να επισκεφθείτε Τεκμηρίωση WDT της MicroPython για να μάθετε περισσότερα και επίσης Τα επίσημα έγγραφα SDK του Pico για καθοδήγηση στη C++.

Κάντε το Pico W's Connection σας αντιβομβιστικό

Για να δώσετε στο Pico W σας την καλύτερη ευκαιρία να λειτουργεί επ' αόριστον σε σύνδεση Wi-Fi, θα χρειαστεί να κάνετε πολλά πράγματα.

Αρχικά, βεβαιωθείτε ότι η σύνδεση Wi-Fi είναι αρκετά ισχυρή. Ενώ ο κώδικας μπορεί να μετριάσει ορισμένες προκλήσεις με το Wi-Fi, ανάλογα με τη μέθοδο που χρησιμοποιείται, μερικές φορές μπορεί να οδηγήσει σε απώλεια κατάστασης προγράμματος ή απώλεια σημείων δεδομένων.

Δεύτερον, το πρόγραμμα πρέπει να έχει κάποια μέθοδο ανάκτησης από τις διακοπείσες συνδέσεις Wi-Fi, ώστε να μπορείτε να συνεχίσετε την υπηρεσία.

Με αυτά τα βήματα, μπορείτε να είστε σίγουροι για πιο αξιόπιστη συνδεσιμότητα από το Pico W.