Fabriquer un enregistreur de température PT100 avec Arduino

Pour des expériences de suivi de température, il peut être intéressant d’utiliser des sondes de température PT100 dont les mesures sont enregistrées directement sur carte SD.

L’univers Arduino permet de réaliser un datalogger de PT100 sur carte SD à moindre frais et dans un encombrement réduit.

Composants nécessaires et budget

Pour réaliser l’enregistreur, les composants suivants sont nécessaires :

  • 1 x Arduino nano (2 à 20 €)
  • 2 x Amplificateur MAX31865 (2 à 8 €)
  • 2 x Sondes PT100 (1 à 20 €)
  • 1 x Lecteur de carte micro SD (2 à 8 €)
  • 1 x Carte micro SD (1 à 20 €)
  • Quelques fils électriques

Les prix des composants sont variables selon la fiabilité et la qualité du revendeur. Le projet présenté ici aura coûté au total environ 25 €.

Les sondes PT100

L’industrie utilise beaucoup les capteurs de température à sonde de platine : les PT100 ou PT1000. Ces sondes exploitent le fait que la résistance du platine évolue en fonction de la température à laquelle le métal est soumis.

Par définition, une sonde PT100 a une résistance de 100 Ohms à 0 °C. Une PT1000 aura une résistance de 1000 Ohms à 0 °C.

Exemple d'une sonde PT100 2 fils

Lecteur de carte micro SD

Toute sorte de lecteur SD compatible avec Arduino peut être utilisé.

Attention cependant, le lecteur SD communiquant, comme les amplificateurs MAX31865, via le protocole SPI, il faut que le lecteur puisse être intégré dans un bus SPI.

Si ce n’est pas le cas et pour plus de détails sur le sujet, je vous invite à lire cet article.

Exemple de lecteur de carte SD pour Arduino

Amplificateur MAX31865

Il s’agit d’un amplificateur dédié à la lecture de résistance des sondes PT100.

Ce type de carte existe en deux versions. L’une pour les PT100 et l’autre pour les PT1000.

Chaque carte peut ensuite être configurée pour accueillir des sondes à 2, 3 ou 4 fils.

Amplificateur MAX31865 pour lecture de résistance

Arduino nano

C’est une des cartes Arduino les plus intéressantes. C’est la plus compacte qui soit et qui intègre malgré tout un nombre d’entrée/sortie impressionnant, permettant de réaliser de très nombreux projets.

Pour ce projet en particulier, sa compacité est très appréciée.

Arduino nano

Schéma de câblage

Le câblage a pour but d’une part d’alimenter les composants en 5V et d’autre part de les connecter au bus SPI.

  • Les broches CLOCK sont connectées à la broche D13 de l’Arduino.
  • Les broches MISO à la broche D12.
  • Les broches MOSI à la broche D11.
  • Ensuite il suffit d’attribuer une broche digitale à chacun des composants et de la raccorder à la broche CS (Chip Select) du composant.
Schéma de câblage du datalogger PT100 Arduino

Code Arduino

Voici le code Arduino utilisé dans ce projet. Il permet de créer un nouveau fichier d’enregistrement à chaque démarrage ou reset de l’Arduino.

Si l’Arduino est connecté à un ordinateur, la communication série permet d’afficher les températures.

Ce code fait aussi clignoter l’Arduino toutes les secondes lorsqu’il est en train d’écrire sur la carte SD. En cas d’erreur, si l’Arduino ne parvient pas à écrire sur la carte, il ne clignotera que toutes les 5 secondes.

// SPLAC.fr

#include                   // Librairie protocole de communication SPI (pour carte SD et pour MAX31865)
#include                    // Librairie pour carte SD
#include     // Librairie pour Ampli MAX31865 pour PT100

// CONSTANTES ET VARIABLES

// Carte SD
File myFile;                            // Fichier d'enregistrement
char fileNumber[] = "000";              // Nom du fichier d'enregistrement

// Ampli MAX31865 pour PT100
// Hardware SPI, passer en argument la pin CS
Adafruit_MAX31865 thermo1 = Adafruit_MAX31865(9);      // Ici on utilise un BUS SPI donc il faut passer par le Hardware SPI sinon ça ne marche pas.
Adafruit_MAX31865 thermo2 = Adafruit_MAX31865(8);

#define RREF      430.0
#define RNOMINAL  100.0

void setup() {
  
  Serial.begin(115200);
  
  // TEMPERATURE  Ampli MAX31865 pour PT100
  thermo1.begin(MAX31865_2WIRE);            // Changer par 2WIRE ou 3WIRE ou 4WIRE selon nécessaire
  thermo2.begin(MAX31865_2WIRE);            // Changer par 2WIRE ou 3WIRE ou 4WIRE selon nécessaire

  // CARTE SD
  while (!Serial) {;                        // Attente de la connexion du port série
  }
  Serial.print("Initialisation carte SD...");
  
  if (!SD.begin(10))                        // Passer en argument la pin CS
  {
    Serial.println("Echec de l'initialisation");
  }
  else
  {
    Serial.println("Initialisation réussie");
  }

  // Création d'un numéro de fichier qui n'existe pas déjà     
  for (uint8_t num = 1; num Plus de place 0.85 x Bias"); 
    }
    if (fault1 & MAX31865_FAULT_REFINHIGH) {
      Serial.println("REFIN-  0.85 x Bias"); 
    }
    if (fault2 & MAX31865_FAULT_REFINHIGH) {
      Serial.println("REFIN- 

Si le code Arduino ne s’affiche pas correctement ou pas entièrement, vous pouvez le télécharger ici.

Système réalisé

L’ensemble est intégré dans un bocal pour le protéger et pour en faciliter la manipulation.

Enregistreur de température dans son bocal

L’ouverture du bocal peut être nécessaire pour modifier le code Arduino, pour remplacer les sondes PT100 ou plus régulièrement pour accéder à la carte micro SD et récupérer les données.

Ouverture du bocal pour accéder aux différents composants

Ce datalogger permet de mesurer deux températures différentes en simultané. Voici un exemple de graphique qu’il est possible d’obtenir à partir du fichier texte enregistré sur la carte SD.

Exemple d'enregistrement de température

Conclusion

Pour quelques dizaines d’euros et un peu d’apprentissage, il est possible de réaliser un enregistreur de température. Ce système peut être utilisé pour suivre la température d’une pièce, d’un four solaire, d’une cuve d’eau… Il est un précieux allié dans l’univers des Makers et des curieux.

Si vous avez apprécié cette lecture ou que le contenu vous a été utile, n’hésitez pas à commenter et à partager cet article avec d’autres personnes qui pourraient être intéressées. C’est un moyen simple de soutenir ce blog.

A partager sans modération !
S’abonner
Notifier de
guest
4 Commentaires
le plus populaire
le plus récent le plus ancien
Inline Feedbacks
View all comments