Publié le 10 février 2022 - par

Raspberry Pi Pico Starter Kit : Une station de mesure climatique

En ces temps de pénurie du Raspberry Pi classique, le Raspberry Pi Pico est une alternative pour les makers qui souhaitent s’initier à la programmation et à la réalisation de projets utiles. J’avais l’idée de cette « pendule capteur d’ambiance » depuis un moment. Affichant l’heure, elle devait aussi me donner des informations sur la température, l’humidité et la pression atmosphérique. C’est du classique mais c’est un bon projet de début.

Le Starter Kit Pico de Kubii pour réaliser une station de mesure météorologique

*Comme me l’a fait remarquer Didier dans les commentaires, il s’agit ici d’une mesure météorologique et pas climatique (la période est bien plus longue dans ce cas). J’ai laissé le titre car il était déjà enregistré sur les moteurs de recherche.

Je suis parti de composants trouvés chez Kubii et en particulier leur Starter Kit Pico qui fournit une base pour la réalisation de nombreux projets avec le Raspberry Pi PICO. Il comprend

  • Le microcontrôleur Raspberry Pi PICO
  • Une carte d’extension Dual Expander avec double GPIO
  • Un boîtier acrylique transparent
  • Un câble officiel USB vers Micro-USB de 1m de long
  • Deux blocs de 20 pins à souder pour le GPIO du Raspberry Pi PICO

Le kit inclut un boîtier de protection acrylique pour le Pico qui le met à l’abri des contacts inopinés avec des objets métalliques.

Pour réaliser mon projet j’ai ajouté

  • Un module capteur Température, humidité et pression BME680 (22,95€)
  • Une horloge temps réel RV3028 (14,95€)
  • Un écran Pico Display 1,14″ LCD pour afficher les informations (15,79€)

Le kit pour démarrer coûte seulement 18€. Vous pourrez déjà l’utiliser pour prendre en main le Raspberry Pi Pico. Le matériel que j’ai ajouté coûte près de 54€.

Le Starter Kit Raspberry Pi Pico en détails

Le kit arrive dans une boîte en carton qui contient l’ensemble du matériel :

  • La carte support pour le Pico + deux extensions avec ses pieds en silicone adhésif
  • Un Raspberry Pi Pico avec ses deux rangées de connecteurs qu’il faudra souder
  • Un boîtier en acrilyque protégé par des adhésifs en papier avec les entretoises, vis, pouqqoir et un tournevis adapté
  • Un câble USB => micro USB officiel du plus beau rose.

Les cartes sont livrées bien protégées dans des emballages correctement identifiés.

A l’arrière du sachet de l’écran on trouve sont branchement (pinout). Ca ne sert pas dans notre cas avec la carte support. On se contentera de le mettre sur le support. Par contre si vous souhaitez réutiliser l’écran avec un autre matériel ce schéma sera intéressant. On le retrouve en ligne.

L’écran est protégé par un fil que vous enlèverez pour l’utilisation, et les deux cartes Pimoroni Breakout sont livrées non montées. Telles quelles vous les utilisez dans les connecteurs breakout, sinon vous pouvez souder des connecteurs mâles ou femelles. Ici j’ai choisi de monter les picots mâles pour utiliser une carte breadboard. Il existe une carte Breakout Garden pour le Raspberry Pi Pico que Kubii ne distribue pas pour le moment.

La pendule multifonctions

Pour développer ce projet j’utiliserai également un Raspberry Pi 400 avec Thonny IDE pour développer les programmes en micropython. Vous trouverez les instructions pour utiliser Thonny sur Raspberry Pi 400 avec le PICO dans cet article.

Souder les broches sur le Raspberry Pi Pico

J’ai choisi de souder les broches sous la carte Pico pour pouvoir l’utiliser sur une carte breadboard, plus pratique pour les tests ou sur la carte Starter Kit de Kubii. Pour cette opération il va falloir souder les broches. Si vous ne l’avez jamais fait, je vous conseille de vous faire aider, ou de lire mon ebook gratuit sur la soudure et de vous entraîner un peu avant de vous lancer. J’ai également montré comment souder des picots sur cette vidéo de la carte NadHAT de Garatronic.

