Raspberry Pi Pico - Module Thermocouple MAX6675
Tous les autres capteurs de température présentés sur ce site - le DS18B20, le DHT11, le LM35 - cessent d'être utiles bien avant le point d'ébullition de l'eau, et aucun d'entre eux ne survivrait s'il était fixé sur un fer à souder ou plongé dans de la cire fondue. Dès qu'un projet doit mesurer au-delà de quelques centaines de degrés, la solution habituelle est une sonde thermocouple lue via une puce de numérisation MAX6675. Il n'y a pas ici de gestionnaire de bibliothèques comme sur Arduino, donc ce tutoriel lit le MAX6675 comme on le fait réellement en MicroPython : en basculant directement ses broches d'horloge, de sélection de puce et de données depuis Python.
Dans ce guide, nous aborderons :
- Ce qu'est réellement un thermocouple et pourquoi il a besoin d'une puce d'aide comme le MAX6675.
- Comment câbler une carte MAX6675 et sa sonde de type K à un Raspberry Pi Pico.
- Comment implémenter en bit-banging le protocole de lecture à 3 fils du MAX6675 en MicroPython - sans bibliothèque externe.
- Comment afficher en direct les mesures en Celsius et en Fahrenheit dans le Shell de Thonny.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Qu'est-ce qu'un Thermocouple ?
Un thermocouple, ce sont simplement deux fils de métaux différents soudés ensemble à une extrémité, appelée jonction chaude. Chauffez (ou refroidissez) cette jonction et une petite tension apparaît entre les fils, une tension qui monte ou descend avec la température - c'est pourquoi un thermocouple résiste sans problème à des conditions qui détruiraient instantanément un capteur ordinaire. Le type le plus courant, le type K, est fabriqué en fils de Chromel et d'Alumel et est prévu pour environ -328°F à +2300°F.
À Propos du Module Thermocouple MAX6675
Un thermocouple seul ne fournit que quelques millivolts, une tension bien trop faible et bruitée pour que le Pico puisse la lire directement. Le module MAX6675 résout ce problème en associant la puce MAX6675, montée sur une petite carte, à une sonde de type K déjà fixée, de sorte que l'ensemble fournit une mesure de température propre et prête à l'emploi.
| Module thermocouple MAX6675 | |
|---|---|
| Tension de fonctionnement | 3,0V à 5,5V |
| Plage de mesure | 0°C à 1024°C |
| Précision | ±3°C |
| Résolution | ~0,25°C |
| Longueur de la sonde | ~18 pouces (45 cm) |
| Plage de la sonde | 0°C à 80°C |
Brochage

La carte comporte quatre broches plus un bornier à vis à 2 broches où se fixe la sonde :
- Broche VCC : entrée d'alimentation, accepte de 3,0V à 5,5V.
- Broche GND : masse.
- Broche SCK : entrée d'horloge série - le Pico envoie des impulsions sur cette broche pour faire sortir une mesure de la puce.
- Broche CS : sélection de puce - maintenue à LOW pendant une lecture, et à HIGH le reste du temps.
- Broche SO : sortie de données série - la seule ligne de données du module, car il ne reçoit jamais de commandes du Pico, il ne fait que renvoyer des mesures.
- Bornier + / - : l'endroit où se branche la sonde ; son fil rouge va sur +, le fil bleu sur -.
La sonde fournie avec le module mesure environ 18 pouces de long, et même si la puce elle-même peut numériser des températures jusqu'à 1024°C, le fil de cette sonde n'est prévu que pour 0°C à 80°C - prévoyez une sonde supportant des températures plus élevées si vous comptez mesurer quelque chose de plus chaud qu'une casserole d'eau bouillante.
Schéma de Câblage
Alimentez le module depuis la ligne 3,3V du Pico plutôt que depuis le 5V, car les GPIO du Pico fonctionnent uniquement en 3,3V et ne tolèrent pas le 5V : VCC va sur 3V3(OUT) et GND sur n'importe quelle broche GND. Les trois lignes de signal - SCK, CS et SO - peuvent être reliées à n'importe quels GPIO libres, car le code ci-dessous les pilote manuellement en bit-banging au lieu d'utiliser le périphérique SPI matériel du Pico. Terminez en insérant les fils rouge et bleu de la sonde dans les bornes à vis + et - du module.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Câblage Raspberry Pi Pico - Module MAX6675
| Module MAX6675 | Raspberry Pi Pico |
|---|---|
| VCC | 3V3(OUT) |
| GND | GND |
| SCK | GP5 |
| CS | GP4 |
| SO | GP3 |
Code Raspberry Pi Pico
Étapes Rapides
Veuillez suivre ces instructions étape par étape :
- Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
- Assurez-vous que le micrologiciel MicroPython est installé sur votre Raspberry Pi Pico.
- Si c'est la première fois que vous utilisez un Raspberry Pico, consultez le tutoriel Raspberry Pi Pico - Premiers pas. pour des instructions détaillées.
- Câblez le module MAX6675 et la sonde thermocouple au Raspberry Pi Pico en suivant le schéma ci-dessus.
- Connectez le Raspberry Pi Pico à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Thonny sur votre ordinateur.
- Dans l'IDE Thonny, sélectionnez l'interpréteur MicroPython (Raspberry Pi Pico) en allant dans Tools Options.
- Dans l'onglet Interpreter, sélectionnez MicroPython (Raspberry Pi Pico) dans le menu déroulant.
- Assurez-vous que le bon port est sélectionné. L'IDE Thonny devrait détecter automatiquement le port, mais vous devrez peut-être le sélectionner manuellement (par exemple, COM3 sous Windows ou /dev/ttyACM0 sous Linux).
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Thonny.
- Enregistrez le script sur votre Raspberry Pi Pico en procédant comme suit :
- Cliquez sur le bouton Enregistrer, ou utilisez les touches Ctrl+S.
- Dans la boîte de dialogue d'enregistrement, vous verrez deux sections : This computer et Raspberry Pi Pico. Sélectionnez Raspberry Pi Pico
- Enregistrez le fichier sous le nom main.py
- Cliquez sur le bouton vert Run (ou appuyez sur F5) pour exécuter le script. Le script s'exécutera.
- Réchauffez l'extrémité du thermocouple avec vos doigts, une tasse d'eau chaude ou un briquet tenu brièvement à proximité, puis laissez-la refroidir.
- Consultez le message dans le Shell en bas de Thonny.
Si la sonde est débranchée ou mal câblée, le Shell affiche "No thermocouple detected - check the probe connection" au lieu d'une température - si vous voyez ce message, réinsérez les fils rouge et bleu dans le bornier à vis.
Si vous nommez votre script main.py et que vous l'enregistrez dans le répertoire racine du Raspberry Pi Pico, il s'exécutera automatiquement à chaque mise sous tension ou réinitialisation du Pico. C'est utile pour les applications autonomes qui doivent démarrer immédiatement à la mise sous tension. Si vous donnez à votre script un autre nom que main.py, vous devrez l'exécuter manuellement depuis le Shell de Thonny.
Explication du Code
Consultez les explications dans les commentaires du code source ! En bref : le script met CS à l'état bas, envoie seize impulsions sur SCK tout en décalant chaque bit présent sur SO dans un mot de 16 bits, puis remet CS à l'état haut. Les 3 bits de poids faible de ce mot sont des bits d'état (le bit 2 à 1 signifie que la sonde est déconnectée), donc le code les élimine par décalage et multiplie le reste par 0,25 pour obtenir une température en Celsius, qui est ensuite convertie en Fahrenheit pour l'affichage.