Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

Si vous avez fait fonctionner votre Raspberry Pi Pico W pendant très longtemps, il y a de fortes chances que vous remarquiez éventuellement que votre programme ne fonctionne plus.

L'une des raisons pour lesquelles les programmes échouent sur une longue période implique la fiabilité du Wi-Fi. Si votre Wi-Fi devient peu fiable, le premier réflexe du Pico W est de planter.

Voyons comment nous pouvons rendre le Pico W plus résistant en MicroPython.

Qu'est-ce qui cause la fiabilité du Wi-Fi sur le Pico W?

Votre Wi-Fi se déconnecte plusieurs fois par jour. Il est difficile de percevoir cela sur votre téléphone ou votre PC car les systèmes d'exploitation et les logiciels ont pris en compte cette lacune garantie des réseaux Wi-Fi.

Avec le Pico W, un simple script qui se connecte et récupère les données planterait si votre Pico W perdait sa connexion. La seule solution est de le réinitialiser en coupant l'alimentation.

Si votre projet nécessite la journalisation des données pendant des heures d'affilée, vous ne souhaitez pas avoir à surveiller en permanence les pannes.

La gestion des erreurs est la clé pour s'assurer que votre programme peut survivre malgré de mauvaises connexions.

L'amélioration de la puissance du signal Wi-Fi vous aidera-t-elle?

Vous envisagez peut-être si vous devez utiliser un réseau maillé pour augmenter la puissance du signal. Oui, cela aidera, mais pas dans une mesure où vous pourrez éviter les scénarios où il y a une baisse de la connexion.

Dans une expérience, nous avons placé un Pico W à un emplacement au deuxième étage d'une maison et un autre Pico W à côté du routeur Wi-Fi. La différence de résultat est que l'appareil au deuxième étage s'est déconnecté plus tôt que le Pico W situé plus près du routeur. Ce dernier a également eu une connexion interrompue, comme en témoignent les lacunes dans la collecte de données.

Malheureusement, bien que l'amélioration de la puissance du signal réduise le problème, elle ne le résout pas. Examinons donc quelques méthodes pour écrire du code plus résilient.

Connecter et déconnecter la méthode logicielle

Si votre projet ne nécessite qu'une communication à sens unique, cette méthode serait parfaite pour cela. Certains exemples seraient les enregistreurs de température qui doivent être exécutés sur une longue période de temps mais qui n'enregistrent les données qu'une fois de temps en temps.

Cela résout le problème des plantages qui se produisent lorsque votre Pico W pense qu'il est connecté, mais lorsqu'il essaie d'envoyer des données à un point de terminaison, il se rend compte qu'il est hors ligne, puis se bloque.

La clé de cette méthode implique une procédure dans laquelle votre programme s'exécute dans une boucle infinie. Dans cette boucle se trouve une fonction qui s'exécutera après qu'un certain laps de temps se soit écoulé. Cette fonction connectera le Pico W au Wi-Fi, fera son travail (par exemple envoyer des données à un serveur), puis se déconnectera.

Réinitialisation matérielle du logiciel

L'utilisation du code de réinitialisation matérielle de MicroPython peut vous aider à vous assurer que votre Pico W fonctionnera même si vous n'intervenez pas. Voir notre introduction à MicroPython si vous avez besoin d'aide, exécutez cette commande :

importer machine
machine.réinitialiser()

Disons que vous perdez la connexion à minuit pendant que vous dormez. Si vous n'aviez pas de réinitialisation matérielle du logiciel, vous devrez réinitialiser manuellement le programme le matin. Cela peut entraîner huit heures de perte d'enregistrement de données.

Si vous avez une réinitialisation matérielle du logiciel, que vous avez mise dans votre bloc de code de gestion des erreurs, le Pico W se réinitialisera de lui-même.

L'inconvénient est que lors d'une réinitialisation matérielle, l'état de votre programme sera perdu et si votre programme plante, la réinitialisation matérielle du logiciel ne se déclenchera pas.

Utiliser la minuterie de surveillance intégrée du Pico W

Une minuterie de surveillance matérielle est essentiellement un appareil qui réinitialisera votre Pico W en cas de dysfonctionnement. Les temporisateurs de surveillance sont des compte à rebours. S'ils reçoivent un signal avant que le compte à rebours n'atteigne zéro, le compte à rebours est réinitialisé. Cependant, si le compte à rebours atteint zéro, il réinitialisera le Pico W.

En MicroPython, le code de base est ainsi :

depuis machine importer WDT
wdt = WDT(timeout=1000) #timeout est en ms
wdt.alimentation() #réinitialisecompte à rebours

Vous pouvez visiter Documentation WDT de MicroPython pour en savoir plus et aussi Documents SDK officiels de Pico pour les conseils C++.

Rendre la connexion de votre Pico W à l'épreuve des bombes

Pour donner à votre Pico W les meilleures chances de fonctionner indéfiniment sur une connexion Wi-Fi, vous devrez faire plusieurs choses.

Tout d'abord, assurez-vous que la connexion Wi-Fi est raisonnablement forte. Bien que le code puisse atténuer certains problèmes avec le Wi-Fi, selon la méthode utilisée, il peut parfois entraîner un état de programme perdu ou des points de données perdus.

Deuxièmement, le programme doit disposer d'une méthode pour récupérer des connexions Wi-Fi interrompues afin que vous puissiez bénéficier d'un service continu.

Avec ces étapes en place, vous pouvez être sûr d'une connectivité plus fiable de votre Pico W.