Je commence par planter les deux rangées de 20 broches dans la breadboard au bon écartement (3ème rangée de trous de chaque côté du centre). C’est le côté long qui est enfoncé dans la breadboard. Vérifiez bien que les pinoches sont parfaitement enfoncées et le plus parfaitement possible perpendiculaires à la breadboard.

 

Mettez la carte PICO en place sur les pinoches. Normalement si les pins sont bien positionnées ça force à peine pour rentrer.

Vous pouvez maintenant manier le fer à souder pour souder proprement les deux barrettes de pinoches sur la carte. Prenez votre temps, il faut que ce soit bien fait pour assurer une longue durée de vie à vos soudures

Installer le boîtier acrylique

Enlevez les protections sur les plaques en acrylique. Dans le sachet vous trouvez des vis, des entretoises, un bouton pour le reset et un mini tournevis.

Mettez la petite plaque sous la carte Pico, l’entretoise vient au dessus de la carte et la vis dessous.

Posez les 4 vis et entretoises, serrez pour que ça ne bouge plus.

Retournez la carte, posez la grande plaque transparente après avoir positionné la bouton

Mettez les 4 vis de dessus. J’ai bien aimé qu’il reste quelques pièces en rab… on est parfois maladroit 😉

Vous pouvez mettre en place le Pico (au centre) puis l’écran. Enfin, branchez la prise USB.

Installer la dernière version de circuitpython

L’utilisation des modules BME680, RV3028 et Pico Display nécessite l’installation d’une version adaptée de micropython, qui contient les bibliothèques nécessaires au fonctionnement de ces modules. L’installation de cette version de micropython sur le Pico est expliquée dans cet article. Vous trouverez plus de détails pour l’utilisation de cet écran dans cet article, en particulier j’y explique comment afficher des images sur cet écran.

Rendez vous sur la page des publications de micropython par Pimoroni. Téléchargez la dernière version en date (la 1.18.0 quand j’écris ces lignes). Installez la sur le Pico en faisant un simple glisser déplacer après avoir connecté le Pico en appuyant sur le bouton BOOTSEL.

Après redémarrage vous devez voir la version correspondante  de micropython dans Thonny.

Votre Raspberry Pio Pico est prêt à utiliser les périphériques prévus pour la pendule multifonctions.

Ecran Pico Display

Pour cet écran Pico Display vous trouverez en ligne des exemples et la référence des commandes.

Ce programme test_pico_display.py affiche du texte à l’écran, allume la LED RVB en bleu. La LED devient verte quand vous appuyez sur le bouton A.

Vous devez obtenir ce résultat :

Je le précise comme je le fais souvent dans mes articles, la bonne démarche consiste à progresser pas à pas dans l’installation et les tests. Ne pas passer à l’étape suivante si l’étape en cours ne fonctionne pas ou pas bien. Si vous montez tout et que ça ne fonctionne pas, vous ne saurez pas d’où vient le défaut et souvent il faut repartir de zéro…

Montage des broches sur les cartes BME860 et RV3028

J’ai choisi d’utiliser les cartes d’extension sur une breadboard, je les équiperai donc des connecteurs mâles.

Comme pour le Pico, j’utilise la plaque de prototypage comme support pour souder mes pinoches sur les cartes.

Mesures avec le BME680

Faites toujours les branchement hors tension ! Déconnectez la prise micro USB du Raspberry Pi PICO quand vous modifiez le câblage.

Voici le câblage à réaliser. Il n’y a que 4 fils à câbler

Vérifier la présence de la carte

Pour vérifier la présence de la carte, il faut s’assurer qu’on a un composant présent à l’adresse 0x76 (en hexadécimal) ou 118 en décimal. c’est ce que permet ce programme scan_i2c.py

Si tout se passe bien, vous devez obtenir ceci :

Cette réponse montre que la carte BME680 a bien été détectée sur le bus (à l’adresse 118).

Quelques mesures avec le BME680

Dans les programmes joints à cet article, vous trouverez le programme test_BME680.py lit les données du BME680 et les affiche sur la console dans Thonny :

A l’exécution vous devez obtenir ce résultat.

