Skip to Content

Interface ESP32 et capteur de température TMP36

Interface ESP32 et capteur de température TMP36

Dans cet article, je vais vous montrer comment utiliser le capteur de température TMP36 avec un microcontrôleur ESP32. 

Le TMP36 est un capteur de température à faible coût et basse tension. Il est déjà calibré en degrés Celsius, ce qui facilite la gestion des données du capteur.

Vous verrez que la mesure de la température est un besoin essentiel dans de nombreuses applications différentes. 

Les capteurs de température protègent les appareils électroniques tels que les ordinateurs portables et les téléviseurs contre la surchauffe. De plus, chaque batterie est désormais équipée d’un capteur de température pour éviter la surchauffe. 

Je vais vous fournir toutes les informations essentielles à connaître sur le capteur de température TMP36 dans cet article. 

Je vous montrerai comment utiliser un capteur TMP36 avec un ESP32. Vous aurez un guide de connexion, un exemple de code ESP32 pour TMP36, et je répondrai aussi à quelques questions fréquentes sur le TMP36. 

Commençons !

Composants nécessaires pour réaliser le projet ESP32 et capteur TMP36

Composants matériels

Logiciel

Guide

Makerguides.com participe au programme Amazon Services LLC Associates, un programme de publicité affiliée conçu pour permettre aux sites de percevoir des commissions en faisant la promotion et en créant des liens vers des produits sur Amazon.com.


Principes fondamentaux des capteurs TMP36

Comprenons les caractéristiques intrinsèques du capteur de température TMP36. Connaître les détails techniques vous aidera à construire votre projet en toute confiance et à décider si le TMP36 est adapté à vos besoins. 

Le TMP36 est disponible en boîtier trois broches ainsi qu’en boîtier CMS (small outline).

TMP36 comes in both a three pin package
Brochage du TMP36

Le circuit intégré TMP36 est simple à utiliser. Il n’y a pas d’adresses IC, de calcul CRC, ni de communication série, etc. 

  1. Il suffit d’utiliser un ADC et de lire la valeur analogique. 
  2. Convertissez la valeur analogique en tension. 
  3. Utilisez le tableau de référence ci-dessous pour convertir la tension en température. 

C’est tout. Le capteur TMP36 est simple et direct à utiliser.

En plus du capteur TMP36, il existe aussi les TMP35 et TMP37, très similaires mais avec des différences subtiles, que j’ai résumées dans le tableau ci-dessous :

Capteur Tension à 25 ℃ Plage de mesure Facteur d’échelle de sortie
TMP35 250 mV  10 °C à 125 ℃ 10 mV/℃
TMP36 750 mV −40 °C à +125 ℃ 10 mV/℃
TMP37 500 mV 5 °C à 100 ℃ 20 mV/℃

Caractéristiques du capteur TMP36

Voici les principales caractéristiques du capteur TMP36 résumées dans un tableau :

Paramètre Plage
Plage de température de fonctionnement -40 ℃ à 125 ℃ 
Précision de la température ± 1 ℃ (typique), ± 2 ℃ (maximum) 
Tension d’alimentation  2,7 V à 5,5 V
Sortie 750 mV à 25 ℃
Courant d’alimentation 50 uA
Courant en veille 0,5 uA
Stabilité à long terme ± 0,4 ℃
Plage de tension de sortie 100 mV à 2 V

Définition des broches du capteur TMP36

Vous pouvez utiliser la référence ci-dessous pour consulter rapidement le brochage du capteur de température TMP36 :

Pin Definition of the TMP36 Sensor
Brochage du TMP36
Numéro de broche Broche Description
1 +Vs Broche d’alimentation. (2,7 V à 5,5 V)
2 VOUT Tension analogique de sortie
3 GND Connexion à la masse

Dans la version CMS, vous disposez d’une broche supplémentaire appelée shutdown. Dans ces versions, vous pouvez économiser davantage d’énergie en mettant le circuit intégré en veille via la broche shutdown.

La consommation de courant descend alors à 500 nA (ce qui est excellent pour un appareil alimenté par batterie !).

Comment déduire la température à partir de VOUT du TMP36 ?

Vous pouvez utiliser le graphique ci-dessous pour convertir la tension analogique lue en température.

Characteristics of TMP36
Caractéristiques du TMP36

Comme vous pouvez le voir sur le graphique, la tension à 25 degrés est de 750 mV, et à 50 degrés elle est de 1 V.

Maintenant, si vous avez lu une tension de 1 V à partir de l’ADC, vous devez consulter ce graphique et vous référer à la ligne bleue (qui correspond au capteur TMP36). 

Pour convertir la valeur ADC en tension, utilisez l’équation ci-dessous.

  ADC_volts_in_mV = (ADC_reading) * 3300 / 1024;

Pour convertir la tension ADC en température, vous pouvez utiliser la formule suivante.

  temperature = (ADC_volts_in_mV – 500) / 10;

