Raspberry Pi Pico W pour se souvenir d’arroser les plantes

Comment développer un système basé sur le Raspberry Pi Pico W qui informe l’utilisateur lorsqu’une plante doit être arrosée. Un exemple de code MicroPython à personnaliser selon les besoins et les exigences de chacun.

Le Raspberry Pi Pico W est une carte de développement peu coûteuse qui intègre également la connectivité sans fil Wifi, contrairement au modèle précédent. La lettre « W » fait précisément référence à la présence de cette fonction utile. L’appareil est basé sur le microcontrôleur RP2040, développé par la Fondation Raspberry Pi.

L’un des exemples les plus classiques d’utilisation d’un produit tel que le Raspberry Pi Pico W est la création d’un dispositif capable de détecter l’humidité du sol et de signaler à l’utilisateur qu’elle est inférieure à une valeur seuil déterminée. Les créateurs peuvent alors utiliser le Raspberry Pi Pico W pour créer un système capable de se rappeler quand arroser les plantes, ce qui est particulièrement utile en été.

Fonctionnement des capteurs d’humidité du sol

Les capteurs d’humidité du sol, également appelés sondes d’humidité du sol, utilisent généralement le principe de la mesure capacitive. Ces capteurs sont constitués de deux électrodes ou plaques conductrices séparées par un diélectrique. Le sol humide agit comme un conducteur électrolytique, le sol sec étant moins conducteur.

Le capteur convertit le signal de changement de la capacité électrique du sol en un signal électrique proportionnel à la valeur d’humidité détectée. Ce dernier peut ensuite être affiché sur un écran ou transmis à un système de surveillance ou de contrôle. L’idée est de connecter le capteur aux broches GPIO (General Purpose Input/Output) de la carte Raspberry Pi Pico W, puis de développer un code simple pour gérer les valeurs au fur et à mesure de leur acquisition.

Raspberry Pi Pico W pour ne pas oublier d’arroser les plantes, surtout en été

Raspberry Pi Pico W pour se souvenir d'arroser les plantes

La conception d’un système permettant de détecter l’humidité du sol et d’informer l’utilisateur lorsqu’il est nécessaire d’arroser les plantes est l’une des plus « populaires » dans le domaine du Raspberry. Sur le site web de la fondation, des exemples sont publiés pour réaliser le système, qui peut être pleinement attribué au monde de l’Internet des objets (IoT).

Outre la carte Raspberry Pi, il est possible d’utiliser une demi-planche ou une planche à pain pour tester le projet : il s’agit d’un outil permettant de créer des prototypes et d’expérimenter rapidement des circuits électroniques sans avoir à les souder de manière permanente. Vous avez également besoin du capteur d’humidité du sol, qui est également acheté séparément et qui est ensuite connecté aux broches GPIO du Raspberry Pico W.

La connexion est assez simple : vous avez besoin des deux broches d’alimentation 3V3 et GND tandis qu’un troisième fil doit être connecté à la broche GP26 pour transférer la valeur lue par le capteur à la carte. Vous pouvez également, comme le montre cette vidéo, utiliser un morceau d’écorce de pin ou de sapin comme capteur.

MicroPython et Thonny : communiquer avec le capteur du Raspberry Pi Pico W via le code

Le Raspberry Pi Pico W prend en charge plusieurs langages de programmation, notamment MicroPython et C/C++. Grâce à ces caractéristiques, la carte convient aussi bien aux débutants qu’aux développeurs expérimentés.

MicroPython est une version du langage de programmation Python optimisée pour les microcontrôleurs et les plateformes embarquées. Il s’agit d’une implémentation légère de Python qui offre un environnement de développement simple et intuitif pour la programmation de dispositifs de faible puissance. MicroPython peut être téléchargé sur le site web de Raspberry.

En maintenant enfoncé le bouton BOOTSEL de la carte Raspberry Pi Pico W, puis en la connectant au PC via un câble USB, le bouton doit être relâché dès que la carte est reconnue par le système d’exploitation (périphérique de stockage de masse appelé RPI-RP2). En glissant le fichier UF2 de MicroPython sur l’unité de stockage correspondant à la carte Raspberry, cette dernière démarre en acceptant du code Python en entrée.

Pour écrire du code MicroPython, il est nécessaire d’utiliser un éditeur. L’éditeur de base, qui est aussi le plus simple que Raspberry recommande, s’appelle Thonny. Après avoir installé et démarré le programme, il faut aller dans le menu Outils, Options puis cliquer sur l’onglet Interprète. Ici, il faut sélectionner l’entrée MicroPython (Raspberry Pi Pico).

Écriture du code pour le système de détection d’humidité

Un simple code MicroPython tel que le suivant définit deux fonctions : l’une (connect_wifi) est utilisée pour établir la connexion de la carte Raspberry Pi Pico W avec le réseau Wifi local ; l’autre (send_email) se charge d’envoyer un courrier électronique à l’utilisateur lorsque l’humidité tombe en dessous de la valeur seuil fixée.

Évidemment, il n’y a pas de limites lorsqu’il s’agit d’envoyer des notifications : elles peuvent être envoyées, par exemple, via Telegram (en utilisant son API) ou en utilisant AWS et le protocole MQTT (Message Queue Telemetry Transport), largement adopté par les appareils IoT modernes. ci-joint le code souce pour faire l’extraction veuillez utilisé le mot de passe : journaldutech.

La dernière partie du code active une boucle while infinie qui se charge de lire la valeur de l’humidité du sol après une heure (3600 secondes). Lorsque la valeur lue est inférieure à la valeur seuil, le code MicroPython ainsi développé prévoit l’envoi d’un message électronique.

Bien entendu, toutes les valeurs définies dans la partie initiale doivent être personnalisées en spécifiant les données d’accès au réseau Wifi local et les paramètres d’envoi de courriers électroniques via un serveur SMTP.

En stockant le code nommé main.py sur la carte Raspberry Pi Pico W, la routine simple est chargée à chaque fois que la carte est éteinte puis rallumée.

Enfin, en suivant les instructions du document d’assistance Powering your Pico, il est possible d’évaluer l’alimentation par batterie du système afin qu’il ne soit pas connecté à la prise murale via un câble USB.