Si tout va bien vous pouvez passer à la suite

Utiliser le RV3028

Connectez l’horloge temps réel RV3028. Comme on est sur un bus I2C, le branchement se fait tout simplement en parallèle : Les alimentations et SDA SCL sont reliées ensemble. INT n’est pas connecté.

Vérifier la présence de la carte

Le programme scan_i2c.py vu un peu plus haut permet de vérifier si la carte est bien détectée.

C’est bon la carte est bien détectée à l’adresse 82. On peut continuer.

Programme de Mise à l’heure

Commencez par installer la bibliothèque rv3028 : rv3028_rtc_FR.py on va en avoir besoin pour mettre la pendule à l’heure. Vous en avez une copie dans le package de programmes mais référez vous aussi à la source sur github par x10dit. Ouvrez la bibliothèque dans Thonny et enregistrez la sur le PICO.
A priori la fonction de mise à l’heure du programme de Pimoroni a quelques bugs… C’est pour cela que j’ai utilisé cette bibli.

Pour utiliser la carte RV3028, il faut d’abord la mettre à l’heure, mais aussi valider le switch qui permet d’alimenter le circuit par la batterie de sauvegarde en cas de coupure de l’alimentation.

C’est ce que fait le programme set_date_time_RV3028.py ci dessous. Il est disponible dans le package de programmes que vous pouvez télécharger. Il faut mettre la date et l’heure dans la variable date_heure.

Exécutez le programme une seule fois pour mettre l’horloge à l’heure et valider l’utilisation de la pile. Je vous conseille de débrancher ensuite la prise micro USB du Pico pendant un moment avant de lire l’heure pour confirmer que la pile a bien pris le relais. On se retrouve dans une dizaine de minutes 😉

Lire l’heure sur le RV3028

Chargez le programme demo_pimoroni_RV3028.py dans le Pico. Vous l’avez également dans les programmes disponibles en téléchargement.

Vous devez obtenir un résultat comme celui-ci :

bon, du coup vous savez quand je suis en train d’écrire cet article…

Un point de la situation

Petite pause pour faire le point. Retenez la façon de procéder. On monte les cartes progressivement, pas toutes en même temps. On vérifie systématiquement que chaque carte ajoutée est bien détectée. On fait un petit test pour vérifier qu’elle fonctionne.

Arrivé ici vous avez un Pico, un écran, une capteur de données météorologiques et une horloge qui fonctionnent séparément. Il reste à tout faire fonctionner ensemble. Si tout ça ne fonctionne pas ensemble il faudra se demander ce qu’on a fait comme connerie bêtise…

Le projet final

Il nous reste a mettre un programme pour gérer l’ensemble. Comme d’habitude, c’est du Python de maker. Si vous êtes développeur et développez un super programme avec des fonctions super et tout et tout, je me ferai un plaisir de l’ajouter à cet article.

Tout est en place et testé, entrez le programme horloge_display_3H.py dans Thonny et exécutez le.

Vous devriez obtenir cet affichage que vous pourrez bien entendu adapter selon vos désirs.

On voit sur cette image que la pression qui évolue entre 986 et 987 millibars (oui, je ne parle pas en hectopascals) est bien représentée et que les variations de pressions importantes devraient être correctement visibles.

Une fois votre programme adapté à vos besoins et testé, sauvegardez le sur le pico sous le nom main.py. Lorsque vous connecterez le Pico à une alimentation USB, le programme démarrera automatiquement.

Une mis au point (FAQ)

A la demande d’un lecteur voici quelques précisisions sur le PICO sous forme de FAQ.

« J’ai mis le programme sur le Raspberry Pi PICO comme main.py. Le programme fonctionne parfaitement mais je ne peux pas reprendre la main sur le PICO. Quand je le redémarre, le programme main.py redémarre systématiquement« .

Effectivement une fois le programme chargé en tant que main.py vous n’avez plus la main. Il y a deux solutions.

Effacer la mémoire du Raspberry Pi PICO