Fonction de la broche SHUTDOWN du capteur TMP36

Les trois variantes, TMP35, TMP36 et TMP37, disposent d’une fonction shutdown. C’est une broche supplémentaire dans les versions CMS. Elle permet de réduire la consommation de courant à 0,5 uA. 

Vous devez choisir le boîtier avec soin. Le boîtier trois broches (TO-92) ne possède pas cette broche shutdown. 

Vous devez mettre la broche shutdown à l’état bas pour mettre le circuit intégré en mode shutdown. Si vous utilisez un GPIO, envoyez un niveau logique 0. Cela met le circuit intégré en mode veille. 

La broche shutdown possède une résistance de tirage interne vers la broche d’alimentation à l’intérieur du TMP36. Par conséquent, vous pouvez aussi piloter la broche shutdown avec une sortie open-drain. 

Lorsque le TMP36 est en mode shutdown, la tension de sortie n’est plus valide. 

De plus, lorsque vous mettez le capteur en mode shutdown, il faut un certain temps pour que le mode soit effectif. Le graphique ci-dessous montre le temps attendu avant que le circuit intégré ne s’éteigne.

Vout response time for shutdown Pin

À température ambiante, le temps de réponse est d’environ 265 µs, variant selon la température ambiante. Vous devez en tenir compte dans votre code lorsque vous utilisez la fonction shutdown.

Applications du capteur TMP36

Le TMP36 est un capteur principal utilisé pour la mesure de température, avec un large éventail d’utilisations, notamment : 

  1. Systèmes CVC – Les systèmes de chauffage, ventilation et climatisation dépendent fortement de la température ambiante pour leur fonctionnement. Le TMP36 est une solution précieuse pour ces systèmes 
  1. Transformation alimentaire – Vous avez besoin d’un système de surveillance de la température pour garantir que les aliments ne sont pas avariés et cuits à la bonne température. Vous pouvez utiliser le TMP36 dans ces applications. 
  1. Équipements médicaux – Vous pouvez utiliser le capteur pour surveiller la température des patients et assurer que les unités de soins intensifs et autres zones critiques maintiennent des températures contrôlées pour le confort et la précision des procédures de restauration.
  1. Processus industriels : Plusieurs processus industriels dépendent du capteur TMP36 pour garantir que les pièces sont produites à la bonne température afin d’assurer la précision de la production. 

La variation de température peut entraîner des changements dimensionnels ou de couleur pour certains processus. Il est donc crucial de suivre et de surveiller la température.

Pour quelle application utilisez-vous le capteur TMP36 ? Faites-le nous savoir dans la section commentaires ci-dessous.

Connexion du module capteur TMP36 avec ESP32

Je vais vous montrer comment réaliser un projet utilisant l’ESP32 et le capteur de température TMP36. Commençons par les connexions matérielles.

Étape 1 : Effectuer les connexions matérielles

Connecting TMP36 to ESP36
Connexion du TMP36 à l’ESP32

Le TMP36 est un circuit intégré à 3 broches seulement. La simplicité de la connexion est évidente sur le schéma ci-dessous.

Commencez par les connexions à la masse. Si vous devez utiliser d’autres broches, modifiez le code en conséquence.

Alimentez l’ensemble du système uniquement après avoir terminé toutes les connexions. 

Étape 2 : Programmer l’ESP32 avec le code ci-dessous

Suivez l’étape suivante pour comprendre l’implémentation du code. Vous pouvez utiliser le code ci-dessous pour tester le module ESP32 et le capteur TMP36 connecté.
Si vous n’avez jamais utilisé un ESP32 avec votre Arduino IDE, lisez notre tutoriel Install ESP32 core in Arduino IDE.

const int tempPin = 2;     //analog input pin constant
int tempVal;    // temperature sensor raw readings
float volts;    // variable for storing voltage
float temp;     // actual temperature variable

void setup()
{
  // start the serial port at 9600 baud
  Serial.begin(9600);
}

void loop()
{
  //read the temp sensor and store it in tempVal
  tempVal = analogRead(tempPin);

  volts = tempVal / 1023.0;

  temp = (volts - 0.5) * 100 ;
  Serial.print(" Temperature is:   ");
  Serial.print(temp);                  // in the same line print the temperature
  Serial.println (" degrees C");       // still in the same line print degrees C, then go to next line.

  delay(1000);                         // wait for 1 second or 1000 milliseconds before taking the next reading.
}

Étape 3 : Explication du code

Parcourons le code. Cet exemple teste les capteurs TMP36. Le code sert à lire la température et à l’afficher sur le terminal série.

const int tempPin = 2;     //analog input pin constant

D’abord, nous définissons une variable entière constante tempPin à laquelle on assigne la valeur 2. C’est la broche à laquelle nous avons connecté le capteur de température TMP36.

int tempVal;    // temperature sensor raw readings
float volts;    // variable for storing voltage
float temp;     // actual temperature variable

