Salut tout le monde. Ça fait un petit moment ! J’ai été horriblement occupé par diverses choses, y compris le travail, il a donc été difficile de suivre le rythme des blogs. J’ai posté des trucs Pi sur Twitter/X (comment je déteste ce nouveau nom !) donc si vous me suivez là-bas, vous verrez que je suis toujours actif dans la communauté.
Le projet
Aujourd’hui, j’aimerais vous montrer un projet que j’ai mis en place le week-end du 19 au 20 août 2023. J’ai décidé que je voulais créer un capteur de température, mais portable et alimenté par batterie.
Les composants
Je suis allé faire du shopping dans la vente Pimoroni et j’ai acheté les composants suivants :
J’ai choisi le LiPo Amigo Pro parce que je voulais qu’il soit capable de charger et d’alimenter le Pico en même temps. Cela signifie que j’ai le choix entre le brancher ou le laisser portable.
Assemblage… Petit à petit…
Avec la compilation des composants présentés, j’ai travaillé mentalement ce que je voulais faire.
Tout d’abord, je savais qu’il me faudrait créer une sorte de « sandwich » avec le Display Pack, le Pico Proto et le Pico W. Il était donc primordial de savoir quoi souder et dans quel ordre.
La première chose à faire était de l’assembler « à sec » et de s’assurer que tout fonctionnerait ensemble, et que j’avais le Proto dans le bon sens ! Ensuite, j’ai soudé le capteur BME au Pico Proto.

Comme vous pouvez le voir sur mes photos légèrement floues (!), J’ai fait le pont entre la broche 3v3 et un rail vertical. C’était juste au cas où j’aurais besoin d’ajouter quoi que ce soit d’autre qui avait besoin de puissance. Il s’est avéré que je n’en avais pas besoin après tout, mais je suis content de l’avoir fait quand même. Comme vous pouvez le voir, le fil métallique s’est fendu lorsque je l’ai soudé, j’ai donc utilisé une pince à épiler pour le refermer. Pas totalement réussi, mais encore une fois, une bonne idée. Vous verrez que j’ai utilisé les broches 8 et 9 sur le Pico pour les connexions I2C du BME. En l’occurrence, il s’agissait d’une erreur car le Pico Display Pack utilise l’une des broches pour la LED RVB. Pas grave!
Je l’ai assemblé à nouveau à sec et j’ai réalisé que si j’utilisais les en-têtes de broches standard dans le projet, à cause de la soudure des broches à travers tout, je serais un peu court. J’ai donc sorti des en-têtes étendus de ma boîte de pièces et les ai soudés au Pico à la place.

Cela m’a donné assez de temps pour parcourir le Pico Proto et le Pico Display Pack avec de la soudure entre les deux. J’ai dû couper toutes les broches à la longueur, cependant. J’ai enlevé environ un demi-centimètre de chaque épingle avec une paire de pinces coupantes.
J’avais recherché les broches dont j’avais besoin pour souder les fils conducteurs JST à – VSYS et GND. Cela envoie la puissance de la batterie directement dans le Pico, qui peut prendre entre 1,8 V et 5,5 V. La batterie a une tension nominale de 3,7 V, donc c’est en plein milieu. Le Pico se charge de convertir cela en tension appropriée pour ses composants. J’ai également soudé les fils à la carte Proto, puis j’ai recommencé à assembler le sandwich.

Comme vous pouvez le voir, il y a assez d’espace pour les fils. Je pense que c’était avant que je coupe les épingles à la taille. L’article fini a moins d’espace, mais pas assez pour écraser les fils ou mettre à la terre quoi que ce soit.

Je me suis alors rendu compte qu’en faisant cela, il était impossible de dire si le Pico fonctionnait ou non car je ne l’avais pas programmé pour faire quoi que ce soit ! J’ai rapidement lancé un script de clignotement de LED dans MicroPython en utilisant le firmware Pimoroni pour le Pico W. À mon plus grand plaisir, comme vous pouvez le voir ci-dessus si vous regardez attentivement, la LED a commencé à clignoter lorsqu’elle était alimentée par la batterie. Merveilleux! J’ai également ajouté un capteur de lecture et d’impression. À mon grand désarroi, le capteur n’a pas réussi à s’initialiser ! ???? Après une inspection à l’aide d’un multimètre, j’ai constaté que tout était correctement câblé. Alors, quel était le problème? Il s’avère qu’il y avait un petit bout de fil entre SDA et SCL sur le Proto. J’ai pris une grande inspiration et j’ai soufflé, et c’est parti au loin. J’ai relancé le script et ça a marché !

J’ai programmé le code complet à ce stade, mais j’en reparlerai plus tard.
La dernière chose à faire était de tout assembler dans un joli paquet proche. Il en est sorti le fidèle pistolet à colle. Tout d’abord, j’ai collé le LiPo Amigo Pro au bas de la batterie avec le port USB-C à l’extrémité. Ensuite, j’ai collé tout le reste comme vous pouvez le voir ci-dessous :

Et, oui, j’ai enlevé les brins de colle par la suite !
Le code
Tout d’abord, merci à quiconque chez Pimoroni (et je pense que c’était Phil « Gadgetoid » Howard) qui a créé le code pour le Pico Display Pack et la bibliothèque de capteurs BME280. Je me suis fortement appuyé sur le code existant, et cela ne me dérange pas de l’admettre !
J’ai programmé la lecture du capteur BME280, puis j’ai introduit les lectures dans la fonction graphique, légèrement adaptée pour faire face aux multiples ensembles de données. J’ai également codé un gestionnaire de boutons afin de pouvoir basculer entre la température, l’humidité et la pression. Vous pouvez voir les résultats dans la vidéo de démonstration ci-dessous.
Le code réel peut être trouvé sur GitHub. Vous verrez que c’est assez simple, mais je suis nouveau sur MicroPython (j’utilise habituellement CircuitPython) et c’est tout ce que je pouvais gérer. Vous voyez dans la vidéo de démonstration que le graphique de l’humidité et de la pression n’est pas tout à fait correct – c’est un problème mathématique et je n’ai pas le temps de le résoudre pour le moment. Si vous avez envie de me donner un coup de main, laissez un commentaire ou une pull request sur GitHub ! ????
Vidéo de démonstration
Voici une vidéo rapide que j’ai tournée montrant les différents graphiques afin que vous puissiez voir les problèmes que j’ai rencontrés.

Conclusion
C’est tout, les amis ! J’ai aimé faire ce projet – il m’a donné quelque chose à faire un samedi et un dimanche matin ennuyeux. Le travail supplémentaire consiste à connecter le Pico W à un service IoT (ou même via MQTT à un courtier local !) afin que je puisse voir à distance les lectures, mais c’est un projet pour un autre jour !
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

-
BME688 Capteur environnemental pour Raspberry Pi/Raspberry Pi Pico/Arduino/ESP32, prend en charge la température, l'humidité, la pression barométrique, la détection de gaz COV, fonction I2C et SPI
-
BME688 Environmental Sensor Module, Temperature Humidity Barometric Pressure Gas Sensor, I2C/SPI, AI Function, for Raspberry Pi, Arduino, ESP32, Pico, 3.3V/5V Compatible