C’est la méthode « sauvage » que vous pouvez utiliser quand vous n’avez rien prévu d’autre. Elle permet de reprendre la main sur le Raspberry Pi PICO. Ca sert aussi si votre Pico se retrouve dans un état vraiment bizarre et n’apparaît même pas comme disque dur lors de l’installation de MicroPython/CircuitPython, essayez d’installer ce fichier « nettoyeur » UF2 appelé nuke’ qui fera un ‘nettoyage en profondeur’ de votre mémoire Flash. Vous perdrez tous les fichiers de la carte, mais au moins vous serez capable de faire revivre votre Raspberry Pi PICO ! (Source Adafruit)

Après le nuke, réinstallez MicroPython/CircuitPython.

Prévoir la sortie du programme

L’autre méthode « douce » c’est de prévoir un test au lancement du programme et si un GPIO est à la masse ou si un bouton du Pico Display est appuyé, on sort du programme. Ca permet de reprendre la main sans devoir tout re-installer, même si ça ne prend pas très longtemps…

Il faut ajouter au début du programme le chargement de la bibliothèque sys :

import sys

Puis ce morceau de programme avant la boucle while infinie

Si vous appuyuez maintenant sur le bouton A lorsque vous connectez le PICO, l’écran devient rouge et afficha « Arrêt ». Vous pouvez reprendre la main pour modifier le programme.

Vous pouvez télécharger un complément de programmes en cliquant sur ce lien :

  • Programme flash_nuke.uf2 pour nettoyer la mémoire du PICO
  • Programme modifié pour gérer l’arrêt avec le bouton A du PICO DISPLAY

Télécharger les programmes de l’article

https://www.framboise314.fr/wp-content/uploads/2022/02/Programmes.zip

Conclusion

Ici l’important c’est d’avoir quelque chose de fonctionnel. On peut imaginer des améliorations, comme gérer le temps d’enregistrement pour la courbe de pression atmosphérique. Ici elle dure 3 heures pour la totalité de l’écran, on pourrait choisir avec un des boutons ~3h (capture toutes les minutes), ~16 heures (capture toutes les 5 minutes) ou 24 heures (capture toutes les 432 secondes…). Vous pouvez aussi piloter un mode jour et un mode nuit en fonction de l’heure, la couleur de la LED RGB en fonction de l’évolution de la pression et de l’humidité, changer la couleur du fond avec un bouton, ajouter une courbe de température, modifier l’échelle de l’affichage de pression…

Copie d'écran de l'afficheur LCD de l'horloge

La pression atmosphérique en baisse… Pluie en vue

Attention à l’électricité statique, j’ai une fois ou deux planté le pico en approchant avant d’avoir déchargé mon électricité statique (merci la chaise de bureau Ikea). Ca m’a valu un changement de couleur de l’écran (c’est revenu peu à peu) et la perte d’une ligne d’affichage sur l’écran.

De temps en temps (mais ce n’est pas systématique), quand l’horloge reste hors tension un moment, elle se remet aux valeurs d’usine (1/1/2000 00:00:00). Je n’ai pas trouvé la raison.

C’est intéressant de trouver ces composants Pimoroni en France chez Kubii car cela ouvre ces composants aux établissements scolaires (et autres collectivités) puisque Kubii accepte les mandats administratifs émis par les établissements publics. De plus les commandes sont préparées depuis 2013 par l’ESAT Didier Baron qui accompagne 170 personnes en situations de handicap. Les achats permettent aussi de faire évoluer ce projet 🙂

 

Sources

  • https://www.kubii.fr/autres-kits-raspberry-pi/3543-starter-kit-raspberry-pi-pico-3272496308817.html
  • https://www.kubii.fr/extensions-et-composants/2857-horloge-temps-reel-rv3028-breakout-3272496300538.html?search_query=3028&results=3
  • https://www.kubii.fr/extensions-et-composants/2856-bme680-breakout-qualite-de-l-air-temperature-pression-capteur-d-humidite-3272496300521.html?search_query=BME&results=2
  • https://www.kubii.fr/accessoires/3226-ecran-lcd-114-pico-display-pack-3272496305458.html?search_query=pico+display&results=3
  • https://github.com/pimoroni/pimoroni-pico/releases https://www.tenforums.com/chillout-room/177887-raspberry-pi-thread-6-a-49.html
  • https://github.com/pimoroni/pimoroni-pico/tree/main/micropython/examples/breakout_bme68x
  • https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython

Bundle librairie circuitpython :

  • https://circuitpython.org/libraries

Exemple Pico Display :

  • https://gist.github.com/wildestpixel/86ac1063bc456213f92972fcd7c7c2e1
  • http://helloraspberrypi.blogspot.com/2021/01/raspberry-pi-picocircuitpython-st7789.html

 

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

8 réflexions au sujet de « Raspberry Pi Pico Starter Kit : Une station de mesure climatique »

  1. Didier

    En voila un beau projet qui me donne une furieuse envie de me mettre au Pico !

    Si tant est que le hard soit disponible …

    Je sais que le thème climatique est très ‘à la mode’, ne pourrait-on pas le qualifier plutôt  de météorologique, en se souvenant que le climatique se réfère à un temps bien plus long, disons 3 décennies/siècles plutôt que 3 heures  😉

    Bon je fonce chercher le matos sur le net et je reviens au plus tôt !

     

     

     

     

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Didier
      merci et oui c est plutôt météo que climatique
      mea culpa
      j ai trouvé le matériel chez Kubii comme indiqué
      à priori pas de pénurie pour le moment sue le Raspberry Pi PICO

      Répondre
  2. Ping : Camera 4K Imou Cell 2 - WiFi 2.4 et 5GHz - Batterie longue durée - Framboise 314, le Raspberry Pi à la sauce française....

  3. Philippe CARON

    Bonjour François,

    Merci pour ce site très intéressant. Je cherche à m’amuser et apprendre avec ce montage, mais je n’ai pas compris comment gérer le module rv3028_rtc_FR.py.

    (au passage il y a une erreur sur le schéma situé au paragraphe Mesures avec le BME600, le fil bleu va à la broche 5 du pico et le fil jaune sur la 6)

    Bon autrement  la carte 3028 est bien reconnue, le test « demo_pimoroni_RV3028.py fonctionne bien (même si il n’est pas à la bonne date). Bref je patauge !

    Cordialement

    Philippe.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Philippe
      merci pour ce retour
      je n’ai plus ce montage mais d après le brochage du PICO ça me semble bon… brochage du Raspberry Pi PICO
      a vérifier pour ceux qui se lancent dans le montage…
      Pour la bibli rv2038_rtc j ai simplement traduit les jours et les mois en français
      vous pouvez utiliser la version originale en anglais sans problème
      l idée c’est de charger cette bibli dans thonny et de l’enregistrer sur le pico
      a partir de la vous pouvez faire un import pour l’utiliser dans votre programme
      dans mon exemple de mise à l heure j utilise la version anglaise de la bibli et la mise a l heure par :
      date_heure = (2022,02,10,10,37,30, »thu »)
      ou vous avez année, mois, date du jour, heure, minute, secondes, jour de la semaine
      si vous avez des soucis d utilisation n hesitez pas à me contacter
      l adresse de contact est en bas de chaque page du blog
      bonne journée
      cdt
      françois

      Répondre
  4. Philippe CARON

    Bonjour François, merci pour ce retour, mais je ne m’en suis pas tiré d’affaire pour autant.

    Lorsque exécute rv3028_rtc_FR j’ai le message d’erreur suivant :

    File « <stdin> », line 406, in <module>

    File « <stdin> », line 393, in rtc_test

    File « <stdin> », line 131, in _init_

    ValueError: Backup Switchover Mode is required (DEF/DSM/OFF/LSM)

    Et lorsque j’exécute set_date_time_RV3028 j’ai le msg suivant :

    File « <stdin> », line 3, in <module>

    imputError:no module named ‘rv3028_rtc_FR

    Avec mes amitiés.

    Philippe

     

    Répondre
    1. François MOCQ Auteur de l’article

      bonjour
      rv3028… est une bibliothèque qui contient des fonctions pour le programme utilisant ce composant
      on ne peut pas l’exécuter !
      il faut juste la charger dans Thonny et la sauver sur le PICO pour que le programme puisse l’utiliser 🙂

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.