La variable tempVal est déclarée en entier pour stocker la valeur analogique brute lue depuis le capteur de température.

La variable volts est utilisée pour stocker la tension calculée à partir de tempVal. La variable temp sert à stocker la valeur réelle de la température.

Dans la fonction setup(), nous appelons Serial.begin() pour communiquer à un débit de 9600 bauds.

  volts = tempVal / 1023.0;

La ligne ci-dessus sert à convertir la valeur analogique lue en tension.

  temp = (volts - 0.5) * 100;

La ligne ci-dessus est la clé de ce code. Nous soustrayons 500 mV de la tension lue. 

Pourquoi ? Veuillez vous référer à la section des bases de cet article pour plus d’informations détaillées. 

Comme vous le savez, le capteur ajoute un décalage de 500 mV. Cela vous permet de lire la plage de températures négatives ainsi que la tension positive. 

Enfin, la température est affichée sur le terminal série. J’espère que l’explication du code vous a aidé. J’espère que vous utiliserez le TMP36 prochainement dans vos projets à venir.

FAQ sur les capteurs TMP36

J’ai inclus une liste des questions les plus fréquemment posées concernant les projets réalisés avec l’ESP32 et les capteurs TMP36.

Qu’est-ce que le TMP36 ?

Le TMP36 est un capteur de température analogique de précision à basse tension capable de mesurer des températures allant de -40°C à +125°C. Il fournit une tension proportionnelle linéairement à la température en degrés Celsius. 

Quelle est la tension de sortie du capteur TMP36 ?

La tension de sortie du TMP36 varie linéairement avec la température et a un facteur d’échelle de 10 mV/°C. 

Exemple : Si la température est de 25°C, la tension de sortie sera de 0,25 V. Vous pouvez vous référer au graphique ci-dessous pour trouver la tension de sortie attendue pour la température correspondante. (graphique b).

Characteristics of TMP36
Caractéristiques du TMP36

Quelle est la plage de tension d’alimentation du TMP36 ?

La plage de tension d’alimentation du TMP36 est de 2,7 V à 5,5 V.

Quelle est la précision du circuit intégré TMP36 ?

La précision du TMP36 est typiquement de ±1 °C à 25 °C. Le TMP36 a une erreur maximale de ±2 °C sur la plage de température de -40°C à +125 °C.

Quelle est la résolution du capteur de température TMP36 ?

La résolution du capteur de température TMP36 est de 0,1°C.

Comment puis-je interfacer le TMP36 avec un microcontrôleur ?

Vous pouvez connecter le TMP36 à n’importe quel MCU via une broche d’entrée ADC puisque le TMP36 fournit une tension de sortie analogique (correspondant à la température mesurée en degrés Celsius).

L’ESP32 possède un ADC intégré, tout comme l’Arduino UNO> La plupart des MCU ont des ADC intégrés. 

Quelles sont les applications du TMP36 ?

Le TMP36 peut être utilisé dans diverses applications, telles que la mesure de température dans les appareils électroniques, les stations météo, la transformation alimentaire, la logistique et les systèmes CVC.

Le TMP36 peut-il être utilisé pour des mesures de haute température ?

Le TMP36 n’est pas adapté aux mesures de haute température car il ne peut mesurer que jusqu’à +125 °C.

Si vous souhaitez mesurer des températures dans la plage de 200 ou 400 degrés, vous devez vous orienter vers des thermocouples. Ils sont spécialement conçus pour surveiller les hautes températures. 

Quel est le type de boîtier du TMP36 ?

Le TMP36 est disponible en plusieurs boîtiers : 3 broches (TO-92), circuit intégré 5 broches (SOT23), et même circuit intégré 8 broches (SOIC).

Veuillez vous référer à l’image ci-dessous pour comprendre les différentes versions de broches du TMP36 que vous pouvez acheter sur le marché. Ma préférée est la TO-92, qui est la version trois broches. 

pin versions of TMP36

Conclusion

J’ai couvert toutes les informations essentielles sur les capteurs TMP36 dans cet article. Je vous ai donné toutes les informations sur le fonctionnement du capteur de température TMP36 et les avantages de son utilisation dans vos futurs projets de mesure thermique. 

Le schéma de connexion ESP32 et le code d’exemple vous ont aidé à tester vos connexions et à construire le projet plus rapidement. Si vous avez d’autres questions sur les capteurs, n’hésitez pas à les poser dans la section commentaires. 

J’ai utilisé des capteurs TMP36 lors de l’étude des performances thermiques d’un PCB de test. J’ai utilisé 6 capteurs TMP36 pour surveiller la température à différents points du PCB de test. 

Vous pouvez utiliser le TMP36 dans de nombreux projets ESP32 différents et le connecter à diverses unités d’affichage pour montrer les données.

Faites-nous savoir s’il y a d’autres sujets que vous aimeriez que je couvre dans de futurs articles.